ThirstyAffiliates Affiliate Link Manager - Version 3.9.3

Version Description

  • Improvement: Add an action hook before the enhanced JavaScript redirect
  • Bug Fix: Security fix on the link attachment title
Download this release

Release Info

Developer supercleanse
Plugin Icon 128x128 ThirstyAffiliates Affiliate Link Manager
Version 3.9.3
Comparing to
See all releases

Code changes from version 3.9.2 to 3.9.3

Helpers/Plugin_Constants.php CHANGED
@@ -27,7 +27,7 @@ class Plugin_Constants {
27
// Plugin configuration constants
28
const TOKEN = 'ta';
29
const INSTALLED_VERSION = 'ta_installed_version';
30
- const VERSION = '3.9.2';
31
const TEXT_DOMAIN = 'thirstyaffiliates';
32
const THEME_TEMPLATE_PATH = 'thirstyaffiliates';
33
const META_DATA_PREFIX = '_ta_';
27
// Plugin configuration constants
28
const TOKEN = 'ta';
29
const INSTALLED_VERSION = 'ta_installed_version';
30
+ const VERSION = '3.9.3';
31
const TEXT_DOMAIN = 'thirstyaffiliates';
32
const THEME_TEMPLATE_PATH = 'thirstyaffiliates';
33
const META_DATA_PREFIX = '_ta_';
Models/Affiliate_Link.php CHANGED
@@ -136,7 +136,7 @@ class Affiliate_Link {
136
137
/**
138
* List of deprecated properties.
139
- *
140
* @since 3.3.1
141
* @access protected
142
* @var array
@@ -330,21 +330,21 @@ class Affiliate_Link {
330
331
/**
332
* Get redirect type
333
- *
334
* @since 3.4.0
335
* @access public
336
- *
337
* @param string $default Default redirect type.
338
* @return string Redirect type.
339
*/
340
public function get_redirect_type( $default = '' ) {
341
342
$redirect_type = $this->data[ 'redirect_type' ];
343
-
344
if ( $redirect_type === 'global' )
345
$redirect_type = get_option( 'ta_link_redirect_type' , $default );
346
elseif ( ! $redirect_type )
347
- $redirect_type = $default ? $default : $default_data[ 'redirect_type' ];
348
349
return $redirect_type;
350
}
136
137
/**
138
* List of deprecated properties.
139
+ *
140
* @since 3.3.1
141
* @access protected
142
* @var array
330
331
/**
332
* Get redirect type
333
+ *
334
* @since 3.4.0
335
* @access public
336
+ *
337
* @param string $default Default redirect type.
338
* @return string Redirect type.
339
*/
340
public function get_redirect_type( $default = '' ) {
341
342
$redirect_type = $this->data[ 'redirect_type' ];
343
+
344
if ( $redirect_type === 'global' )
345
$redirect_type = get_option( 'ta_link_redirect_type' , $default );
346
elseif ( ! $redirect_type )
347
+ $redirect_type = $default ? $default : get_option( 'ta_link_redirect_type' );
348
349
return $redirect_type;
350
}
Models/Script_Loader.php CHANGED
@@ -283,7 +283,7 @@ class Script_Loader implements Model_Interface {
283
284
/**
285
* Load scripts for WP Editor.
286
- *
287
* @since 3.4.0
288
* @access public
289
*/
@@ -307,7 +307,7 @@ class Script_Loader implements Model_Interface {
307
308
/**
309
* Gutenberg backend scripts.
310
- *
311
* @since 3.6
312
* @access public
313
*/
@@ -334,7 +334,7 @@ class Script_Loader implements Model_Interface {
334
$path = isset( $home_url[ 'path' ] ) ? $home_url[ 'path' ] : '';
335
$port = isset( $home_url[ 'port' ] ) ? ':' . $home_url[ 'port' ] : '';
336
337
- return $scheme . $home_url[ 'host' ] . $port . $path;
338
}
339
340
/**
283
284
/**
285
* Load scripts for WP Editor.
286
+ *
287
* @since 3.4.0
288
* @access public
289
*/
307
308
/**
309
* Gutenberg backend scripts.
310
+ *
311
* @since 3.6
312
* @access public
313
*/
334
$path = isset( $home_url[ 'path' ] ) ? $home_url[ 'path' ] : '';
335
$port = isset( $home_url[ 'port' ] ) ? ':' . $home_url[ 'port' ] : '';
336
337
+ return apply_filters( 'ta_absolute_home_url', $scheme . $home_url[ 'host' ] . $port . $path );
338
}
339
340
/**
Models/Stats_Reporting.php CHANGED
@@ -122,10 +122,10 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
122
123
/**
124
* Update $_browser_zone_str class property value.
125
- *
126
* @since 3.3.3
127
* @access public
128
- *
129
* @param string $timezone Timezone set on browser
130
*/
131
public function set_browser_zone_str( $timezone ) {
@@ -136,10 +136,10 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
136
137
/**
138
* Register admin interfaces.
139
- *
140
* @since 3.3.2
141
* @access public
142
- *
143
* @param array $interfaces List of admin interfaces.
144
* @return array Filtered list of admin interfaces.
145
*/
@@ -147,22 +147,22 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
147
148
$interfaces[ 'thirstylink_page_thirsty-reports' ] = apply_filters( 'ta_reports_admin_interface' , array(
149
'link_performance' => 'manage_options'
150
- ) );
151
152
return $interfaces;
153
}
154
155
/**
156
* Register admin interfaces.
157
- *
158
* @since 3.3.2
159
* @access public
160
- *
161
* @param array $interfaces List of menu items.
162
* @return array Filtered list of menu items.
163
*/
164
public function register_admin_menu_items( $menu_items ) {
165
-
166
$menu_items[ 'thirsty-reports' ] = 'manage_options';
167
return $menu_items;
168
}
@@ -308,9 +308,11 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
308
$thirstylink = new Affiliate_Link( $link_id );
309
$redirect_url = apply_filters( 'ta_filter_redirect_url' , $thirstylink->get_prop( 'destination_url' ) , $thirstylink , $query_string );
310
$redirect_type = $thirstylink->get_redirect_type();
311
-
312
$this->save_click_data( $thirstylink , $http_referer , $cloaked_url , $redirect_url , $redirect_type , $keyword );
313
314
// print actual affiliate link redirect url for enhanced javascript redirect support.
315
if ( get_option( 'ta_enable_javascript_frontend_redirect' ) == 'yes' )
316
echo $redirect_url;
@@ -563,7 +565,7 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
563
*
564
* @since 3.0.0
565
* @since 3.2.2 Access to the settings page will now be controlled by the plugin. see Bootstrap::admin_interface_visibility.
566
- *
567
* @access public
568
*/
569
public function add_reports_submenu() {
@@ -769,7 +771,7 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
769
$start_date->setTime( 0 , 0 );
770
771
$start_date->setTimezone( $utc );
772
- $end_date->setTimezone( $utc );
773
774
$raw_data = $this->get_link_performance_data( $start_date->format( 'Y-m-d H:i:s' ) , $end_date->format( 'Y-m-d H:i:s' ) , $link_ids );
775
@@ -1072,6 +1074,6 @@ class Stats_Reporting implements Model_Interface , Initiable_Interface , Activat
1072
add_action( 'before_delete_post' , array( $this , 'delete_stats_data_on_affiliate_link_deletion' ) , 10 );
1073
1074
add_filter( 'ta_admin_interfaces' , array( $this , 'register_admin_interfaces' ) );
1075
- add_filter( 'ta_menu_items' , array( $this , 'register_admin_menu_items' ) );
1076
}
1077
}
122
123
/**
124
* Update $_browser_zone_str class property value.
125
+ *
126
* @since 3.3.3
127
* @access public
128
+ *
129
* @param string $timezone Timezone set on browser
130
*/
131
public function set_browser_zone_str( $timezone ) {
136
137
/**
138
* Register admin interfaces.
139
+ *
140
* @since 3.3.2
141
* @access public
142
+ *
143
* @param array $interfaces List of admin interfaces.
144
* @return array Filtered list of admin interfaces.
145
*/
147
148
$interfaces[ 'thirstylink_page_thirsty-reports' ] = apply_filters( 'ta_reports_admin_interface' , array(
149
'link_performance' => 'manage_options'
150
+ ) );
151
152
return $interfaces;
153
}
154
155
/**
156
* Register admin interfaces.
157
+ *
158
* @since 3.3.2
159
* @access public
160
+ *
161
* @param array $interfaces List of menu items.
162
* @return array Filtered list of menu items.
163
*/
164
public function register_admin_menu_items( $menu_items ) {
165
+
166
$menu_items[ 'thirsty-reports' ] = 'manage_options';
167
return $menu_items;
168
}
308
$thirstylink = new Affiliate_Link( $link_id );
309
$redirect_url = apply_filters( 'ta_filter_redirect_url' , $thirstylink->get_prop( 'destination_url' ) , $thirstylink , $query_string );
310
$redirect_type = $thirstylink->get_redirect_type();
311
+
312
$this->save_click_data( $thirstylink , $http_referer , $cloaked_url , $redirect_url , $redirect_type , $keyword );
313
314
+ do_action( 'ta_before_link_redirect_ajax', $thirstylink, $redirect_url, $redirect_type );
315
+
316
// print actual affiliate link redirect url for enhanced javascript redirect support.
317
if ( get_option( 'ta_enable_javascript_frontend_redirect' ) == 'yes' )
318
echo $redirect_url;
565
*
566
* @since 3.0.0
567
* @since 3.2.2 Access to the settings page will now be controlled by the plugin. see Bootstrap::admin_interface_visibility.
568
+ *
569
* @access public
570
*/
571
public function add_reports_submenu() {
771
$start_date->setTime( 0 , 0 );
772
773
$start_date->setTimezone( $utc );
774
+ $end_date->setTimezone( $utc );
775
776
$raw_data = $this->get_link_performance_data( $start_date->format( 'Y-m-d H:i:s' ) , $end_date->format( 'Y-m-d H:i:s' ) , $link_ids );
777
1074
add_action( 'before_delete_post' , array( $this , 'delete_stats_data_on_affiliate_link_deletion' ) , 10 );
1075
1076
add_filter( 'ta_admin_interfaces' , array( $this , 'register_admin_interfaces' ) );
1077
+ add_filter( 'ta_menu_items' , array( $this , 'register_admin_menu_items' ) );
1078
}
1079
}
js/app/ta-settings.js CHANGED
@@ -95,7 +95,11 @@ jQuery( document ).ready( function($){
95
} else {
96
97
$cat_select.prop( 'disabled' , true );
98
- $cat_select[0].selectize.destroy();
99
$cat_select.prop( 'required' , false );
100
$cat_select_row.hide();
101
}
@@ -107,14 +111,14 @@ jQuery( document ).ready( function($){
107
108
/**
109
* Initialize block bots settings as a selectized textarea.
110
- *
111
* @since 3.3.2
112
*/
113
blockBotsSettings : function() {
114
115
$settingsBlock.find( '#ta_blocked_bots' ).selectize({
116
plugins : [ 'restore_on_backspace' , 'remove_button' , 'drag_drop' ],
117
- delimeter : ',',
118
persist : false,
119
create : function(input) {
120
return {
95
} else {
96
97
$cat_select.prop( 'disabled' , true );
98
+
99
+ if ( $cat_select[0].selectize ) {
100
+ $cat_select[0].selectize.destroy();
101
+ }
102
+
103
$cat_select.prop( 'required' , false );
104
$cat_select_row.hide();
105
}
111
112
/**
113
* Initialize block bots settings as a selectized textarea.
114
+ *
115
* @since 3.3.2
116
*/
117
blockBotsSettings : function() {
118
119
$settingsBlock.find( '#ta_blocked_bots' ).selectize({
120
plugins : [ 'restore_on_backspace' , 'remove_button' , 'drag_drop' ],
121
+ delimeter : ',',
122
persist : false,
123
create : function(input) {
124
return {
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: affiliate, link, affiliate link management, link cloaker, link redirect, s
5
Requires at least: 5.0
6
Requires PHP: 5.6
7
Tested up to: 5.4
8
- Stable tag: 3.9.2
9
License: GPLv2 or later
10
License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
@@ -159,6 +159,10 @@ See our [Knowledge Base](https://thirstyaffiliates.com/knowledge-base/?utm_sourc
159
160
== Changelog ==
161
162
= 3.9.2 =
163
* Feature: Add X-Robots-Tag header to nofollow links
164
* Improvement: Add indexes to the plugin database columns
5
Requires at least: 5.0
6
Requires PHP: 5.6
7
Tested up to: 5.4
8
+ Stable tag: 3.9.3
9
License: GPLv2 or later
10
License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
159
160
== Changelog ==
161
162
+ = 3.9.3 =
163
+ * Improvement: Add an action hook before the enhanced JavaScript redirect
164
+ * Bug Fix: Security fix on the link attachment title
165
+
166
= 3.9.2 =
167
* Feature: Add X-Robots-Tag header to nofollow links
168
* Improvement: Add indexes to the plugin database columns
thirstyaffiliates.php CHANGED
@@ -3,18 +3,18 @@
3
* Plugin Name: ThirstyAffiliates
4
* Plugin URI: http://thirstyaffiliates.com/
5
* Description: ThirstyAffiliates is a revolution in affiliate link management. Collect, collate and store your affiliate links for use in your posts and pages.
6
- * Version: 3.9.2
7
- * Author: Caseproof
8
- * Author URI: https://caseproof.com/
9
* Requires at least: 4.5
10
- * Tested up to: 5.3
11
*
12
* Text Domain: thirstyaffiliates
13
* Domain Path: /languages/
14
*
15
* @package ThirstyAffiliates
16
* @category Core
17
- * @author Rymera Web Co
18
*/
19
20
if ( !defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
* Plugin Name: ThirstyAffiliates
4
* Plugin URI: http://thirstyaffiliates.com/
5
* Description: ThirstyAffiliates is a revolution in affiliate link management. Collect, collate and store your affiliate links for use in your posts and pages.
6
+ * Version: 3.9.3
7
+ * Author: ThirstyAffiliates
8
+ * Author URI: https://thirstyaffiliates.com/
9
* Requires at least: 4.5
10
+ * Tested up to: 5.4
11
*
12
* Text Domain: thirstyaffiliates
13
* Domain Path: /languages/
14
*
15
* @package ThirstyAffiliates
16
* @category Core
17
+ * @author Caseproof, LLC
18
*/
19
20
if ( !defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
views/cpt/view-attach-images-metabox-single-image.php CHANGED
@@ -2,7 +2,7 @@
2
3
<div class="thirsty-attached-image">
4
<span class="thirsty-remove-img" title="<?php esc_attr_e( 'Remove This Image' , 'thirstyaffiliates' ); ?>" id="<?php echo esc_attr( $attachment_id ); ?>">&times;</span>
5
- <a class="thirsty-img thickbox" href="<?php echo esc_attr( $img[0] ); ?>" rel="gallery-linkimgs" title="<?php echo esc_attr( get_the_title( $attachment_id ) ); ?>">
6
<?php echo wp_get_attachment_image( $attachment_id , array( 100 , 100 ) ); ?>
7
</a>
8
</div>
2
3
<div class="thirsty-attached-image">
4
<span class="thirsty-remove-img" title="<?php esc_attr_e( 'Remove This Image' , 'thirstyaffiliates' ); ?>" id="<?php echo esc_attr( $attachment_id ); ?>">&times;</span>
5
+ <a class="thirsty-img thickbox" href="<?php echo esc_url( $img[0] ); ?>" rel="gallery-linkimgs" title="<?php echo esc_attr( sanitize_text_field( get_the_title( $attachment_id ) ) ); ?>">
6
<?php echo wp_get_attachment_image( $attachment_id , array( 100 , 100 ) ); ?>
7
</a>
8
</div>