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>