Version Description
- More security hardening
Download this release
Release Info
Developer | supercleanse |
Plugin | 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 +30 -22
- app/helpers/PrliClicksHelper.php +11 -0
- app/models/PrliUtils.php +9 -9
- app/views/clicks/csv.php +12 -1
- app/views/clicks/list.php +4 -2
- i18n/pretty-link.pot +17 -17
- pretty-link.php +1 -1
- readme.txt +7 -4
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 |
-
$
|
140 |
-
$
|
141 |
-
$
|
|
|
142 |
}
|
143 |
else if(isset($_GET['ip'])) {
|
144 |
-
$
|
145 |
-
$
|
|
|
146 |
}
|
147 |
else if(isset($_GET['vuid'])) {
|
148 |
-
$
|
149 |
-
$
|
|
|
150 |
}
|
151 |
else if(isset($_GET['group'])) {
|
152 |
-
$
|
|
|
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)", $
|
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 |
-
$
|
193 |
-
$
|
194 |
-
$
|
195 |
-
$
|
|
|
196 |
}
|
197 |
else if(isset($_GET['ip'])) {
|
198 |
-
$
|
199 |
-
$
|
200 |
-
$
|
|
|
201 |
}
|
202 |
else if(isset($_GET['vuid'])) {
|
203 |
-
$
|
204 |
-
$
|
205 |
-
$
|
|
|
206 |
}
|
207 |
else if(isset($_GET['group'])) {
|
208 |
-
$
|
|
|
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)", $
|
211 |
-
$param_string .= "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'])
|
271 |
-
$click_uri = isset($_SERVER['REQUEST_URI'])
|
272 |
-
$click_user_agent = isset($_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']))
|
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 |
-
|
|
|
|
|
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.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/pretty-link\n"
|
7 |
-
"POT-Creation-Date: 2019-
|
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.
|
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:
|
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:
|
953 |
msgid "Browser"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: app/views/clicks/list.php:75 app/views/clicks/list.php:
|
957 |
msgid "OS"
|
958 |
msgstr ""
|
959 |
|
960 |
-
#: app/views/clicks/list.php:79 app/views/clicks/list.php:
|
961 |
msgid "IP"
|
962 |
msgstr ""
|
963 |
|
964 |
-
#: app/views/clicks/list.php:83 app/views/clicks/list.php:
|
965 |
msgid "Visitor"
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: app/views/clicks/list.php:87 app/views/clicks/list.php:
|
969 |
msgid "Timestamp"
|
970 |
msgstr ""
|
971 |
|
972 |
-
#: app/views/clicks/list.php:91 app/views/clicks/list.php:
|
973 |
msgid "Host"
|
974 |
msgstr ""
|
975 |
|
976 |
-
#: app/views/clicks/list.php:95 app/views/clicks/list.php:
|
977 |
msgid "URI"
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: app/views/clicks/list.php:98 app/views/clicks/list.php:
|
981 |
msgid "Referrer"
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: app/views/clicks/list.php:101 app/views/clicks/list.php:
|
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:
|
994 |
msgid "View All Activity for IP Address: %s"
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: app/views/clicks/list.php:
|
998 |
msgid "View All Activity for Visitor: %s"
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: app/views/clicks/list.php:
|
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:
|
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.
|
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:
|
6 |
-
Tested up to: 5.2
|
7 |
-
Stable tag: 2.1.
|
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 |
|