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

Version Description

  • More security hardening
Download this release

Release Info

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

Code changes from version 2.1.9 to 2.1.10

app/controllers/PrliClicksController.php CHANGED
@@ -136,22 +136,26 @@ class PrliClicksController extends PrliBaseController {
136
  global $wpdb, $prli_click, $prli_group, $prli_link;
137
 
138
  if(isset($_GET['l'])) {
139
- $where_clause = $wpdb->prepare(" link_id=%d",$_GET['l']);
140
- $link_name = $wpdb->get_var($wpdb->prepare("SELECT name FROM {$wpdb->prefix}prli_links WHERE id=%d",$_GET['l']));
141
- $link_slug = $wpdb->get_var($wpdb->prepare("SELECT slug FROM {$wpdb->prefix}prli_links WHERE id=%d",$_GET['l']));
 
142
  }
143
  else if(isset($_GET['ip'])) {
144
- $link_name = "ip_addr_{$_GET['ip']}";
145
- $where_clause = $wpdb->prepare(" cl.ip=%s",$_GET['ip']);
 
146
  }
147
  else if(isset($_GET['vuid'])) {
148
- $link_name = "visitor_{$_GET['vuid']}";
149
- $where_clause = $wpdb->prepare(" cl.vuid=%s",$_GET['vuid']);
 
150
  }
151
  else if(isset($_GET['group'])) {
152
- $group = $prli_group->getOne($_GET['group']);
 
153
  $link_name = "group_{$group->name}";
154
- $where_clause .= $wpdb->prepare(" cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=%d)", $_GET['group']);
155
  }
156
  else {
157
  $link_name = "all_links";
@@ -189,26 +193,30 @@ class PrliClicksController extends PrliBaseController {
189
  $param_string = $where_clause = '';
190
 
191
  if(isset($_GET['l'])) {
192
- $where_clause = $wpdb->prepare(' link_id=%d', $_GET['l']);
193
- $link_name = $wpdb->get_var($wpdb->prepare("SELECT name FROM {$wpdb->prefix}prli_links WHERE id=%d", $_GET['l']));
194
- $link_slug = $wpdb->get_var($wpdb->prepare("SELECT slug FROM {$wpdb->prefix}prli_links WHERE id=%d", $_GET['l']));
195
- $param_string .= "l={$_GET['l']}";
 
196
  }
197
  else if(isset($_GET['ip'])) {
198
- $link_name = "ip_addr_{$_GET['ip']}";
199
- $where_clause = $wpdb->prepare(' cl.ip=%s', $_GET['ip']);
200
- $param_string .= "ip={$_GET['ip']}";
 
201
  }
202
  else if(isset($_GET['vuid'])) {
203
- $link_name = "visitor_{$_GET['vuid']}";
204
- $where_clause = $wpdb->prepare(' cl.vuid=%s', $_GET['vuid']);
205
- $param_string .= "vuid={$_GET['vuid']}";
 
206
  }
207
  else if(isset($_GET['group'])) {
208
- $group = $prli_group->getOne($_GET['group']);
 
209
  $link_name = "group_{$group->name}";
210
- $where_clause .= $wpdb->prepare(" cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=%d)", $_GET['group']);
211
- $param_string .= "group={$_GET['group']}";
212
  }
213
  else {
214
  $link_name = 'all_links';
136
  global $wpdb, $prli_click, $prli_group, $prli_link;
137
 
138
  if(isset($_GET['l'])) {
139
+ $l = PrliClicksHelper::esc_spreadsheet_cell( $_GET['l'] );
140
+ $where_clause = $wpdb->prepare(" link_id=%d",$l );
141
+ $link_name = $wpdb->get_var($wpdb->prepare("SELECT name FROM {$wpdb->prefix}prli_links WHERE id=%d",$l));
142
+ $link_slug = $wpdb->get_var($wpdb->prepare("SELECT slug FROM {$wpdb->prefix}prli_links WHERE id=%d",$l));
143
  }
144
  else if(isset($_GET['ip'])) {
145
+ $ip = PrliClicksHelper::esc_spreadsheet_cell( $_GET['ip'] );
146
+ $link_name = "ip_addr_{$ip}";
147
+ $where_clause = $wpdb->prepare(" cl.ip=%s",$ip);
148
  }
149
  else if(isset($_GET['vuid'])) {
150
+ $vuid = PrliClicksHelper::esc_spreadsheet_cell( $_GET['vuid'] );
151
+ $link_name = "visitor_{$vuid}";
152
+ $where_clause = $wpdb->prepare(" cl.vuid=%s",$vuid);
153
  }
154
  else if(isset($_GET['group'])) {
155
+ $group_val = PrliClicksHelper::esc_spreadsheet_cell( $_GET['group'] );
156
+ $group = $prli_group->getOne($group_val);
157
  $link_name = "group_{$group->name}";
158
+ $where_clause .= $wpdb->prepare(" cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=%d)", $group_val);
159
  }
160
  else {
161
  $link_name = "all_links";
193
  $param_string = $where_clause = '';
194
 
195
  if(isset($_GET['l'])) {
196
+ $l = PrliClicksHelper::esc_spreadsheet_cell( $_GET['l'] );
197
+ $where_clause = $wpdb->prepare(' link_id=%d', $l);
198
+ $link_name = $wpdb->get_var($wpdb->prepare("SELECT name FROM {$wpdb->prefix}prli_links WHERE id=%d", $l));
199
+ $link_slug = $wpdb->get_var($wpdb->prepare("SELECT slug FROM {$wpdb->prefix}prli_links WHERE id=%d", $l));
200
+ $param_string .= "l={$l}";
201
  }
202
  else if(isset($_GET['ip'])) {
203
+ $ip = PrliClicksHelper::esc_spreadsheet_cell( $_GET['ip'] );
204
+ $link_name = "ip_addr_{$ip}";
205
+ $where_clause = $wpdb->prepare(' cl.ip=%s', $ip);
206
+ $param_string .= "ip={$ip}";
207
  }
208
  else if(isset($_GET['vuid'])) {
209
+ $vuid = PrliClicksHelper::esc_spreadsheet_cell( $_GET['vuid'] );
210
+ $link_name = "visitor_{$vuid}";
211
+ $where_clause = $wpdb->prepare(' cl.vuid=%s', $vuid);
212
+ $param_string .= "vuid={$vuid}";
213
  }
214
  else if(isset($_GET['group'])) {
215
+ $group_val = PrliClicksHelper::esc_spreadsheet_cell( $_GET['group'] );
216
+ $group = $prli_group->getOne($group_val);
217
  $link_name = "group_{$group->name}";
218
+ $where_clause .= $wpdb->prepare(" cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=%d)", $group_val);
219
+ $param_string .= "group={$group_val}";
220
  }
221
  else {
222
  $link_name = 'all_links';
app/helpers/PrliClicksHelper.php CHANGED
@@ -104,5 +104,16 @@ class PrliClicksHelper {
104
  return compact( 'count_where_clause', 'sort_str', 'sdir_str', 'search_str',
105
  'where_clause', 'order_by', 'sort_params', 'page_params' );
106
  }
 
 
 
 
 
 
 
 
 
 
 
107
  }
108
 
104
  return compact( 'count_where_clause', 'sort_str', 'sdir_str', 'search_str',
105
  'where_clause', 'order_by', 'sort_params', 'page_params' );
106
  }
107
+
108
+ /**
109
+ * Remove nefarious characters from a cell value
110
+ *
111
+ * @param string $value Cell value
112
+ *
113
+ * @return string
114
+ */
115
+ public static function esc_spreadsheet_cell( $value ) {
116
+ return preg_replace( '/^[-=+@]*/', '', $value );
117
+ }
118
  }
119
 
app/models/PrliUtils.php CHANGED
@@ -267,9 +267,9 @@ class PrliUtils {
267
  if(isset($track_me) and !empty($track_me) and $track_me) {
268
  $first_click = 0;
269
  $click_ip = $this->get_current_client_ip();
270
- $click_referer = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';
271
- $click_uri = isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'';
272
- $click_user_agent = isset($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:'';
273
 
274
  //Set Cookie if it doesn't exist
275
  $cookie_name = 'prli_click_' . $pretty_link->id;
@@ -405,22 +405,22 @@ class PrliUtils {
405
  }
406
 
407
  public function get_current_client_ip() {
408
- $ipaddress = (isset($_SERVER['REMOTE_ADDR']))?$_SERVER['REMOTE_ADDR']:'';
409
 
410
  if(isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP'] != '127.0.0.1') {
411
- $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
412
  }
413
  elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '127.0.0.1') {
414
- $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
415
  }
416
  elseif(isset($_SERVER['HTTP_X_FORWARDED']) && $_SERVER['HTTP_X_FORWARDED'] != '127.0.0.1') {
417
- $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
418
  }
419
  elseif(isset($_SERVER['HTTP_FORWARDED_FOR']) && $_SERVER['HTTP_FORWARDED_FOR'] != '127.0.0.1') {
420
- $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
421
  }
422
  elseif(isset($_SERVER['HTTP_FORWARDED']) && $_SERVER['HTTP_FORWARDED'] != '127.0.0.1') {
423
- $ipaddress = $_SERVER['HTTP_FORWARDED'];
424
  }
425
 
426
  $ips = explode(',', $ipaddress);
267
  if(isset($track_me) and !empty($track_me) and $track_me) {
268
  $first_click = 0;
269
  $click_ip = $this->get_current_client_ip();
270
+ $click_referer = isset($_SERVER['HTTP_REFERER'])?sanitize_text_field( $_SERVER['HTTP_REFERER'] ):'';
271
+ $click_uri = isset($_SERVER['REQUEST_URI'])?sanitize_text_field( $_SERVER['REQUEST_URI'] ):'';
272
+ $click_user_agent = isset($_SERVER['HTTP_USER_AGENT'])?sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] ):'';
273
 
274
  //Set Cookie if it doesn't exist
275
  $cookie_name = 'prli_click_' . $pretty_link->id;
405
  }
406
 
407
  public function get_current_client_ip() {
408
+ $ipaddress = (isset($_SERVER['REMOTE_ADDR']))?sanitize_text_field( $_SERVER['REMOTE_ADDR'] ):'';
409
 
410
  if(isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP'] != '127.0.0.1') {
411
+ $ipaddress = sanitize_text_field( $_SERVER['HTTP_CLIENT_IP'] );
412
  }
413
  elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '127.0.0.1') {
414
+ $ipaddress = sanitize_text_field( $_SERVER['HTTP_X_FORWARDED_FOR'] );
415
  }
416
  elseif(isset($_SERVER['HTTP_X_FORWARDED']) && $_SERVER['HTTP_X_FORWARDED'] != '127.0.0.1') {
417
+ $ipaddress = sanitize_text_field( $_SERVER['HTTP_X_FORWARDED'] );
418
  }
419
  elseif(isset($_SERVER['HTTP_FORWARDED_FOR']) && $_SERVER['HTTP_FORWARDED_FOR'] != '127.0.0.1') {
420
+ $ipaddress = sanitize_text_field( $_SERVER['HTTP_FORWARDED_FOR'] );
421
  }
422
  elseif(isset($_SERVER['HTTP_FORWARDED']) && $_SERVER['HTTP_FORWARDED'] != '127.0.0.1') {
423
+ $ipaddress = sanitize_text_field( $_SERVER['HTTP_FORWARDED'] );
424
  }
425
 
426
  $ips = explode(',', $ipaddress);
app/views/clicks/csv.php CHANGED
@@ -16,10 +16,21 @@ if(!defined('ABSPATH'))
16
  echo '"Browser","Browser Version","Platform","IP","Visitor ID","Timestamp","Host","URI","Referrer","Link"' . "\n";
17
  foreach($clicks as $click)
18
  {
 
19
  $link = $prli_link->getOne($click->link_id);
20
 
 
 
 
 
 
 
 
 
 
 
21
  echo "\"$click->btype\",\"$click->bversion\",\"$click->os\",\"$click->ip\",\"$click->vuid\",\"$click->created_at\",\"$click->host\",\"$click->uri\",\"$click->referer\",\"" . ((empty($link->name))?$link->slug:$link->name) . "\"\n";
22
  }
23
  }
24
  else
25
- header("Location: " . $prli_blogurl);
16
  echo '"Browser","Browser Version","Platform","IP","Visitor ID","Timestamp","Host","URI","Referrer","Link"' . "\n";
17
  foreach($clicks as $click)
18
  {
19
+
20
  $link = $prli_link->getOne($click->link_id);
21
 
22
+ $click->btype = sanitize_text_field( PrliClicksHelper::esc_spreadsheet_cell( $click->btype ) );
23
+ $click->bversion = sanitize_text_field( PrliClicksHelper::esc_spreadsheet_cell( $click->bversion ) );
24
+ $click->os = sanitize_text_field( PrliClicksHelper::esc_spreadsheet_cell( $click->os ) );
25
+ $click->ip = sanitize_text_field( PrliClicksHelper::esc_spreadsheet_cell( $click->ip ) );
26
+ $click->vuid = sanitize_text_field( PrliClicksHelper::esc_spreadsheet_cell( $click->vuid ) );
27
+ $click->created_at = sanitize_text_field( PrliClicksHelper::esc_spreadsheet_cell( $click->created_at ) );
28
+ $click->host = sanitize_text_field( PrliClicksHelper::esc_spreadsheet_cell( $click->host ) );
29
+ $click->uri = sanitize_text_field( PrliClicksHelper::esc_spreadsheet_cell( $click->uri ) );
30
+ $click->referer = sanitize_text_field( PrliClicksHelper::esc_spreadsheet_cell( $click->referer ) );
31
+
32
  echo "\"$click->btype\",\"$click->bversion\",\"$click->os\",\"$click->ip\",\"$click->vuid\",\"$click->created_at\",\"$click->host\",\"$click->uri\",\"$click->referer\",\"" . ((empty($link->name))?$link->slug:$link->name) . "\"\n";
33
  }
34
  }
35
  else
36
+ header("Location: " . $prli_blogurl);
app/views/clicks/list.php CHANGED
@@ -144,7 +144,9 @@
144
  </td>
145
  <?php endif; ?>
146
 
147
- <td><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&ip={$click->ip}"); ?>" title="<?php printf(__('View All Activity for IP Address: %s', 'pretty-link'), $click->ip); ?>"><?php echo $click->ip; ?> (<?php echo $click->ip_count; ?>)</a></td>
 
 
148
 
149
  <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ): ?>
150
  <td><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&vuid={$click->vuid}") ?>" title="<?php printf(__('View All Activity for Visitor: %s', 'pretty-link'), $click->vuid); ?>"><?php echo $click->vuid; ?><?php echo (($click->vuid != null)?" ($click->vuid_count)":''); ?></a></td>
@@ -157,7 +159,7 @@
157
  <?php endif; ?>
158
 
159
  <td><?php echo $click->uri; ?></td>
160
- <td><a href="<?php echo $click->referer; ?>"><?php echo $click->referer; ?></a></td>
161
  <td><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&l={$click->link_id}"); ?>" title="<?php printf(__('View clicks for %s', 'pretty-link'), stripslashes($click->link_name)); ?>"><?php echo stripslashes($click->link_name); ?></a></td>
162
  </tr>
163
  <?php
144
  </td>
145
  <?php endif; ?>
146
 
147
+ <?php $click_ip = esc_attr( $click->ip ); ?>
148
+
149
+ <td><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&ip={$click_ip}"); ?>" title="<?php printf(__('View All Activity for IP Address: %s', 'pretty-link'), $click_ip); ?>"><?php echo $click_ip; ?> (<?php echo $click->ip_count; ?>)</a></td>
150
 
151
  <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ): ?>
152
  <td><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&vuid={$click->vuid}") ?>" title="<?php printf(__('View All Activity for Visitor: %s', 'pretty-link'), $click->vuid); ?>"><?php echo $click->vuid; ?><?php echo (($click->vuid != null)?" ($click->vuid_count)":''); ?></a></td>
159
  <?php endif; ?>
160
 
161
  <td><?php echo $click->uri; ?></td>
162
+ <td><a href="<?php echo esc_attr( $click->referer ); ?>"><?php echo esc_attr( $click->referer ); ?></a></td>
163
  <td><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&l={$click->link_id}"); ?>" title="<?php printf(__('View clicks for %s', 'pretty-link'), stripslashes($click->link_name)); ?>"><?php echo stripslashes($click->link_name); ?></a></td>
164
  </tr>
165
  <?php
i18n/pretty-link.pot CHANGED
@@ -2,9 +2,9 @@
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.9\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/pretty-link\n"
7
- "POT-Creation-Date: 2019-05-01 03:50:25+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -17,7 +17,7 @@ msgstr ""
17
  msgid "Pretty Links | Manage Pretty Links"
18
  msgstr ""
19
 
20
- #. #-#-#-#-# pretty-link.pot (Pretty Links 2.1.9) #-#-#-#-#
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
@@ -495,7 +495,7 @@ msgstr ""
495
  msgid "Reset %s"
496
  msgstr ""
497
 
498
- #: app/helpers/PrliLinksHelper.php:120 app/views/clicks/list.php:161
499
  msgid "View clicks for %s"
500
  msgstr ""
501
 
@@ -949,39 +949,39 @@ msgstr ""
949
  msgid "Reset"
950
  msgstr ""
951
 
952
- #: app/views/clicks/list.php:73 app/views/clicks/list.php:171
953
  msgid "Browser"
954
  msgstr ""
955
 
956
- #: app/views/clicks/list.php:75 app/views/clicks/list.php:172
957
  msgid "OS"
958
  msgstr ""
959
 
960
- #: app/views/clicks/list.php:79 app/views/clicks/list.php:174
961
  msgid "IP"
962
  msgstr ""
963
 
964
- #: app/views/clicks/list.php:83 app/views/clicks/list.php:176
965
  msgid "Visitor"
966
  msgstr ""
967
 
968
- #: app/views/clicks/list.php:87 app/views/clicks/list.php:178
969
  msgid "Timestamp"
970
  msgstr ""
971
 
972
- #: app/views/clicks/list.php:91 app/views/clicks/list.php:180
973
  msgid "Host"
974
  msgstr ""
975
 
976
- #: app/views/clicks/list.php:95 app/views/clicks/list.php:182
977
  msgid "URI"
978
  msgstr ""
979
 
980
- #: app/views/clicks/list.php:98 app/views/clicks/list.php:183
981
  msgid "Referrer"
982
  msgstr ""
983
 
984
- #: app/views/clicks/list.php:101 app/views/clicks/list.php:184
985
  #: pro/app/models/PlpReport.php:251 pro/app/models/PlpReport.php:260
986
  msgid "Link"
987
  msgstr ""
@@ -990,15 +990,15 @@ msgstr ""
990
  msgid "No Clicks have been recorded yet"
991
  msgstr ""
992
 
993
- #: app/views/clicks/list.php:147
994
  msgid "View All Activity for IP Address: %s"
995
  msgstr ""
996
 
997
- #: app/views/clicks/list.php:150
998
  msgid "View All Activity for Visitor: %s"
999
  msgstr ""
1000
 
1001
- #: app/views/clicks/list.php:190
1002
  msgid "Download CSV"
1003
  msgstr ""
1004
 
@@ -1774,7 +1774,7 @@ msgstr ""
1774
  msgid "Pretty Link Post Build Index"
1775
  msgstr ""
1776
 
1777
- #: pro/app/controllers/PlpKeywordsController.php:484
1778
  #: pro/app/views/links/form.php:128
1779
  msgid "Keywords"
1780
  msgstr ""
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.10\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/pretty-link\n"
7
+ "POT-Creation-Date: 2019-06-18 23:07:00+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
17
  msgid "Pretty Links | Manage Pretty Links"
18
  msgstr ""
19
 
20
+ #. #-#-#-#-# pretty-link.pot (Pretty Links 2.1.10) #-#-#-#-#
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
495
  msgid "Reset %s"
496
  msgstr ""
497
 
498
+ #: app/helpers/PrliLinksHelper.php:120 app/views/clicks/list.php:163
499
  msgid "View clicks for %s"
500
  msgstr ""
501
 
949
  msgid "Reset"
950
  msgstr ""
951
 
952
+ #: app/views/clicks/list.php:73 app/views/clicks/list.php:173
953
  msgid "Browser"
954
  msgstr ""
955
 
956
+ #: app/views/clicks/list.php:75 app/views/clicks/list.php:174
957
  msgid "OS"
958
  msgstr ""
959
 
960
+ #: app/views/clicks/list.php:79 app/views/clicks/list.php:176
961
  msgid "IP"
962
  msgstr ""
963
 
964
+ #: app/views/clicks/list.php:83 app/views/clicks/list.php:178
965
  msgid "Visitor"
966
  msgstr ""
967
 
968
+ #: app/views/clicks/list.php:87 app/views/clicks/list.php:180
969
  msgid "Timestamp"
970
  msgstr ""
971
 
972
+ #: app/views/clicks/list.php:91 app/views/clicks/list.php:182
973
  msgid "Host"
974
  msgstr ""
975
 
976
+ #: app/views/clicks/list.php:95 app/views/clicks/list.php:184
977
  msgid "URI"
978
  msgstr ""
979
 
980
+ #: app/views/clicks/list.php:98 app/views/clicks/list.php:185
981
  msgid "Referrer"
982
  msgstr ""
983
 
984
+ #: app/views/clicks/list.php:101 app/views/clicks/list.php:186
985
  #: pro/app/models/PlpReport.php:251 pro/app/models/PlpReport.php:260
986
  msgid "Link"
987
  msgstr ""
990
  msgid "No Clicks have been recorded yet"
991
  msgstr ""
992
 
993
+ #: app/views/clicks/list.php:149
994
  msgid "View All Activity for IP Address: %s"
995
  msgstr ""
996
 
997
+ #: app/views/clicks/list.php:152
998
  msgid "View All Activity for Visitor: %s"
999
  msgstr ""
1000
 
1001
+ #: app/views/clicks/list.php:192
1002
  msgid "Download CSV"
1003
  msgstr ""
1004
 
1774
  msgid "Pretty Link Post Build Index"
1775
  msgstr ""
1776
 
1777
+ #: pro/app/controllers/PlpKeywordsController.php:485
1778
  #: pro/app/views/links/form.php:128
1779
  msgid "Keywords"
1780
  msgstr ""
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.9
7
  Author: Blair Williams
8
  Author URI: http://blairwilliams.com
9
  Text Domain: pretty-link
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.10
7
  Author: Blair Williams
8
  Author URI: http://blairwilliams.com
9
  Text Domain: pretty-link
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Shortlinks by Pretty Links - Best WordPress Link Tracking Plugin ===
2
- 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.9
6
- Tested up to: 5.2
7
- Stable tag: 2.1.9
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
 
@@ -65,6 +65,9 @@ http://blairwilliams.com/w7a
65
  3. Make sure you have changed your permalink Common Settings in Settings -> Permalinks away from "Default" to something else. I prefer using custom and then "/%year%/%month%/%postname%/" for the simplest possible URL slugs with the best performance.
66
 
67
  == Changelog ==
 
 
 
68
  = 2.1.9 =
69
  * Fixed some security issues
70
 
1
  === Shortlinks by Pretty Links - Best WordPress Link Tracking Plugin ===
2
+ Contributors: supercleanse, cartpauj
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: 5.1
6
+ Tested up to: 5.2.2
7
+ Stable tag: 2.1.10
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
 
65
  3. Make sure you have changed your permalink Common Settings in Settings -> Permalinks away from "Default" to something else. I prefer using custom and then "/%year%/%month%/%postname%/" for the simplest possible URL slugs with the best performance.
66
 
67
  == Changelog ==
68
+ = 2.1.10 =
69
+ * More security hardening
70
+
71
  = 2.1.9 =
72
  * Fixed some security issues
73