Shortlinks by Pretty Links – Best WordPress Link Tracking Plugin - Version 2.1.3

Version Description

  • Addressed security vulnerabilities
  • Fixed content-type header
  • Fixed -1 PHP memory_limit error
  • Updated redirects to use wp_redirect()
  • PRO Enhanced WooCommerce keyword replacements
  • PRO Fixed replacing keywords in header and other HTML tags
  • PRO Fixed link expiration dates being 1 day off
Download this release

Release Info

Developer cartpauj
Plugin Icon 128x128 Shortlinks by Pretty Links – Best WordPress Link Tracking Plugin
Version 2.1.3
Comparing to
See all releases

Code changes from version 2.1.2 to 2.1.3

app/controllers/PrliAppController.php CHANGED
@@ -28,7 +28,7 @@ class PrliAppController extends PrliBaseController {
28
  public function menu() {
29
  global $prli_options, $plp_options, $plp_update;
30
 
31
- $role = 'administrator';
32
  if(isset($plp_options->min_role))
33
  $role = $plp_options->min_role;
34
 
28
  public function menu() {
29
  global $prli_options, $plp_options, $plp_update;
30
 
31
+ $role = 'manage_options';
32
  if(isset($plp_options->min_role))
33
  $role = $plp_options->min_role;
34
 
app/controllers/PrliGroupsController.php CHANGED
@@ -35,6 +35,11 @@ class PrliGroupsController extends PrliBaseController {
35
  public function ajax_new_group() {
36
  global $prli_group;
37
 
 
 
 
 
 
38
  // Default response
39
  $response = json_encode( array( 'status' => 'failure',
40
  'message' => __('An unknown error occurred when creating your group.', 'pretty-link') ) );
35
  public function ajax_new_group() {
36
  global $prli_group;
37
 
38
+ if(!PrliUtils::is_authorized()) {
39
+ return json_encode( array( 'status' => 'failure',
40
+ 'message' => __('Cannot add group because current user is not authorized.', 'pretty-link') ) );
41
+ }
42
+
43
  // Default response
44
  $response = json_encode( array( 'status' => 'failure',
45
  'message' => __('An unknown error occurred when creating your group.', 'pretty-link') ) );
app/controllers/PrliLinksController.php CHANGED
@@ -331,8 +331,7 @@ class PrliLinksController extends PrliBaseController {
331
  }
332
 
333
  // Set defaults and grab get or post of each possible param
334
- public static function get_params_array()
335
- {
336
  return array(
337
  'action' => (isset($_REQUEST['action'])?$_REQUEST['action']:'list'),
338
  'regenerate' => (isset($_REQUEST['regenerate'])?$_REQUEST['regenerate']:'false'),
@@ -343,7 +342,7 @@ class PrliLinksController extends PrliBaseController {
343
  'search' => (isset($_REQUEST['search'])?$_REQUEST['search']:''),
344
  'sort' => (isset($_REQUEST['sort'])?$_REQUEST['sort']:''),
345
  'sdir' => (isset($_REQUEST['sdir'])?$_REQUEST['sdir']:''),
346
- 'message' => (isset($_REQUEST['message'])?$_REQUEST['message']:'')
347
  );
348
  }
349
 
331
  }
332
 
333
  // Set defaults and grab get or post of each possible param
334
+ public static function get_params_array() {
 
335
  return array(
336
  'action' => (isset($_REQUEST['action'])?$_REQUEST['action']:'list'),
337
  'regenerate' => (isset($_REQUEST['regenerate'])?$_REQUEST['regenerate']:'false'),
342
  'search' => (isset($_REQUEST['search'])?$_REQUEST['search']:''),
343
  'sort' => (isset($_REQUEST['sort'])?$_REQUEST['sort']:''),
344
  'sdir' => (isset($_REQUEST['sdir'])?$_REQUEST['sdir']:''),
345
+ 'message' => (isset($_REQUEST['message'])?sanitize_text_field($_REQUEST['message']):'')
346
  );
347
  }
348
 
app/controllers/PrliPostsController.php CHANGED
@@ -85,6 +85,11 @@ class PrliPostsController extends PrliBaseController {
85
  public function create_pretty_link() {
86
  $valid_vars = array('target', 'slug', 'redirect', 'nofollow', 'tracking');
87
 
 
 
 
 
 
88
  if(!isset($_POST) || !($valid_vars == array_intersect($valid_vars, array_keys($_POST)))) {
89
  echo "invalid_inputs";
90
  die();
85
  public function create_pretty_link() {
86
  $valid_vars = array('target', 'slug', 'redirect', 'nofollow', 'tracking');
87
 
88
+ if(!PrliUtils::is_authorized()) {
89
+ echo "invalid_user";
90
+ die();
91
+ }
92
+
93
  if(!isset($_POST) || !($valid_vars == array_intersect($valid_vars, array_keys($_POST)))) {
94
  echo "invalid_inputs";
95
  die();
app/controllers/PrliUpdateController.php CHANGED
@@ -21,7 +21,7 @@ class PrliUpdateController {
21
  add_filter('plugins_api', array($this, 'plugin_info'), 11, 3);
22
  }
23
 
24
- //add_action('admin_init', array($this, 'activate_from_define'));
25
 
26
  add_action('admin_notices', array($this, 'activation_warning'));
27
  add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
@@ -146,11 +146,13 @@ class PrliUpdateController {
146
  }
147
 
148
  public function activate_from_define() {
149
- if( defined('PRETTYLINK_LICENSE_KEY') &&
150
- $this->mothership_license != PRETTYLINK_LICENSE_KEY ) {
 
151
  $message = '';
152
  $errors = array();
153
  $this->mothership_license = stripslashes(PRETTYLINK_LICENSE_KEY);
 
154
  $domain = urlencode(PrliUtils::site_domain());
155
 
156
  try {
@@ -162,6 +164,7 @@ class PrliUpdateController {
162
  }
163
 
164
  $act = $this->send_mothership_request("/license_keys/activate/".PRETTYLINK_LICENSE_KEY, $args, 'post');
 
165
 
166
  $this->manually_queue_update();
167
 
21
  add_filter('plugins_api', array($this, 'plugin_info'), 11, 3);
22
  }
23
 
24
+ add_action('admin_init', array($this, 'activate_from_define'));
25
 
26
  add_action('admin_notices', array($this, 'activation_warning'));
27
  add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
146
  }
147
 
148
  public function activate_from_define() {
149
+ if(!$this->is_installed()) { return; }
150
+
151
+ if(defined('PRETTYLINK_LICENSE_KEY') && $this->mothership_license != PRETTYLINK_LICENSE_KEY) {
152
  $message = '';
153
  $errors = array();
154
  $this->mothership_license = stripslashes(PRETTYLINK_LICENSE_KEY);
155
+ update_option($this->mothership_license_str, PRETTYLINK_LICENSE_KEY);
156
  $domain = urlencode(PrliUtils::site_domain());
157
 
158
  try {
164
  }
165
 
166
  $act = $this->send_mothership_request("/license_keys/activate/".PRETTYLINK_LICENSE_KEY, $args, 'post');
167
+ update_option('prli_activated', true); // if we get here we're activated
168
 
169
  $this->manually_queue_update();
170
 
app/models/PrliUtils.php CHANGED
@@ -254,6 +254,7 @@ class PrliUtils {
254
  $query = "SELECT * FROM ".$prli_link->table_name." WHERE slug='$slug' LIMIT 1";
255
  $pretty_link = $wpdb->get_row($query);
256
  $pretty_link_target = apply_filters( 'prli_target_url', array( 'url' => $pretty_link->url, 'link_id' => $pretty_link->id, 'redirect_type' => $pretty_link->redirect_type ) );
 
257
 
258
  // Error out when url is blank
259
  if($pretty_link->redirect_type != 'pixel' && (!isset($pretty_link_target['url']) || empty($pretty_link_target['url']))) {
@@ -380,28 +381,19 @@ class PrliUtils {
380
  header("Cache-Control: post-check=0, pre-check=0", false);
381
  header("Pragma: no-cache");
382
  header("Expires: Mon, 07 Jul 1777 07:07:07 GMT"); // Battle of Hubbardton
383
- $prli_edition = ucwords(preg_replace('/-/', ' ', PRLI_EDITION));
384
  header("X-Redirect-Powered-By: {$prli_edition} " . PRLI_VERSION . " http://prettylink.com");
385
 
386
  switch($pretty_link->redirect_type) {
387
  case '301':
388
- header("HTTP/1.1 301 Moved Permanently");
389
- header('Location: '.$pretty_link_url.$param_string, true, 301);
390
- break;
391
- case '302':
392
- header("HTTP/1.1 302 Found");
393
- header('Location: '.$pretty_link_url.$param_string, true, 302);
394
- break;
395
  default:
396
- if( $pretty_link->redirect_type == '307' ||
397
- !$plp_update->is_installed() ) {
398
- if($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0') {
399
- header("HTTP/1.1 302 Found");
400
- }
401
- else {
402
- header("HTTP/1.1 307 Temporary Redirect");
403
- }
404
- header('Location: '.$pretty_link_url.$param_string, true, 307);
405
  }
406
  else {
407
  do_action('prli_issue_cloaked_redirect', $pretty_link->redirect_type, $pretty_link, $pretty_link_url, $param_string);
@@ -1148,11 +1140,11 @@ class PrliUtils {
1148
  }
1149
 
1150
  public static function is_admin() {
1151
- return self::current_user_can('add_users');
1152
  }
1153
 
1154
  public static function is_subscriber() {
1155
- return (self::current_user_can('subscriber'));
1156
  }
1157
 
1158
  // Checks to see that the user is authorized to use Pretty Link based on the minimum role
@@ -1161,7 +1153,8 @@ class PrliUtils {
1161
 
1162
  $prli_update = new PrliUpdateController();
1163
 
1164
- $role = 'add_users';
 
1165
  if($prli_update->is_installed_and_activated() && isset($plp_options) && isset($plp_options->min_role)) {
1166
  $role = $plp_options->min_role;
1167
  }
254
  $query = "SELECT * FROM ".$prli_link->table_name." WHERE slug='$slug' LIMIT 1";
255
  $pretty_link = $wpdb->get_row($query);
256
  $pretty_link_target = apply_filters( 'prli_target_url', array( 'url' => $pretty_link->url, 'link_id' => $pretty_link->id, 'redirect_type' => $pretty_link->redirect_type ) );
257
+ $prli_edition = ucwords(preg_replace('/-/', ' ', PRLI_EDITION));
258
 
259
  // Error out when url is blank
260
  if($pretty_link->redirect_type != 'pixel' && (!isset($pretty_link_target['url']) || empty($pretty_link_target['url']))) {
381
  header("Cache-Control: post-check=0, pre-check=0", false);
382
  header("Pragma: no-cache");
383
  header("Expires: Mon, 07 Jul 1777 07:07:07 GMT"); // Battle of Hubbardton
 
384
  header("X-Redirect-Powered-By: {$prli_edition} " . PRLI_VERSION . " http://prettylink.com");
385
 
386
  switch($pretty_link->redirect_type) {
387
  case '301':
388
+ wp_redirect("{$pretty_link_url}{$param_string}", 301);
389
+ exit;
390
+ case '307':
391
+ wp_redirect("{$pretty_link_url}{$param_string}", 307);
392
+ exit;
 
 
393
  default:
394
+ if($pretty_link->redirect_type == '302' || !$plp_update->is_installed()) {
395
+ wp_redirect("{$pretty_link_url}{$param_string}", 302);
396
+ exit;
 
 
 
 
 
 
397
  }
398
  else {
399
  do_action('prli_issue_cloaked_redirect', $pretty_link->redirect_type, $pretty_link, $pretty_link_url, $param_string);
1140
  }
1141
 
1142
  public static function is_admin() {
1143
+ return self::current_user_can('manage_options');
1144
  }
1145
 
1146
  public static function is_subscriber() {
1147
+ return self::current_user_can('subscriber');
1148
  }
1149
 
1150
  // Checks to see that the user is authorized to use Pretty Link based on the minimum role
1153
 
1154
  $prli_update = new PrliUpdateController();
1155
 
1156
+ $role = 'manage_options';
1157
+
1158
  if($prli_update->is_installed_and_activated() && isset($plp_options) && isset($plp_options->min_role)) {
1159
  $role = $plp_options->min_role;
1160
  }
app/views/groups/new.php CHANGED
@@ -24,7 +24,7 @@ if(!defined('ABSPATH'))
24
  </tr>
25
  <tr class="form-field">
26
  <td valign="top"><?php _e('Description:', 'pretty-link'); ?> </td>
27
- <td><textarea style="height: 100px;" name="description"><?php echo ((isset($_POST['description']))?$_POST['description']:''); ?></textarea>
28
  <br/><span class="setting-description"><?php _e('A Description of this group.', 'pretty-link'); ?></span></td>
29
  </tr>
30
  <tr class="form-field" valign="top">
24
  </tr>
25
  <tr class="form-field">
26
  <td valign="top"><?php _e('Description:', 'pretty-link'); ?> </td>
27
+ <td><textarea style="height: 100px;" name="description"><?php echo ((isset($_POST['description']))?sanitize_textarea_field($_POST['description']):''); ?></textarea>
28
  <br/><span class="setting-description"><?php _e('A Description of this group.', 'pretty-link'); ?></span></td>
29
  </tr>
30
  <tr class="form-field" valign="top">
i18n/pretty-link.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2017 Pretty Links
2
  # This file is distributed under the same license as the Pretty Links package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Pretty Links 2.1.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/pretty-link\n"
7
- "POT-Creation-Date: 2017-08-31 20:48:45+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
@@ -17,7 +17,7 @@ msgstr ""
17
  msgid "Pretty Links | Manage Pretty Links"
18
  msgstr ""
19
 
20
- #. #-#-#-#-# pretty-link.pot (Pretty Links 2.1.2) #-#-#-#-#
21
  #. Plugin Name of the plugin/theme
22
  #: app/controllers/PrliAppController.php:37
23
  #: app/controllers/PrliAppController.php:46 app/views/links/list.php:12
@@ -142,34 +142,38 @@ msgid "All Links"
142
  msgstr ""
143
 
144
  #: app/controllers/PrliGroupsController.php:40
 
 
 
 
145
  msgid "An unknown error occurred when creating your group."
146
  msgstr ""
147
 
148
- #: app/controllers/PrliGroupsController.php:49
149
  msgid "Group Created"
150
  msgstr ""
151
 
152
- #: app/controllers/PrliGroupsController.php:56
153
  msgid "A name must be specified for your new group name"
154
  msgstr ""
155
 
156
- #: app/controllers/PrliGroupsController.php:61
157
  msgid "Cannot add group because security nonce failed"
158
  msgstr ""
159
 
160
- #: app/controllers/PrliGroupsController.php:71
161
  msgid "Create a group and use it to organize your Pretty Links."
162
  msgstr ""
163
 
164
- #: app/controllers/PrliGroupsController.php:95
165
  msgid "Your Pretty Link Group was Successfully Created"
166
  msgstr ""
167
 
168
- #: app/controllers/PrliGroupsController.php:125
169
  msgid "Your Pretty Link Group was Successfully Updated"
170
  msgstr ""
171
 
172
- #: app/controllers/PrliGroupsController.php:134
173
  msgid "Your Pretty Link Group was Successfully Deleted"
174
  msgstr ""
175
 
@@ -207,7 +211,7 @@ msgstr ""
207
  msgid "Your links were deleted successfully"
208
  msgstr ""
209
 
210
- #: app/controllers/PrliLinksController.php:503
211
  msgid "Pretty Link Cleanup Visitor Locks"
212
  msgstr ""
213
 
@@ -276,23 +280,23 @@ msgstr ""
276
  msgid "Why you creepin'?"
277
  msgstr ""
278
 
279
- #: app/controllers/PrliUpdateController.php:303
280
  msgid "Check for Update"
281
  msgstr ""
282
 
283
- #: app/controllers/PrliUpdateController.php:372
284
  msgid "You had an HTTP error connecting to Caseproof's Mothership API"
285
  msgstr ""
286
 
287
- #: app/controllers/PrliUpdateController.php:384
288
  msgid "Your License Key was invalid"
289
  msgstr ""
290
 
291
- #: app/controllers/PrliUpdateController.php:410
292
  msgid "You do not have access."
293
  msgstr ""
294
 
295
- #: app/controllers/PrliUpdateController.php:414
296
  msgid "Edge updates couldn't be updated."
297
  msgstr ""
298
 
@@ -1545,7 +1549,7 @@ msgstr ""
1545
 
1546
  #: app/views/shared/tinymce_form_popup.php:67
1547
  #: pro/app/controllers/PlpLinksController.php:628
1548
- #: pro/app/controllers/PlpLinksController.php:675
1549
  #: pro/app/views/options/nav.php:5
1550
  msgid "Pretty Bar"
1551
  msgstr ""
@@ -1557,19 +1561,19 @@ msgstr ""
1557
 
1558
  #: app/views/shared/tinymce_form_popup.php:69
1559
  #: pro/app/controllers/PlpLinksController.php:630
1560
- #: pro/app/controllers/PlpLinksController.php:677
1561
  msgid "Pixel"
1562
  msgstr ""
1563
 
1564
  #: app/views/shared/tinymce_form_popup.php:70
1565
  #: pro/app/controllers/PlpLinksController.php:631
1566
- #: pro/app/controllers/PlpLinksController.php:678
1567
  msgid "Meta Refresh"
1568
  msgstr ""
1569
 
1570
  #: app/views/shared/tinymce_form_popup.php:71
1571
  #: pro/app/controllers/PlpLinksController.php:632
1572
- #: pro/app/controllers/PlpLinksController.php:679
1573
  msgid "Javascript"
1574
  msgstr ""
1575
 
@@ -1766,11 +1770,11 @@ msgstr ""
1766
  msgid "Pro Import/Export"
1767
  msgstr ""
1768
 
1769
- #: pro/app/controllers/PlpKeywordsController.php:67
1770
  msgid "Pretty Link Post Build Index"
1771
  msgstr ""
1772
 
1773
- #: pro/app/controllers/PlpKeywordsController.php:464
1774
  #: pro/app/views/links/form.php:128
1775
  msgid "Keywords"
1776
  msgstr ""
@@ -1853,64 +1857,64 @@ msgstr ""
1853
  msgid "Delay Redirect must be a number"
1854
  msgstr ""
1855
 
1856
- #: pro/app/controllers/PlpLinksController.php:676
1857
  #: pro/app/widgets/PlpPublicLinksWidget.php:64
1858
  msgid "Cloak"
1859
  msgstr ""
1860
 
1861
- #: pro/app/controllers/PlpLinksController.php:744
1862
  msgid "View QR Code for this link: %s"
1863
  msgstr ""
1864
 
1865
- #: pro/app/controllers/PlpLinksController.php:748
1866
  msgid "Download QR Code for this link: %s"
1867
  msgstr ""
1868
 
1869
- #: pro/app/controllers/PlpLinksController.php:819
1870
  msgid "This link expired on %1$s and will now cause a 404 error when visited"
1871
  msgstr ""
1872
 
1873
- #: pro/app/controllers/PlpLinksController.php:822
1874
  msgid "This link expired on %1$s and now redirects to %2$s"
1875
  msgstr ""
1876
 
1877
- #: pro/app/controllers/PlpLinksController.php:826
1878
  msgid "This link is set to expire after the date %s"
1879
  msgstr ""
1880
 
1881
- #: pro/app/controllers/PlpLinksController.php:837
1882
  msgid ""
1883
  "This link expired after %d clicks and will now cause a 404 error when visited"
1884
  msgstr ""
1885
 
1886
- #: pro/app/controllers/PlpLinksController.php:840
1887
  msgid "This link expired after %1$d clicks and now redirects to %2$s"
1888
  msgstr ""
1889
 
1890
- #: pro/app/controllers/PlpLinksController.php:844
1891
  msgid "This link is set to expire after %d clicks"
1892
  msgstr ""
1893
 
1894
- #: pro/app/controllers/PlpLinksController.php:852
1895
  msgid "This link has additional Target URL rotations"
1896
  msgstr ""
1897
 
1898
- #: pro/app/controllers/PlpLinksController.php:855
1899
  msgid "This link has additional Geographic Target URLs"
1900
  msgstr ""
1901
 
1902
- #: pro/app/controllers/PlpLinksController.php:858
1903
  msgid "This link has additional Technology Dependent Conditional Target URLs"
1904
  msgstr ""
1905
 
1906
- #: pro/app/controllers/PlpLinksController.php:863
1907
  msgid ""
1908
  "A Time Period Redirect is currently active for this link. When visited it "
1909
  "will currently redirect to %s rather than the Target URL unless the link is "
1910
  "expired."
1911
  msgstr ""
1912
 
1913
- #: pro/app/controllers/PlpLinksController.php:867
1914
  msgid ""
1915
  "Time Period Redirects have been setup for this link but the current time is "
1916
  "not within any of them currently."
1
+ # Copyright (C) 2018 Pretty Links
2
  # This file is distributed under the same license as the Pretty Links package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Pretty Links 2.1.3\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/pretty-link\n"
7
+ "POT-Creation-Date: 2018-01-10 14:48:50+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
17
  msgid "Pretty Links | Manage Pretty Links"
18
  msgstr ""
19
 
20
+ #. #-#-#-#-# pretty-link.pot (Pretty Links 2.1.3) #-#-#-#-#
21
  #. Plugin Name of the plugin/theme
22
  #: app/controllers/PrliAppController.php:37
23
  #: app/controllers/PrliAppController.php:46 app/views/links/list.php:12
142
  msgstr ""
143
 
144
  #: app/controllers/PrliGroupsController.php:40
145
+ msgid "Cannot add group because current user is not authorized."
146
+ msgstr ""
147
+
148
+ #: app/controllers/PrliGroupsController.php:45
149
  msgid "An unknown error occurred when creating your group."
150
  msgstr ""
151
 
152
+ #: app/controllers/PrliGroupsController.php:54
153
  msgid "Group Created"
154
  msgstr ""
155
 
156
+ #: app/controllers/PrliGroupsController.php:61
157
  msgid "A name must be specified for your new group name"
158
  msgstr ""
159
 
160
+ #: app/controllers/PrliGroupsController.php:66
161
  msgid "Cannot add group because security nonce failed"
162
  msgstr ""
163
 
164
+ #: app/controllers/PrliGroupsController.php:76
165
  msgid "Create a group and use it to organize your Pretty Links."
166
  msgstr ""
167
 
168
+ #: app/controllers/PrliGroupsController.php:100
169
  msgid "Your Pretty Link Group was Successfully Created"
170
  msgstr ""
171
 
172
+ #: app/controllers/PrliGroupsController.php:130
173
  msgid "Your Pretty Link Group was Successfully Updated"
174
  msgstr ""
175
 
176
+ #: app/controllers/PrliGroupsController.php:139
177
  msgid "Your Pretty Link Group was Successfully Deleted"
178
  msgstr ""
179
 
211
  msgid "Your links were deleted successfully"
212
  msgstr ""
213
 
214
+ #: app/controllers/PrliLinksController.php:502
215
  msgid "Pretty Link Cleanup Visitor Locks"
216
  msgstr ""
217
 
280
  msgid "Why you creepin'?"
281
  msgstr ""
282
 
283
+ #: app/controllers/PrliUpdateController.php:306
284
  msgid "Check for Update"
285
  msgstr ""
286
 
287
+ #: app/controllers/PrliUpdateController.php:375
288
  msgid "You had an HTTP error connecting to Caseproof's Mothership API"
289
  msgstr ""
290
 
291
+ #: app/controllers/PrliUpdateController.php:387
292
  msgid "Your License Key was invalid"
293
  msgstr ""
294
 
295
+ #: app/controllers/PrliUpdateController.php:413
296
  msgid "You do not have access."
297
  msgstr ""
298
 
299
+ #: app/controllers/PrliUpdateController.php:417
300
  msgid "Edge updates couldn't be updated."
301
  msgstr ""
302
 
1549
 
1550
  #: app/views/shared/tinymce_form_popup.php:67
1551
  #: pro/app/controllers/PlpLinksController.php:628
1552
+ #: pro/app/controllers/PlpLinksController.php:667
1553
  #: pro/app/views/options/nav.php:5
1554
  msgid "Pretty Bar"
1555
  msgstr ""
1561
 
1562
  #: app/views/shared/tinymce_form_popup.php:69
1563
  #: pro/app/controllers/PlpLinksController.php:630
1564
+ #: pro/app/controllers/PlpLinksController.php:669
1565
  msgid "Pixel"
1566
  msgstr ""
1567
 
1568
  #: app/views/shared/tinymce_form_popup.php:70
1569
  #: pro/app/controllers/PlpLinksController.php:631
1570
+ #: pro/app/controllers/PlpLinksController.php:670
1571
  msgid "Meta Refresh"
1572
  msgstr ""
1573
 
1574
  #: app/views/shared/tinymce_form_popup.php:71
1575
  #: pro/app/controllers/PlpLinksController.php:632
1576
+ #: pro/app/controllers/PlpLinksController.php:671
1577
  msgid "Javascript"
1578
  msgstr ""
1579
 
1770
  msgid "Pro Import/Export"
1771
  msgstr ""
1772
 
1773
+ #: pro/app/controllers/PlpKeywordsController.php:70
1774
  msgid "Pretty Link Post Build Index"
1775
  msgstr ""
1776
 
1777
+ #: pro/app/controllers/PlpKeywordsController.php:467
1778
  #: pro/app/views/links/form.php:128
1779
  msgid "Keywords"
1780
  msgstr ""
1857
  msgid "Delay Redirect must be a number"
1858
  msgstr ""
1859
 
1860
+ #: pro/app/controllers/PlpLinksController.php:668
1861
  #: pro/app/widgets/PlpPublicLinksWidget.php:64
1862
  msgid "Cloak"
1863
  msgstr ""
1864
 
1865
+ #: pro/app/controllers/PlpLinksController.php:736
1866
  msgid "View QR Code for this link: %s"
1867
  msgstr ""
1868
 
1869
+ #: pro/app/controllers/PlpLinksController.php:740
1870
  msgid "Download QR Code for this link: %s"
1871
  msgstr ""
1872
 
1873
+ #: pro/app/controllers/PlpLinksController.php:811
1874
  msgid "This link expired on %1$s and will now cause a 404 error when visited"
1875
  msgstr ""
1876
 
1877
+ #: pro/app/controllers/PlpLinksController.php:814
1878
  msgid "This link expired on %1$s and now redirects to %2$s"
1879
  msgstr ""
1880
 
1881
+ #: pro/app/controllers/PlpLinksController.php:818
1882
  msgid "This link is set to expire after the date %s"
1883
  msgstr ""
1884
 
1885
+ #: pro/app/controllers/PlpLinksController.php:829
1886
  msgid ""
1887
  "This link expired after %d clicks and will now cause a 404 error when visited"
1888
  msgstr ""
1889
 
1890
+ #: pro/app/controllers/PlpLinksController.php:832
1891
  msgid "This link expired after %1$d clicks and now redirects to %2$s"
1892
  msgstr ""
1893
 
1894
+ #: pro/app/controllers/PlpLinksController.php:836
1895
  msgid "This link is set to expire after %d clicks"
1896
  msgstr ""
1897
 
1898
+ #: pro/app/controllers/PlpLinksController.php:844
1899
  msgid "This link has additional Target URL rotations"
1900
  msgstr ""
1901
 
1902
+ #: pro/app/controllers/PlpLinksController.php:847
1903
  msgid "This link has additional Geographic Target URLs"
1904
  msgstr ""
1905
 
1906
+ #: pro/app/controllers/PlpLinksController.php:850
1907
  msgid "This link has additional Technology Dependent Conditional Target URLs"
1908
  msgstr ""
1909
 
1910
+ #: pro/app/controllers/PlpLinksController.php:855
1911
  msgid ""
1912
  "A Time Period Redirect is currently active for this link. When visited it "
1913
  "will currently redirect to %s rather than the Target URL unless the link is "
1914
  "expired."
1915
  msgstr ""
1916
 
1917
+ #: pro/app/controllers/PlpLinksController.php:859
1918
  msgid ""
1919
  "Time Period Redirects have been setup for this link but the current time is "
1920
  "not within any of them currently."
pretty-link.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Pretty Links
4
  Plugin URI: https://prettylinks.com/pl/plugin-uri
5
  Description: Shrink, track and share any URL on the Internet from your WordPress website!
6
- Version: 2.1.2
7
  Author: Blair Williams
8
  Author URI: http://blairwilliams.com
9
  Text Domain: pretty-link
@@ -59,7 +59,7 @@ define('PRLI_EDITION', 'pretty-link-lite');
59
 
60
  // Let's give pretty link plenty of room to work with
61
  $mem = abs(intval(@ini_get('memory_limit')));
62
- if( $mem and $mem < 128 ) {
63
  @ini_set('memory_limit', '128M');
64
  }
65
 
3
  Plugin Name: Pretty Links
4
  Plugin URI: https://prettylinks.com/pl/plugin-uri
5
  Description: Shrink, track and share any URL on the Internet from your WordPress website!
6
+ Version: 2.1.3
7
  Author: Blair Williams
8
  Author URI: http://blairwilliams.com
9
  Text Domain: pretty-link
59
 
60
  // Let's give pretty link plenty of room to work with
61
  $mem = abs(intval(@ini_get('memory_limit')));
62
+ if($mem && $mem > 1 && $mem < 128) { //$mem = 1 is probably abs(-1), -1 means "unlimited"
63
  @ini_set('memory_limit', '128M');
64
  }
65
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: supercleanse
3
  Donate link: https://prettylinks.com
4
  Tags: links, link, url, urls, affiliate, affiliates, pretty, marketing, redirect, redirection, forward, plugin, twitter, tweet, rewrite, shorturl, hoplink, hop, shortlink, short, shorten, shortening, click, clicks, track, tracking, tiny, tinyurl, budurl, shrinking, domain, shrink, mask, masking, cloak, cloaking, slug, slugs, admin, administration, stats, statistics, stat, statistic, email, ajax, javascript, ui, csv, download, page, post, pages, posts, shortcode, seo, automation, widget, widgets, dashboard
5
  Requires at least: 4.7
6
- Tested up to: 4.9
7
- Stable tag: 2.1.2
8
 
9
  Shrink, beautify, track, manage and share any URL on or off of your WordPress website. Create links that look how you want using your own domain name!
10
 
@@ -66,6 +66,19 @@ http://blairwilliams.com/w7a
66
 
67
  == Changelog ==
68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  = 2.1.1 =
70
  * Redeploy to WP Repo
71
 
3
  Donate link: https://prettylinks.com
4
  Tags: links, link, url, urls, affiliate, affiliates, pretty, marketing, redirect, redirection, forward, plugin, twitter, tweet, rewrite, shorturl, hoplink, hop, shortlink, short, shorten, shortening, click, clicks, track, tracking, tiny, tinyurl, budurl, shrinking, domain, shrink, mask, masking, cloak, cloaking, slug, slugs, admin, administration, stats, statistics, stat, statistic, email, ajax, javascript, ui, csv, download, page, post, pages, posts, shortcode, seo, automation, widget, widgets, dashboard
5
  Requires at least: 4.7
6
+ Tested up to: 4.9.1
7
+ Stable tag: 2.1.3
8
 
9
  Shrink, beautify, track, manage and share any URL on or off of your WordPress website. Create links that look how you want using your own domain name!
10
 
66
 
67
  == Changelog ==
68
 
69
+ = 2.1.3 =
70
+ * Addressed security vulnerabilities
71
+ * Fixed content-type header
72
+ * Fixed -1 PHP memory_limit error
73
+ * Updated redirects to use wp_redirect()
74
+ * PRO Enhanced WooCommerce keyword replacements
75
+ * PRO Fixed replacing keywords in header and other HTML tags
76
+ * PRO Fixed link expiration dates being 1 day off
77
+
78
+ = 2.1.2 =
79
+ * Updated user manual link
80
+ * Rebranded from Pretty Link to Pretty Links
81
+
82
  = 2.1.1 =
83
  * Redeploy to WP Repo
84