Advanced Ads - Version 1.6.17

Version Description

  • asking nicely for a review on wordpress.org
  • compatibility with passive cache-busting in Advanced Ads Pro
  • automatically reenable license if it was already activated one the site
  • updated links to plugin page
  • sanitized frontend prefix
Download this release

Release Info

Developer webzunft
Plugin Icon 128x128 Advanced Ads
Version 1.6.17
Comparing to
See all releases

Code changes from version 1.6.16 to 1.6.17

admin/assets/css/admin.css CHANGED
@@ -14,7 +14,6 @@
14
  .toplevel_page_advanced-ads #dashboard-widgets .postbox-container .postbox ul.list { list-style: inside; }
15
  .toplevel_page_advanced-ads .metabox-holder .postbox-container .empty-container { display: none; }
16
 
17
-
18
  /**
19
  * INTRO PAGE
20
  */
@@ -198,9 +197,11 @@
198
  .advads-box { margin-bottom: 20px; padding: 10px; background: #fff; border: solid 1px; }
199
  .on-hover { display: none; }
200
  tr:hover .on-hover { display: block; }
 
201
  .advads-admin-notice .button-primary { margin-left: 1em; }
202
  .advads-admin-notice-inline { padding: 1px 12px; border: 1px solid #0074a2; border-left-width: 4px; }
203
  .advads-admin-notice-inline p { margin: 0.5em 0; padding: 2px; }
 
204
  .advads-spinner { float: none; visibility: visible; }
205
 
206
  /**
14
  .toplevel_page_advanced-ads #dashboard-widgets .postbox-container .postbox ul.list { list-style: inside; }
15
  .toplevel_page_advanced-ads .metabox-holder .postbox-container .empty-container { display: none; }
16
 
 
17
  /**
18
  * INTRO PAGE
19
  */
197
  .advads-box { margin-bottom: 20px; padding: 10px; background: #fff; border: solid 1px; }
198
  .on-hover { display: none; }
199
  tr:hover .on-hover { display: block; }
200
+ .advads-admin-notice { overflow: hidden; }
201
  .advads-admin-notice .button-primary { margin-left: 1em; }
202
  .advads-admin-notice-inline { padding: 1px 12px; border: 1px solid #0074a2; border-left-width: 4px; }
203
  .advads-admin-notice-inline p { margin: 0.5em 0; padding: 2px; }
204
+ .advads-review-image { margin-right: 10px; margin-bottom: 10px; float: left; }
205
  .advads-spinner { float: none; visibility: visible; }
206
 
207
  /**
admin/assets/img/thomas.png ADDED
Binary file
admin/assets/js/admin.js CHANGED
@@ -233,6 +233,7 @@ jQuery( document ).ready(function ($) {
233
  button.siblings('.advads-license-activate-error').remove();
234
  button.fadeOut();
235
  button.siblings('.advads-license-activate-active').fadeIn();
 
236
  } else {
237
  button.next('.advads-license-activate-error').text( r );
238
  }
@@ -268,6 +269,7 @@ jQuery( document ).ready(function ($) {
268
  if( r === '1' ){
269
  button.siblings('.advads-license-activate-error').hide();
270
  button.siblings('.advads-license-activate-active').hide();
 
271
  button.fadeOut();
272
  } else {
273
  button.next('.advads-license-activate-error').show().text( r );
233
  button.siblings('.advads-license-activate-error').remove();
234
  button.fadeOut();
235
  button.siblings('.advads-license-activate-active').fadeIn();
236
+ button.siblings('input').prop('disabled', true);
237
  } else {
238
  button.next('.advads-license-activate-error').text( r );
239
  }
269
  if( r === '1' ){
270
  button.siblings('.advads-license-activate-error').hide();
271
  button.siblings('.advads-license-activate-active').hide();
272
+ button.siblings('input').prop('disabled', false);
273
  button.fadeOut();
274
  } else {
275
  button.next('.advads-license-activate-error').show().text( r );
admin/class-advanced-ads-admin.php CHANGED
@@ -973,7 +973,7 @@ class Advanced_Ads_Admin {
973
  * @since 1.5.1
974
  */
975
  public function render_settings_licenses_section_callback(){
976
- echo '<p>'. __( 'Enter license keys for our powerful <a href="'.ADVADS_URL.'add-ons/" target="_blank">add-ons</a>.', 'advanced-ads' ) .'</p>';
977
  // nonce field
978
  echo '<input type="hidden" id="advads-licenses-ajax-referrer" value="' . wp_create_nonce( "advads_ajax_license_nonce" ) . '"/>';
979
  }
@@ -1036,7 +1036,7 @@ class Advanced_Ads_Admin {
1036
  echo '<p>' . __( '<strong>notice: </strong>the file is currently enabled by an add-on that needs it.', 'advanced-ads' ) . '</p>';
1037
  }
1038
  echo '<input id="advanced-ads-advanced-js" type="checkbox" value="1" name="'.ADVADS_SLUG.'[advanced-js]" '.checked( $checked, 1, false ).'>';
1039
- echo '<p class="description">'. sprintf( __( 'Enable advanced JavaScript functions (<a href="%s" target="_blank">here</a>). Some features and add-ons might override this setting if they need features from this file.', 'advanced-ads' ), ADVADS_URL . 'javascript-functions/' ) .'</p>';
1040
  }
1041
 
1042
  /**
@@ -1081,7 +1081,7 @@ class Advanced_Ads_Admin {
1081
  $checked = ( ! empty($options['block-bots'])) ? 1 : 0;
1082
 
1083
  echo '<input id="advanced-ads-block-bots" type="checkbox" value="1" name="'.ADVADS_SLUG.'[block-bots]" '.checked( $checked, 1, false ).'>';
1084
- echo '<p class="description">'. sprintf( __( 'Hide ads from crawlers, bots and empty user agents. Also prevents counting impressions for bots when using the <a href="%s" target="_blank">Tracking Add-On</a>.', 'advanced-ads' ), ADVADS_URL . 'add-ons/tracking/' ) .'<br/>'
1085
  . __( 'Disabling this option only makes sense if your ads contain content you want to display to bots (like search engines) or your site is cached and bots could create a cached version without the ads.', 'advanced-ads' ) . '</p>';
1086
  }
1087
 
@@ -1158,7 +1158,7 @@ class Advanced_Ads_Admin {
1158
 
1159
  echo '<input id="advanced-ads-editors-manage-ads" type="checkbox" ' . checked( $allow, true, false ) . ' name="'.ADVADS_SLUG.'[editors-manage-ads]" />';
1160
  echo '<p class="description">'. __( 'Allow editors to also manage and publish ads.', 'advanced-ads' ) .
1161
- ' ' . sprintf(__( 'You can assign different ad-related roles on a user basis with <a href="%s" target="_blank">Advanced Ads Pro</a>.', 'advanced-ads' ), ADVADS_URL . 'add-ons/advanced-ads-pro/') . '</p>';
1162
 
1163
  }
1164
 
@@ -1172,6 +1172,10 @@ class Advanced_Ads_Admin {
1172
 
1173
  // sanitize whatever option one wants to sanitize
1174
 
 
 
 
 
1175
  $options = apply_filters( 'advanced-ads-sanitize-settings', $options );
1176
 
1177
  // check if editors can edit ads now and set the rights
@@ -1195,6 +1199,7 @@ class Advanced_Ads_Admin {
1195
  /**
1196
  * sanitize add-on license keys array
1197
  * most important is to not remove a key even if the add-on is temporarily disabled
 
1198
  *
1199
  * @since 1.6.1
1200
  * @param array $options all the options (license keys)
@@ -1206,14 +1211,25 @@ class Advanced_Ads_Admin {
1206
 
1207
  // merge existing with new license key to prevent accidental removal
1208
  if( is_array( $options ) && is_array( $licenses ) ){
1209
- return array_merge( $licenses, $options );
1210
  } elseif( is_array( $options ) ){
1211
- return $options;
1212
  } else {
1213
- return $licenses;
1214
  }
1215
 
1216
- return $options;
 
 
 
 
 
 
 
 
 
 
 
1217
  }
1218
 
1219
  /**
@@ -1486,7 +1502,7 @@ class Advanced_Ads_Admin {
1486
  $advads_plugin_data = get_plugin_data( ADVADS_BASE_PATH . 'advanced-ads.php' );
1487
  if ( isset($advads_plugin_data['Version']) ){
1488
  $version = $advads_plugin_data['Version'];
1489
- echo '<p><a href="'.ADVADS_URL.'" target="_blank" title="'.
1490
  __( 'plugin manual and homepage', 'advanced-ads' ).'">Advanced Ads</a> '. $version .'</p>';
1491
  }
1492
 
@@ -1585,7 +1601,7 @@ class Advanced_Ads_Admin {
1585
  return __( 'Error while trying to register the license. Please contact support.', 'advanced-ads' );
1586
  }
1587
 
1588
- $licenses = get_option(ADVADS_SLUG . '-licenses', array());
1589
  $license_key = isset($licenses[$addon]) ? $licenses[$addon] : '';
1590
  if ( '' == $license_key ) {
1591
  return __( 'Please enter and save a valid license key first.', 'advanced-ads' );
@@ -1623,6 +1639,32 @@ class Advanced_Ads_Admin {
1623
  return 1;
1624
  }
1625
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1626
  /**
1627
  * deactivate license key
1628
  *
@@ -1635,7 +1677,7 @@ class Advanced_Ads_Admin {
1635
  return __( 'Error while trying to disable the license. Please contact support.', 'advanced-ads' );
1636
  }
1637
 
1638
- $licenses = get_option(ADVADS_SLUG . '-licenses', array());
1639
  $license_key = isset($licenses[$addon]) ? $licenses[$addon] : '';
1640
 
1641
  $api_params = array(
@@ -1810,7 +1852,7 @@ class Advanced_Ads_Admin {
1810
  array_unshift( $links, $support_link );
1811
 
1812
  // add link to add-ons
1813
- $extend_link = '<a href="' . ADVADS_URL . 'add-ons/#utm_source=wp-dashboard&amp;utm_medium=textlink&amp;utm_campaign=plugin-page" target="_blank">' . __( 'Add-Ons', 'advanced-ads' ) . '</a>';
1814
  array_unshift( $links, $extend_link );
1815
 
1816
  return $links;
973
  * @since 1.5.1
974
  */
975
  public function render_settings_licenses_section_callback(){
976
+ echo '<p>'. __( 'Enter license keys for our powerful <a href="'.ADVADS_URL.'add-ons/#utm_source=advanced-ads&utm_medium=link&utm_campaign=settings-licenses" target="_blank">add-ons</a>.', 'advanced-ads' ) .'</p>';
977
  // nonce field
978
  echo '<input type="hidden" id="advads-licenses-ajax-referrer" value="' . wp_create_nonce( "advads_ajax_license_nonce" ) . '"/>';
979
  }
1036
  echo '<p>' . __( '<strong>notice: </strong>the file is currently enabled by an add-on that needs it.', 'advanced-ads' ) . '</p>';
1037
  }
1038
  echo '<input id="advanced-ads-advanced-js" type="checkbox" value="1" name="'.ADVADS_SLUG.'[advanced-js]" '.checked( $checked, 1, false ).'>';
1039
+ echo '<p class="description">'. sprintf( __( 'Enable advanced JavaScript functions (<a href="%s" target="_blank">here</a>). Some features and add-ons might override this setting if they need features from this file.', 'advanced-ads' ), ADVADS_URL . 'javascript-functions/#utm_source=advanced-ads&utm_medium=link&utm_campaign=settings' ) .'</p>';
1040
  }
1041
 
1042
  /**
1081
  $checked = ( ! empty($options['block-bots'])) ? 1 : 0;
1082
 
1083
  echo '<input id="advanced-ads-block-bots" type="checkbox" value="1" name="'.ADVADS_SLUG.'[block-bots]" '.checked( $checked, 1, false ).'>';
1084
+ echo '<p class="description">'. sprintf( __( 'Hide ads from crawlers, bots and empty user agents. Also prevents counting impressions for bots when using the <a href="%s" target="_blank">Tracking Add-On</a>.', 'advanced-ads' ), ADVADS_URL . 'add-ons/tracking/#utm_source=advanced-ads&utm_medium=link&utm_campaign=settings' ) .'<br/>'
1085
  . __( 'Disabling this option only makes sense if your ads contain content you want to display to bots (like search engines) or your site is cached and bots could create a cached version without the ads.', 'advanced-ads' ) . '</p>';
1086
  }
1087
 
1158
 
1159
  echo '<input id="advanced-ads-editors-manage-ads" type="checkbox" ' . checked( $allow, true, false ) . ' name="'.ADVADS_SLUG.'[editors-manage-ads]" />';
1160
  echo '<p class="description">'. __( 'Allow editors to also manage and publish ads.', 'advanced-ads' ) .
1161
+ ' ' . sprintf(__( 'You can assign different ad-related roles on a user basis with <a href="%s" target="_blank">Advanced Ads Pro</a>.', 'advanced-ads' ), ADVADS_URL . 'add-ons/advanced-ads-pro/#utm_source=advanced-ads&utm_medium=link&utm_campaign=settings') . '</p>';
1162
 
1163
  }
1164
 
1172
 
1173
  // sanitize whatever option one wants to sanitize
1174
 
1175
+ if ( isset( $options['front-prefix'] ) ) {
1176
+ $options['front-prefix'] = sanitize_html_class( $options['front-prefix'], Advanced_Ads_Plugin::DEFAULT_FRONTEND_PREFIX );
1177
+ }
1178
+
1179
  $options = apply_filters( 'advanced-ads-sanitize-settings', $options );
1180
 
1181
  // check if editors can edit ads now and set the rights
1199
  /**
1200
  * sanitize add-on license keys array
1201
  * most important is to not remove a key even if the add-on is temporarily disabled
1202
+ * if the key was newly added, check if it was already activated online
1203
  *
1204
  * @since 1.6.1
1205
  * @param array $options all the options (license keys)
1211
 
1212
  // merge existing with new license key to prevent accidental removal
1213
  if( is_array( $options ) && is_array( $licenses ) ){
1214
+ $all_licenses = array_merge( $licenses, $options );
1215
  } elseif( is_array( $options ) ){
1216
+ $all_licenses = $options;
1217
  } else {
1218
+ $all_licenses = $licenses;
1219
  }
1220
 
1221
+ // get infos from all add-ons
1222
+ $add_ons = apply_filters( 'advanced-ads-add-ons', array() );
1223
+
1224
+ // check new licenses if they were already activated before
1225
+ $new_licenses = array_diff_assoc( $all_licenses, $licenses );
1226
+ foreach( $new_licenses as $_slug => $_key ){
1227
+ if( isset( $add_ons[ $_slug ] ) ){
1228
+ $this->check_license( $_key, $add_ons[ $_slug ][ 'name' ], $add_ons[ $_slug ][ 'options_slug' ] );
1229
+ }
1230
+ }
1231
+
1232
+ return $all_licenses;
1233
  }
1234
 
1235
  /**
1502
  $advads_plugin_data = get_plugin_data( ADVADS_BASE_PATH . 'advanced-ads.php' );
1503
  if ( isset($advads_plugin_data['Version']) ){
1504
  $version = $advads_plugin_data['Version'];
1505
+ echo '<p><a href="'.ADVADS_URL.'#utm_source=advanced-ads&utm_medium=link&utm_campaign=dashboard" target="_blank" title="'.
1506
  __( 'plugin manual and homepage', 'advanced-ads' ).'">Advanced Ads</a> '. $version .'</p>';
1507
  }
1508
 
1601
  return __( 'Error while trying to register the license. Please contact support.', 'advanced-ads' );
1602
  }
1603
 
1604
+ $licenses = $this->get_licenses();
1605
  $license_key = isset($licenses[$addon]) ? $licenses[$addon] : '';
1606
  if ( '' == $license_key ) {
1607
  return __( 'Please enter and save a valid license key first.', 'advanced-ads' );
1639
  return 1;
1640
  }
1641
 
1642
+ /**
1643
+ * check if a specific license key was already activated for the current page
1644
+ *
1645
+ * @since 1.6.17
1646
+ * @return bool true if already activated
1647
+ */
1648
+ public function check_license( $license_key = '', $plugin_name = '', $options_slug = '' ){
1649
+
1650
+ $api_params = array(
1651
+ 'edd_action' => 'check_license',
1652
+ 'license' => $license_key,
1653
+ 'item_name' => urlencode( $plugin_name )
1654
+ );
1655
+ $response = wp_remote_get( add_query_arg( $api_params, ADVADS_URL ), array( 'timeout' => 15, 'sslverify' => false ) );
1656
+ if ( is_wp_error( $response ) ) {
1657
+ return false;
1658
+ }
1659
+ $license_data = json_decode( wp_remote_retrieve_body( $response ) );
1660
+
1661
+ // if this license is still valid
1662
+ if( $license_data->license == 'valid' ) {
1663
+ update_option($options_slug . '-license-expires', $license_data->expires, false);
1664
+ update_option($options_slug . '-license-status', $license_data->license, false);
1665
+ }
1666
+ }
1667
+
1668
  /**
1669
  * deactivate license key
1670
  *
1677
  return __( 'Error while trying to disable the license. Please contact support.', 'advanced-ads' );
1678
  }
1679
 
1680
+ $licenses = $this->get_licenses();
1681
  $license_key = isset($licenses[$addon]) ? $licenses[$addon] : '';
1682
 
1683
  $api_params = array(
1852
  array_unshift( $links, $support_link );
1853
 
1854
  // add link to add-ons
1855
+ $extend_link = '<a href="' . ADVADS_URL . 'add-ons/#utm_source=advanced-ads&utm_medium=link&utm_campaign=plugin-page" target="_blank">' . __( 'Add-Ons', 'advanced-ads' ) . '</a>';
1856
  array_unshift( $links, $extend_link );
1857
 
1858
  return $links;
admin/includes/class-notices.php CHANGED
@@ -162,6 +162,10 @@ class Advanced_Ads_Admin_Notices {
162
  if ( ! $this->is_subscribed() && ! in_array( 'nl_free_addons', $queue ) && ! isset( $closed['nl_free_addons'] )) {
163
  $this->notices[] = 'nl_free_addons';
164
  }
 
 
 
 
165
  }
166
 
167
  /**
@@ -285,6 +289,12 @@ class Advanced_Ads_Admin_Notices {
285
  } else {
286
  continue;
287
  }
 
 
 
 
 
 
288
 
289
  switch ( $type ) {
290
  case 'info' :
@@ -294,12 +304,7 @@ class Advanced_Ads_Admin_Notices {
294
  include ADVADS_BASE_PATH . '/admin/views/notices/subscribe.php';
295
  break;
296
  case 'plugin_error' :
297
- // only display on plugin pages
298
- if( Advanced_Ads_Admin::screen_belongs_to_advanced_ads() ){
299
- include ADVADS_BASE_PATH . '/admin/views/notices/plugin_error.php';
300
- } else {
301
- continue 2; // continue with next foreach loop
302
- }
303
  break;
304
  default :
305
  include ADVADS_BASE_PATH . '/admin/views/notices/error.php';
162
  if ( ! $this->is_subscribed() && ! in_array( 'nl_free_addons', $queue ) && ! isset( $closed['nl_free_addons'] )) {
163
  $this->notices[] = 'nl_free_addons';
164
  }
165
+ // ask for a review after 30 days
166
+ if ( 2592000 < ( time() - $activation) && ! in_array( 'review', $queue ) && ! isset( $closed['review'] )) {
167
+ $this->notices[] = 'review';
168
+ }
169
  }
170
 
171
  /**
289
  } else {
290
  continue;
291
  }
292
+
293
+ // don’t display non-global notices on other than plugin related pages
294
+ if( ( ! isset( $advanced_ads_admin_notices[$_notice]['global'] ) || ! $advanced_ads_admin_notices[$_notice]['global'] )
295
+ && ! Advanced_Ads_Admin::screen_belongs_to_advanced_ads() ) {
296
+ continue;
297
+ }
298
 
299
  switch ( $type ) {
300
  case 'info' :
304
  include ADVADS_BASE_PATH . '/admin/views/notices/subscribe.php';
305
  break;
306
  case 'plugin_error' :
307
+ include ADVADS_BASE_PATH . '/admin/views/notices/plugin_error.php';
 
 
 
 
 
308
  break;
309
  default :
310
  include ADVADS_BASE_PATH . '/admin/views/notices/error.php';
admin/includes/class-overview-widgets.php CHANGED
@@ -147,10 +147,9 @@ foreach ( $next_steps as $_step ){
147
  */
148
  public static function render_support(){
149
  ?><ul>
150
- <li><?php printf( __( '<a href="%s" target="_blank">Plugin Homepage</a>', 'advanced-ads' ), ADVADS_URL . 'advancedads/' ); ?> –
151
- <?php printf( __( '<a href="%s" target="_blank">Manual</a>', 'advanced-ads' ), ADVADS_URL . 'manual/' ); ?></li>
152
- <li><?php printf( __( 'Ask other users in the <a href="%s" target="_blank">wordpress.org forum</a>', 'advanced-ads' ), 'http://wordpress.org/plugins/advanced-ads/' ); ?></li>
153
- <li><?php printf( __( 'Vote for a <a href="%s" target="_blank">feature</a>', 'advanced-ads' ), ADVADS_URL . 'feature-requests/' ); ?></li>
154
  <li><?php printf( __( 'Thank the developer with a &#9733;&#9733;&#9733;&#9733;&#9733; review on <a href="%s" target="_blank">wordpress.org</a>', 'advanced-ads' ), 'https://wordpress.org/support/view/plugin-reviews/advanced-ads' ); ?></li>
155
  </ul><?php
156
  }
@@ -174,7 +173,7 @@ foreach ( $next_steps as $_step ){
174
  <li><?php _e( 'Cache-busting', 'advanced-ads' ); ?></li>
175
  <li><?php _e( 'Advanced visitor conditions', 'advanced-ads' ); ?></li>
176
  <li><?php _e( 'Flash ads with fallback', 'advanced-ads' ); ?></li>
177
- </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/advanced-ads-pro/" target="_blank"><?php
178
  _e( 'Get Pro', 'advanced-ads' ); ?></a></p><?php
179
  }
180
 
@@ -188,7 +187,7 @@ foreach ( $next_steps as $_step ){
188
  <li><?php _e( 'beautiful stats for all or single ads', 'advanced-ads' ); ?></li>
189
  <li><?php _e( 'get stats for predefined and custom persiods', 'advanced-ads' ); ?></li>
190
  <li><?php _e( 'group stats by day, week or month', 'advanced-ads' ); ?></li>
191
- </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/tracking/" target="_blank"><?php
192
  _e( 'Get the Tracking add-on', 'advanced-ads' ); ?></a></p><?php
193
  }
194
 
@@ -201,7 +200,7 @@ foreach ( $next_steps as $_step ){
201
  <li><?php _e( 'set a range (from … to …) pixels for the browser size', 'advanced-ads' ); ?></li>
202
  <li><?php _e( 'set custom sizes for AdSense responsive ads', 'advanced-ads' ); ?></li>
203
  <li><?php _e( 'list all ads by their responsive settings', 'advanced-ads' ); ?></li>
204
- </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/responsive-ads/" target="_blank"><?php
205
  _e( 'Get the Responsive add-on', 'advanced-ads' ); ?></a></p><?php
206
  }
207
 
@@ -211,7 +210,7 @@ foreach ( $next_steps as $_step ){
211
  public static function render_add_on_geotargeting(){
212
 
213
  ?><p><?php _e( 'Target visitors by their geo location.', 'advanced-ads' ); ?></p><ul class='list'>
214
- </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/geo-targeting/" target="_blank"><?php
215
  _e( 'Get the Geo Targeting add-on', 'advanced-ads' ); ?></a></p><?php
216
  }
217
 
@@ -223,7 +222,7 @@ foreach ( $next_steps as $_step ){
223
  ?><p><?php _e( 'Fix ads to the browser while users are scrolling and create best performing anchor ads.', 'advanced-ads' ); ?></p><ul class='list'>
224
  <li><?php _e( 'position ads that don’t scroll with the screen', 'advanced-ads' ); ?></li>
225
  <li><?php _e( 'build anchor ads not only on mobile devices', 'advanced-ads' ); ?></li>
226
- </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/sticky-ads/" target="_blank"><?php
227
  _e( 'Get the Sticky add-on', 'advanced-ads' ); ?></a></p><?php
228
  }
229
 
@@ -236,7 +235,7 @@ foreach ( $next_steps as $_step ){
236
  <li><?php _e( 'display a popup after a user interaction like scrolling', 'advanced-ads' ); ?></li>
237
  <li><?php _e( 'optional backgroup overlay', 'advanced-ads' ); ?></li>
238
  <li><?php _e( 'allow users to close the popup', 'advanced-ads' ); ?></li>
239
- </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/popup-and-layer-ads/" target="_blank"><?php
240
  _e( 'Get the PopUp and Layer add-on', 'advanced-ads' ); ?></a></p><?php
241
  }
242
 
@@ -246,7 +245,7 @@ foreach ( $next_steps as $_step ){
246
  public static function render_add_on_slider(){
247
 
248
  ?><p><?php _e( 'Create a beautiful and simple slider from your ads.', 'advanced-ads' ); ?></p>
249
- <p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/slider/" target="_blank"><?php
250
  _e( 'Get the Slider add-on', 'advanced-ads' ); ?></a></p><?php
251
  }
252
 
147
  */
148
  public static function render_support(){
149
  ?><ul>
150
+ <li><?php printf( __( '<a href="%s" target="_blank">Manual</a>', 'advanced-ads' ), ADVADS_URL . 'manual/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-manual' ); ?></li>
151
+ <li><?php printf( __( '<a href="%s" target="_blank">FAQ and Support</a>', 'advanced-ads' ), ADVADS_URL . 'support/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-manual' ); ?></li>
152
+ <li><?php printf( __( 'Vote for a <a href="%s" target="_blank">feature</a>', 'advanced-ads' ), ADVADS_URL . 'feature-requests/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-manual' ); ?></li>
 
153
  <li><?php printf( __( 'Thank the developer with a &#9733;&#9733;&#9733;&#9733;&#9733; review on <a href="%s" target="_blank">wordpress.org</a>', 'advanced-ads' ), 'https://wordpress.org/support/view/plugin-reviews/advanced-ads' ); ?></li>
154
  </ul><?php
155
  }
173
  <li><?php _e( 'Cache-busting', 'advanced-ads' ); ?></li>
174
  <li><?php _e( 'Advanced visitor conditions', 'advanced-ads' ); ?></li>
175
  <li><?php _e( 'Flash ads with fallback', 'advanced-ads' ); ?></li>
176
+ </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/advanced-ads-pro/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-add-ons" target="_blank"><?php
177
  _e( 'Get Pro', 'advanced-ads' ); ?></a></p><?php
178
  }
179
 
187
  <li><?php _e( 'beautiful stats for all or single ads', 'advanced-ads' ); ?></li>
188
  <li><?php _e( 'get stats for predefined and custom persiods', 'advanced-ads' ); ?></li>
189
  <li><?php _e( 'group stats by day, week or month', 'advanced-ads' ); ?></li>
190
+ </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/tracking/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-add-ons" target="_blank"><?php
191
  _e( 'Get the Tracking add-on', 'advanced-ads' ); ?></a></p><?php
192
  }
193
 
200
  <li><?php _e( 'set a range (from … to …) pixels for the browser size', 'advanced-ads' ); ?></li>
201
  <li><?php _e( 'set custom sizes for AdSense responsive ads', 'advanced-ads' ); ?></li>
202
  <li><?php _e( 'list all ads by their responsive settings', 'advanced-ads' ); ?></li>
203
+ </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/responsive-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-add-ons" target="_blank"><?php
204
  _e( 'Get the Responsive add-on', 'advanced-ads' ); ?></a></p><?php
205
  }
206
 
210
  public static function render_add_on_geotargeting(){
211
 
212
  ?><p><?php _e( 'Target visitors by their geo location.', 'advanced-ads' ); ?></p><ul class='list'>
213
+ </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/geo-targeting/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-add-ons" target="_blank"><?php
214
  _e( 'Get the Geo Targeting add-on', 'advanced-ads' ); ?></a></p><?php
215
  }
216
 
222
  ?><p><?php _e( 'Fix ads to the browser while users are scrolling and create best performing anchor ads.', 'advanced-ads' ); ?></p><ul class='list'>
223
  <li><?php _e( 'position ads that don’t scroll with the screen', 'advanced-ads' ); ?></li>
224
  <li><?php _e( 'build anchor ads not only on mobile devices', 'advanced-ads' ); ?></li>
225
+ </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/sticky-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-add-ons" target="_blank"><?php
226
  _e( 'Get the Sticky add-on', 'advanced-ads' ); ?></a></p><?php
227
  }
228
 
235
  <li><?php _e( 'display a popup after a user interaction like scrolling', 'advanced-ads' ); ?></li>
236
  <li><?php _e( 'optional backgroup overlay', 'advanced-ads' ); ?></li>
237
  <li><?php _e( 'allow users to close the popup', 'advanced-ads' ); ?></li>
238
+ </ul><p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/popup-and-layer-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-add-ons" target="_blank"><?php
239
  _e( 'Get the PopUp and Layer add-on', 'advanced-ads' ); ?></a></p><?php
240
  }
241
 
245
  public static function render_add_on_slider(){
246
 
247
  ?><p><?php _e( 'Create a beautiful and simple slider from your ads.', 'advanced-ads' ); ?></p>
248
+ <p><a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/slider/#utm_source=advanced-ads&utm_medium=link&utm_campaign=overview-add-ons" target="_blank"><?php
249
  _e( 'Get the Slider add-on', 'advanced-ads' ); ?></a></p><?php
250
  }
251
 
admin/includes/notices.php CHANGED
@@ -12,24 +12,28 @@ $advanced_ads_admin_notices = array(
12
  'nl_intro' => array(
13
  'type' => 'info',
14
  'text' => sprintf(__( 'Advanced Ads successfully installed. Take a look at the <a href="%s">First Steps</a>.', 'advanced-ads' ), admin_url( 'admin.php?page=advanced-ads-intro' )),
 
15
  ),
16
  // email tutorial
17
  'nl_first_steps' => array(
18
  'type' => 'subscribe',
19
  'text' => __( 'Thank you for activating <strong>Advanced Ads</strong>. Would you like to receive the first steps via email?', 'advanced-ads' ),
20
- 'confirm_text' => __( 'Yes, send it', 'advanced-ads' )
 
21
  ),
22
  // free add-ons
23
  'nl_free_addons' => array(
24
  'type' => 'subscribe',
25
  'text' => __( 'Thank you for using <strong>Advanced Ads</strong>. Stay informed and receive <strong>2 free add-ons</strong> for joining the newsletter.', 'advanced-ads' ),
26
- 'confirm_text' => __( 'Add me now', 'advanced-ads' )
 
27
  ),
28
  // adsense newsletter group
29
  'nl_adsense' => array(
30
  'type' => 'subscribe',
31
  'text' => __( 'Learn more about how and <strong>how much you can earn with AdSense</strong> and Advanced Ads from my dedicated newsletter.', 'advanced-ads' ),
32
- 'confirm_text' => __( 'Subscribe me now', 'advanced-ads' )
 
33
  ),
34
  // if users updated from a previous version to 1.5.4
35
  '1.5.4' => array(
@@ -49,16 +53,25 @@ $advanced_ads_admin_notices = array(
49
  // missing license codes
50
  'license_invalid' => array(
51
  'type' => 'plugin_error',
52
- 'text' => __( 'One or more license keys for <strong>Advanced Ads add-ons are invalid or missing</strong>.', 'advanced-ads' ) . ' ' . sprintf( __( 'Please add valid license keys <a href="%s">here</a>.', 'advanced-ads' ), get_admin_url( 1, 'admin.php?page=advanced-ads-settings#top#licenses' ) )
 
53
  ),
54
  // license expires
55
  'license_expires' => array(
56
  'type' => 'plugin_error',
57
- 'text' => sprintf( __( 'One or more licenses for your <strong>Advanced Ads add-ons are expiring soon</strong>. Don’t risk to lose support and updates and renew your license before it expires with a significant discount on <a href="%s" target="_blank">the add-on page</a>.', 'advanced-ads' ), 'https://wpadvancedads.com/add-ons/' ),
 
58
  ),
59
  // license expired
60
  'license_expired' => array(
61
  'type' => 'plugin_error',
62
  'text' => sprintf( __( '<strong>Advanced Ads</strong> license(s) expired. Support and updates are disabled. Please visit <a href="%s"> the license page</a> for more information.', 'advanced-ads' ), admin_url( 'admin.php?page=advanced-ads-settings#top#licenses' ) ),
 
 
 
 
 
 
 
63
  ),
64
  );
12
  'nl_intro' => array(
13
  'type' => 'info',
14
  'text' => sprintf(__( 'Advanced Ads successfully installed. Take a look at the <a href="%s">First Steps</a>.', 'advanced-ads' ), admin_url( 'admin.php?page=advanced-ads-intro' )),
15
+ 'global' => true
16
  ),
17
  // email tutorial
18
  'nl_first_steps' => array(
19
  'type' => 'subscribe',
20
  'text' => __( 'Thank you for activating <strong>Advanced Ads</strong>. Would you like to receive the first steps via email?', 'advanced-ads' ),
21
+ 'confirm_text' => __( 'Yes, send it', 'advanced-ads' ),
22
+ 'global' => true
23
  ),
24
  // free add-ons
25
  'nl_free_addons' => array(
26
  'type' => 'subscribe',
27
  'text' => __( 'Thank you for using <strong>Advanced Ads</strong>. Stay informed and receive <strong>2 free add-ons</strong> for joining the newsletter.', 'advanced-ads' ),
28
+ 'confirm_text' => __( 'Add me now', 'advanced-ads' ),
29
+ 'global' => true
30
  ),
31
  // adsense newsletter group
32
  'nl_adsense' => array(
33
  'type' => 'subscribe',
34
  'text' => __( 'Learn more about how and <strong>how much you can earn with AdSense</strong> and Advanced Ads from my dedicated newsletter.', 'advanced-ads' ),
35
+ 'confirm_text' => __( 'Subscribe me now', 'advanced-ads' ),
36
+ 'global' => true
37
  ),
38
  // if users updated from a previous version to 1.5.4
39
  '1.5.4' => array(
53
  // missing license codes
54
  'license_invalid' => array(
55
  'type' => 'plugin_error',
56
+ 'text' => __( 'One or more license keys for <strong>Advanced Ads add-ons are invalid or missing</strong>.', 'advanced-ads' ) . ' ' . sprintf( __( 'Please add valid license keys <a href="%s">here</a>.', 'advanced-ads' ), get_admin_url( 1, 'admin.php?page=advanced-ads-settings#top#licenses' ) ),
57
+ 'global' => true
58
  ),
59
  // license expires
60
  'license_expires' => array(
61
  'type' => 'plugin_error',
62
+ 'text' => sprintf( __( 'One or more licenses for your <strong>Advanced Ads add-ons are expiring soon</strong>. Don’t risk to lose support and updates and renew your license before it expires with a significant discount on <a href="%s" target="_blank">the add-on page</a>.', 'advanced-ads' ), ADVADS_URL . 'add-ons/#utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-license-expires' ),
63
+ 'global' => true
64
  ),
65
  // license expired
66
  'license_expired' => array(
67
  'type' => 'plugin_error',
68
  'text' => sprintf( __( '<strong>Advanced Ads</strong> license(s) expired. Support and updates are disabled. Please visit <a href="%s"> the license page</a> for more information.', 'advanced-ads' ), admin_url( 'admin.php?page=advanced-ads-settings#top#licenses' ) ),
69
+ 'global' => true
70
+ ),
71
+ // please review
72
+ 'review' => array(
73
+ 'type' => 'info',
74
+ 'text' => sprintf( __( '<img src="%3$s" alt="Thomas" width="80" height="115" class="advads-review-image"/>You are using <strong>Advanced Ads</strong> for some time now. Thank you! If you need my help then please visit the <a href="%1$s" target="_blank">Support page</a> to get free help.</p><h3>Thanks for your Review</h3><p>If you share my passion and find Advanced Ads useful then please <a href="%2$s" target="_blank">leave a 5-star review on wordpress.org</a>.</p><p><em>Thomas</em>', 'advanced-ads' ), ADVADS_URL . 'support/#utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-review', 'https://wordpress.org/support/view/plugin-reviews/advanced-ads#postform', ADVADS_BASE_URL . 'admin/assets/img/thomas.png' ),
75
+ 'global' => false
76
  ),
77
  );
admin/views/ad-display-metabox.php CHANGED
@@ -14,7 +14,7 @@ $conditions_enabled = isset( $ad->conditions['enabled'] ) && $ad->conditions['en
14
  <ul id="advads-how-it-works">
15
  <li><?php _e( 'If you want to display the ad everywhere, don\'t do anything here. ', 'advanced-ads' ); ?></li>
16
  <li><?php _e( 'The fewer conditions you enter, the better the performance will be.', 'advanced-ads' ); ?></li>
17
- <li><?php printf( __( 'Learn more about display conditions from the <a href="%s" target="_blank">manual</a>.', 'advanced-ads' ), ADVADS_URL . 'manual/display-conditions/' ); ?></li>
18
  </ul>
19
  <?php
20
  // -TODO use model
14
  <ul id="advads-how-it-works">
15
  <li><?php _e( 'If you want to display the ad everywhere, don\'t do anything here. ', 'advanced-ads' ); ?></li>
16
  <li><?php _e( 'The fewer conditions you enter, the better the performance will be.', 'advanced-ads' ); ?></li>
17
+ <li><?php printf( __( 'Learn more about display conditions from the <a href="%s" target="_blank">manual</a>.', 'advanced-ads' ), ADVADS_URL . 'manual/display-conditions/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-display' ); ?></li>
18
  </ul>
19
  <?php
20
  // -TODO use model
admin/views/ad-group-list-row.php CHANGED
@@ -11,7 +11,7 @@
11
  <label><?php _e( 'template', 'advanced-ads' ); ?>
12
  <code><input type="text" onclick="this.select();" value="the_ad_group(<?php echo $group->id; ?>);"/></code>
13
  </label>
14
- <p><?php printf( __( 'Learn more about using groups in the <a href="%s" target="_blank">manual</a>.', 'advanced-ads' ), ADVADS_URL . 'manual/ad-groups/' ); ?></p>
15
  </div>
16
  </td>
17
  <td>
11
  <label><?php _e( 'template', 'advanced-ads' ); ?>
12
  <code><input type="text" onclick="this.select();" value="the_ad_group(<?php echo $group->id; ?>);"/></code>
13
  </label>
14
+ <p><?php printf( __( 'Learn more about using groups in the <a href="%s" target="_blank">manual</a>.', 'advanced-ads' ), ADVADS_URL . 'manual/ad-groups/#utm_source=advanced-ads&utm_medium=link&utm_campaign=groups' ); ?></p>
15
  </div>
16
  </td>
17
  <td>
admin/views/ad-group.php CHANGED
@@ -59,7 +59,7 @@ if ( isset($_REQUEST['message']) && ( $msg = (int) $_REQUEST['message'] ) || iss
59
  <div id="ajax-response"></div>
60
  <a onclick="advads_toggle('#advads-ad-group-display-info')"><?php _e( 'How to display an Ad Group?', 'advanced-ads' ); ?></a>
61
  <div id="advads-ad-group-display-info" style="display: none;">
62
- <p><?php printf( __( 'Examples on how to display an ad group? Find more help and examples in the <a href="%s" target="_blank">manual</a>', 'advanced-ads' ), ADVADS_URL . 'manual/ad-groups/' ); ?></p>
63
  <h4><?php _e( 'shortcode', 'advanced-ads' ); ?></h4>
64
  <p class="description"><?php _e( 'To display an ad group with the ID 6 in content fields', 'advanced-ads' ); ?></p>
65
  <pre><input type="text" onclick="this.select();" style="width: 250px;" value='[the_ad_group id="6"]'/></pre>
59
  <div id="ajax-response"></div>
60
  <a onclick="advads_toggle('#advads-ad-group-display-info')"><?php _e( 'How to display an Ad Group?', 'advanced-ads' ); ?></a>
61
  <div id="advads-ad-group-display-info" style="display: none;">
62
+ <p><?php printf( __( 'Examples on how to display an ad group? Find more help and examples in the <a href="%s" target="_blank">manual</a>', 'advanced-ads' ), ADVADS_URL . 'manual/ad-groups/#utm_source=advanced-ads&utm_medium=link&utm_campaign=groups' ); ?></p>
63
  <h4><?php _e( 'shortcode', 'advanced-ads' ); ?></h4>
64
  <p class="description"><?php _e( 'To display an ad group with the ID 6 in content fields', 'advanced-ads' ); ?></p>
65
  <pre><input type="text" onclick="this.select();" style="width: 250px;" value='[the_ad_group id="6"]'/></pre>
admin/views/ad-info-top.php CHANGED
@@ -28,14 +28,14 @@
28
  <div>
29
  <?php if( ! defined( 'AASADS_SLUG' ) ) : ?>
30
  <p><?php _e( 'Fix ads to the browser while users are scrolling and create best performing anchor ads.', 'advanced-ads' ); ?></p>
31
- <a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/sticky-ads/" target="_blank"><?php
32
  _e( 'Get the Sticky add-on', 'advanced-ads' ); ?></a>
33
  <?php else : ?>
34
  <p><?php _e( 'You find the settings for the Sticky Ads below.', 'advanced-ads' ); ?></p>
35
  <?php endif; ?>
36
  <?php if( ! defined( 'AAPLDS_SLUG' ) ) : ?>
37
  <p><?php _e( 'Display content and ads in layers and popups on custom events.', 'advanced-ads' ); ?></p>
38
- <a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/popup-and-layer-ads/" target="_blank"><?php
39
  _e( 'Get the PopUp and Layer add-on', 'advanced-ads' ); ?></a>
40
  <?php else : ?>
41
  <p><?php _e( 'You find the settings for the Layer and PopUp effects below.', 'advanced-ads' ); ?></p>
@@ -43,7 +43,7 @@
43
  </div>
44
  </div>
45
 
46
- <p><?php printf( __( 'Learn more about your choices to display an ad in the <a href="%s" target="_blank">manual</a>', 'advanced-ads' ), ADVADS_URL . 'manual/display-ads/' ); ?></p>
47
  </div>
48
  <script>
49
  jQuery('#advads-ad-info-close').click(function(){
28
  <div>
29
  <?php if( ! defined( 'AASADS_SLUG' ) ) : ?>
30
  <p><?php _e( 'Fix ads to the browser while users are scrolling and create best performing anchor ads.', 'advanced-ads' ); ?></p>
31
+ <a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/sticky-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-created" target="_blank"><?php
32
  _e( 'Get the Sticky add-on', 'advanced-ads' ); ?></a>
33
  <?php else : ?>
34
  <p><?php _e( 'You find the settings for the Sticky Ads below.', 'advanced-ads' ); ?></p>
35
  <?php endif; ?>
36
  <?php if( ! defined( 'AAPLDS_SLUG' ) ) : ?>
37
  <p><?php _e( 'Display content and ads in layers and popups on custom events.', 'advanced-ads' ); ?></p>
38
+ <a class="button button-primary" href="<?php echo ADVADS_URL; ?>add-ons/popup-and-layer-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-created" target="_blank"><?php
39
  _e( 'Get the PopUp and Layer add-on', 'advanced-ads' ); ?></a>
40
  <?php else : ?>
41
  <p><?php _e( 'You find the settings for the Layer and PopUp effects below.', 'advanced-ads' ); ?></p>
43
  </div>
44
  </div>
45
 
46
+ <p><?php printf( __( 'Learn more about your choices to display an ad in the <a href="%s" target="_blank">manual</a>', 'advanced-ads' ), ADVADS_URL . 'manual/display-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-created' ); ?></p>
47
  </div>
48
  <script>
49
  jQuery('#advads-ad-info-close').click(function(){
admin/views/ad-info.php CHANGED
@@ -4,7 +4,7 @@
4
  <pre><input type="text" onclick="this.select();" value='[the_ad id="<?php echo $post->ID; ?>"]'/></pre></label>
5
  <label><span><?php _e( 'theme function', 'advanced-ads' ); ?></span>
6
  <pre><input type="text" onclick="this.select();" value="&lt;?php the_ad(<?php echo $post->ID; ?>); ?&gt;"/></pre></label>
7
- <span><?php printf( __( 'Find more display options in the <a href="%s" target="_blank">manual</a>.', 'advanced-ads' ), ADVADS_URL . 'manual/display-ads/' ); ?></span>
8
  </div>
9
  </p>
10
  <div id="advads-ad-description">
4
  <pre><input type="text" onclick="this.select();" value='[the_ad id="<?php echo $post->ID; ?>"]'/></pre></label>
5
  <label><span><?php _e( 'theme function', 'advanced-ads' ); ?></span>
6
  <pre><input type="text" onclick="this.select();" value="&lt;?php the_ad(<?php echo $post->ID; ?>); ?&gt;"/></pre></label>
7
+ <span><?php printf( __( 'Find more display options in the <a href="%s" target="_blank">manual</a>.', 'advanced-ads' ), ADVADS_URL . 'manual/display-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit' ); ?></span>
8
  </div>
9
  </p>
10
  <div id="advads-ad-description">
admin/views/ad-visitor-metabox.php CHANGED
@@ -27,7 +27,7 @@ foreach ( $options as $_options ) :
27
  <?php if( ! isset( $options ) || count( $options ) == 0 ) :
28
  ?><p><?php _e( 'Visitor conditions limit the number of users who can see your ad. There is no need to set visitor conditions if you want all users to see the ad.', 'advanced-ads' ); ?></p><?php
29
  elseif( Advanced_Ads_Checks::cache() && ! defined('AAP_VERSION') ) :
30
- ?><p><?php printf(__( 'Check out cache-busting in <a href="%s" target="_blank">Advanced Ads Pro</a> if dynamic features get cached.', 'advanced-ads' ), ADVADS_URL . 'add-ons/advanced-ads-pro' ); ?></p><?php
31
  endif;
32
  ?><hr/>
33
  <fieldset>
@@ -47,7 +47,7 @@ endif;
47
  </div>
48
  </fieldset>
49
  <?php if ( ! defined( 'AAR_SLUG' ) ) : ?>
50
- <p><?php printf( __( 'Define the exact browser width for which an ad should be visible using the <a href="%s" target="_blank">Responsive add-on</a>.', 'advanced-ads' ), ADVADS_URL . 'add-ons/responsive-ads/' ); ?></p>
51
  <?php endif;
52
  ?><script>
53
  jQuery( document ).ready(function ($) {
27
  <?php if( ! isset( $options ) || count( $options ) == 0 ) :
28
  ?><p><?php _e( 'Visitor conditions limit the number of users who can see your ad. There is no need to set visitor conditions if you want all users to see the ad.', 'advanced-ads' ); ?></p><?php
29
  elseif( Advanced_Ads_Checks::cache() && ! defined('AAP_VERSION') ) :
30
+ ?><p><?php printf(__( 'Check out cache-busting in <a href="%s" target="_blank">Advanced Ads Pro</a> if dynamic features get cached.', 'advanced-ads' ), ADVADS_URL . 'add-ons/advanced-ads-pro/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-visitor' ); ?></p><?php
31
  endif;
32
  ?><hr/>
33
  <fieldset>
47
  </div>
48
  </fieldset>
49
  <?php if ( ! defined( 'AAR_SLUG' ) ) : ?>
50
+ <p><?php printf( __( 'Define the exact browser width for which an ad should be visible using the <a href="%s" target="_blank">Responsive add-on</a>.', 'advanced-ads' ), ADVADS_URL . 'add-ons/responsive-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-visitor' ); ?></p>
51
  <?php endif;
52
  ?><script>
53
  jQuery( document ).ready(function ($) {
admin/views/feedback_disable.php CHANGED
@@ -5,7 +5,7 @@
5
  <p><?php _e( 'Why did you decide to disable Advanced Ads?', 'advanced-ads' ); ?></p>
6
  <ul>
7
  <li><input type="checkbox" name="advanced_ads_disable_reason[]"/><?php _e( 'I stopped showing ads on my site', 'advanced-ads' ); ?></li>
8
- <li><input type="checkbox" name="advanced_ads_disable_reason[]"/><?php printf(__( 'I miss a feature or <a href="%s">add-on</a>', 'advanced-ads' ), ADVADS_URL . '/add-ons/' ); ?></li>
9
  <li><input type="checkbox" name="advanced_ads_disable_reason[]"/><?php _e( 'I have a technical problem', 'advanced-ads' ); ?></li>
10
  <li><input type="checkbox" name="advanced_ads_disable_reason[]"/><?php _e( 'other reason', 'advanced-ads' ); ?></li>
11
  </ul>
5
  <p><?php _e( 'Why did you decide to disable Advanced Ads?', 'advanced-ads' ); ?></p>
6
  <ul>
7
  <li><input type="checkbox" name="advanced_ads_disable_reason[]"/><?php _e( 'I stopped showing ads on my site', 'advanced-ads' ); ?></li>
8
+ <li><input type="checkbox" name="advanced_ads_disable_reason[]"/><?php printf(__( 'I miss a feature or <a href="%s">add-on</a>', 'advanced-ads' ), ADVADS_URL . '/add-ons/#utm_source=advanced-ads&utm_medium=link&utm_campaign=disabled' ); ?></li>
9
  <li><input type="checkbox" name="advanced_ads_disable_reason[]"/><?php _e( 'I have a technical problem', 'advanced-ads' ); ?></li>
10
  <li><input type="checkbox" name="advanced_ads_disable_reason[]"/><?php _e( 'other reason', 'advanced-ads' ); ?></li>
11
  </ul>
admin/views/intro.php CHANGED
@@ -76,13 +76,13 @@ $minor_features = array(
76
  </div>
77
  <div class="col">
78
  <h3>2. <?php _e( 'Create your first ad', 'advanced-ads' ); ?></h3>
79
- <p><?php printf(__( 'Get started by creating an ad <a href="%1$s" target="blank">right now</a> or watch the <a href="%2$s" target="blank">tutorial video (3:29min)</a> first.', 'advanced-ads' ), admin_url( 'post-new.php?post_type=' . Advanced_Ads::POST_TYPE_SLUG ), ADVADS_URL . 'manual/first-ad/' ); ?></p>
80
  </div>
81
  <div class="col">
82
  <h3>3. <?php _e( 'Display your ad', 'advanced-ads' ); ?></h3>
83
  <p><?php _e( 'You can display your ad using a shortcode, widget or one of the powerful placements. Placements help you to inject ads into the content or place them on your site without coding.', 'advanced-ads' ); ?></p>
84
  <ul>
85
- <li><a href="<?php echo ADVADS_URL . '/manual/placements/'; ?>" target="_blank"><?php _e( 'List of all available placements', 'advanced-ads' ); ?></a></li>
86
  <li><a href="<?php echo admin_url( 'admin.php?page=advanced-ads-placements' ); ?>" target="_blank"><?php _e( 'Create a placement', 'advanced-ads' ); ?></a></li>
87
  </ul>
88
  </div>
76
  </div>
77
  <div class="col">
78
  <h3>2. <?php _e( 'Create your first ad', 'advanced-ads' ); ?></h3>
79
+ <p><?php printf(__( 'Get started by creating an ad <a href="%1$s" target="blank">right now</a> or watch the <a href="%2$s" target="blank">tutorial video (3:29min)</a> first.', 'advanced-ads' ), admin_url( 'post-new.php?post_type=' . Advanced_Ads::POST_TYPE_SLUG ), ADVADS_URL . 'manual/first-ad/#utm_source=advanced-ads&utm_medium=link&utm_campaign=intro' ); ?></p>
80
  </div>
81
  <div class="col">
82
  <h3>3. <?php _e( 'Display your ad', 'advanced-ads' ); ?></h3>
83
  <p><?php _e( 'You can display your ad using a shortcode, widget or one of the powerful placements. Placements help you to inject ads into the content or place them on your site without coding.', 'advanced-ads' ); ?></p>
84
  <ul>
85
+ <li><a href="<?php echo ADVADS_URL . '/manual/placements/#utm_source=advanced-ads&utm_medium=link&utm_campaign=intro'; ?>" target="_blank"><?php _e( 'List of all available placements', 'advanced-ads' ); ?></a></li>
86
  <li><a href="<?php echo admin_url( 'admin.php?page=advanced-ads-placements' ); ?>" target="_blank"><?php _e( 'Create a placement', 'advanced-ads' ); ?></a></li>
87
  </ul>
88
  </div>
admin/views/placements.php CHANGED
@@ -13,7 +13,7 @@
13
  <?php screen_icon(); ?>
14
  <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
15
  <p class="description"><?php _e( 'Placements are physically places in your theme and posts. You can use them if you plan to change ads and ad groups on the same place without the need to change your templates.', 'advanced-ads' ); ?></p>
16
- <p class="description"><?php printf( __( 'See also the manual for more information on <a href="%s">placements</a>.', 'advanced-ads' ), ADVADS_URL . 'manual/placements/' ); ?></p>
17
  <?php if ( isset($placements) && is_array( $placements ) && count( $placements ) ) : ?>
18
  <h2><?php _e( 'Placements', 'advanced-ads' ); ?></h2>
19
  <form method="POST" action="">
@@ -146,7 +146,7 @@ endif;
146
 
147
  ?><form method="POST" action="" onsubmit="return advads_validate_placement_form();" class="advads-placements-new-form"<?php if ( isset($placements) && count( $placements ) ) echo ' style="display: none;"' ; ?>>
148
  <h3>1. <?php _e( 'Choose a placement type', 'advanced-ads' ); ?></h3>
149
- <p class="description"><?php printf(__( 'Placement types define where the ad is going to be displayed. Learn more about the different types from the <a href="%s">manual</a>', 'advanced-ads' ), ADVADS_URL . 'manual/placements/' ); ?></p>
150
  <div class= "advads-new-placement-types advads-buttonset">
151
  <?php
152
  if ( is_array( $placement_types ) ) {
13
  <?php screen_icon(); ?>
14
  <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
15
  <p class="description"><?php _e( 'Placements are physically places in your theme and posts. You can use them if you plan to change ads and ad groups on the same place without the need to change your templates.', 'advanced-ads' ); ?></p>
16
+ <p class="description"><?php printf( __( 'See also the manual for more information on <a href="%s">placements</a>.', 'advanced-ads' ), ADVADS_URL . 'manual/placements/#utm_source=advanced-ads&utm_medium=link&utm_campaign=placements' ); ?></p>
17
  <?php if ( isset($placements) && is_array( $placements ) && count( $placements ) ) : ?>
18
  <h2><?php _e( 'Placements', 'advanced-ads' ); ?></h2>
19
  <form method="POST" action="">
146
 
147
  ?><form method="POST" action="" onsubmit="return advads_validate_placement_form();" class="advads-placements-new-form"<?php if ( isset($placements) && count( $placements ) ) echo ' style="display: none;"' ; ?>>
148
  <h3>1. <?php _e( 'Choose a placement type', 'advanced-ads' ); ?></h3>
149
+ <p class="description"><?php printf(__( 'Placement types define where the ad is going to be displayed. Learn more about the different types from the <a href="%s">manual</a>', 'advanced-ads' ), ADVADS_URL . 'manual/placements/#utm_source=advanced-ads&utm_medium=link&utm_campaign=placements' ); ?></p>
150
  <div class= "advads-new-placement-types advads-buttonset">
151
  <?php
152
  if ( is_array( $placement_types ) ) {
admin/views/setting-license.php CHANGED
@@ -7,7 +7,7 @@ if( $expires ){
7
  $days_left = ( $expires_time - time() ) / DAY_IN_SECONDS;
8
  if( $days_left <= 0 ){
9
  $plugin_url = isset( $plugin_url ) ? $plugin_url : ADVADS_URL;
10
- $errortext = sprintf(__( 'Your license expired. Please visit <a href="%s" target="_blank">the plugin page</a> to renew it.', 'advanced-ads' ), $plugin_url );
11
  $expired = true;
12
  }
13
  };
7
  $days_left = ( $expires_time - time() ) / DAY_IN_SECONDS;
8
  if( $days_left <= 0 ){
9
  $plugin_url = isset( $plugin_url ) ? $plugin_url : ADVADS_URL;
10
+ $errortext = sprintf(__( 'Your license expired. Please visit <a href="%s" target="_blank">the plugin page</a> to renew it.', 'advanced-ads' ), $plugin_url . '#utm_source=advanced-ads&utm_medium=link&utm_campaign=settings-licenses' );
11
  $expired = true;
12
  }
13
  };
admin/views/support.php CHANGED
@@ -23,7 +23,7 @@
23
  $messages[] = sprintf(__( 'Your <strong>PHP version (%s) is too low</strong>. Advanced Ads is built for PHP 5.3 and higher. It might work, but updating PHP is highly recommended. Please ask your hosting provider for more information.', 'advanced-ads' ), phpversion() );
24
  endif;
25
  if( Advanced_Ads_Checks::cache() && ! defined( 'AAP_VERSION' ) ) :
26
- $messages[] = sprintf(__( 'Your <strong>website uses cache</strong>. Some dynamic features like ad rotation or visitor conditions might not work properly. Use the cache-busting feature of <a href="%s" target="_blank">Advanced Ads Pro</a> to load ads dynamically.', 'advanced-ads' ), ADVADS_URL . 'add-ons/advanced-ads-pro' );
27
  endif;
28
  if( Advanced_Ads_Checks::wp_update_available() ) :
29
  $messages[] = __( 'There is a <strong>new WordPress version available</strong>. Please update.', 'advanced-ads' );
@@ -38,10 +38,10 @@
38
  $messages[] = sprintf( __( '<strong>Advanced Ads</strong> license(s) expired. Support and updates are disabled. Please visit <a href="%s"> the license page</a> for more information.', 'advanced-ads' ), admin_url( 'admin.php?page=advanced-ads-settings#top#licenses' ) );
39
  endif;
40
  if( Advanced_Ads_Checks::active_autoptimize() && ! defined( 'AAP_VERSION' ) ) :
41
- $messages[] = sprintf(__( '<strong>Autoptimize plugin detected</strong>. While this plugin is great for site performance, it is known to alter code, including scripts from ad networks. <a href="%s" target="_blank">Advanced Ads Pro</a> has a build-in support for Autoptimize.', 'advanced-ads' ), ADVADS_URL . 'add-ons/advanced-ads-pro');
42
  endif;
43
  if( count( Advanced_Ads_Checks::conflicting_plugins() ) ) :
44
- $messages[] = sprintf(__( 'Plugins that are known to cause (partial) problems: <strong>%1$s</strong>. <a href="%2$s" target="_blank">Learn more</a>.', 'advanced-ads' ), implode( ', ', Advanced_Ads_Checks::conflicting_plugins() ), ADVADS_URL . 'manual/known-plugin-conflicts/');
45
  endif;
46
  $options = Advanced_Ads::get_instance()->options();
47
  if( isset( $options['disabled-ads']) ){
@@ -57,7 +57,7 @@
57
  endforeach;
58
  endif; ?>
59
  <h2><?php _e( 'Contact', 'advanced-ads' ); ?></h2>
60
- <p><?php printf(__( 'Please search the manual for a solution and take a look at <a href="%s" target="_blank">Ads not showing up?</a> before contacting me for help.', 'advanced-ads' ), ADVADS_URL . 'manual/ads-not-showing-up/' ); ?></p>
61
  <form action="" method="post">
62
  <table class="form-table advads-support-form">
63
  <tbody>
23
  $messages[] = sprintf(__( 'Your <strong>PHP version (%s) is too low</strong>. Advanced Ads is built for PHP 5.3 and higher. It might work, but updating PHP is highly recommended. Please ask your hosting provider for more information.', 'advanced-ads' ), phpversion() );
24
  endif;
25
  if( Advanced_Ads_Checks::cache() && ! defined( 'AAP_VERSION' ) ) :
26
+ $messages[] = sprintf(__( 'Your <strong>website uses cache</strong>. Some dynamic features like ad rotation or visitor conditions might not work properly. Use the cache-busting feature of <a href="%s" target="_blank">Advanced Ads Pro</a> to load ads dynamically.', 'advanced-ads' ), ADVADS_URL . 'add-ons/advanced-ads-pro/#utm_source=advanced-ads&utm_medium=link&utm_campaign=support' );
27
  endif;
28
  if( Advanced_Ads_Checks::wp_update_available() ) :
29
  $messages[] = __( 'There is a <strong>new WordPress version available</strong>. Please update.', 'advanced-ads' );
38
  $messages[] = sprintf( __( '<strong>Advanced Ads</strong> license(s) expired. Support and updates are disabled. Please visit <a href="%s"> the license page</a> for more information.', 'advanced-ads' ), admin_url( 'admin.php?page=advanced-ads-settings#top#licenses' ) );
39
  endif;
40
  if( Advanced_Ads_Checks::active_autoptimize() && ! defined( 'AAP_VERSION' ) ) :
41
+ $messages[] = sprintf(__( '<strong>Autoptimize plugin detected</strong>. While this plugin is great for site performance, it is known to alter code, including scripts from ad networks. <a href="%s" target="_blank">Advanced Ads Pro</a> has a build-in support for Autoptimize.', 'advanced-ads' ), ADVADS_URL . 'add-ons/advanced-ads-pro/#utm_source=advanced-ads&utm_medium=link&utm_campaign=support');
42
  endif;
43
  if( count( Advanced_Ads_Checks::conflicting_plugins() ) ) :
44
+ $messages[] = sprintf(__( 'Plugins that are known to cause (partial) problems: <strong>%1$s</strong>. <a href="%2$s" target="_blank">Learn more</a>.', 'advanced-ads' ), implode( ', ', Advanced_Ads_Checks::conflicting_plugins() ), ADVADS_URL . 'manual/known-plugin-conflicts/#utm_source=advanced-ads&utm_medium=link&utm_campaign=support');
45
  endif;
46
  $options = Advanced_Ads::get_instance()->options();
47
  if( isset( $options['disabled-ads']) ){
57
  endforeach;
58
  endif; ?>
59
  <h2><?php _e( 'Contact', 'advanced-ads' ); ?></h2>
60
+ <p><?php printf(__( 'Please search the manual for a solution and take a look at <a href="%s" target="_blank">Ads not showing up?</a> before contacting me for help.', 'advanced-ads' ), ADVADS_URL . 'manual/ads-not-showing-up/#utm_source=advanced-ads&utm_medium=link&utm_campaign=support' ); ?></p>
61
  <form action="" method="post">
62
  <table class="form-table advads-support-form">
63
  <tbody>
advanced-ads.php CHANGED
@@ -12,7 +12,7 @@
12
  * Plugin Name: Advanced Ads
13
  * Plugin URI: https://wpadvancedads.com
14
  * Description: Manage and optimize your ads in WordPress
15
- * Version: 1.6.16
16
  * Author: Thomas Maier
17
  * Author URI: http://webgilde.com
18
  * Text Domain: advanced-ads
@@ -39,7 +39,7 @@ define( 'ADVADS_BASE_DIR', dirname( ADVADS_BASE ) ); // directory of the plugin
39
  // general and global slug, e.g. to store options in WP, textdomain
40
  define( 'ADVADS_SLUG', 'advanced-ads' );
41
  define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
42
- define( 'ADVADS_VERSION', '1.6.16' );
43
 
44
  /*----------------------------------------------------------------------------*
45
  * Autoloading, modules and functions
12
  * Plugin Name: Advanced Ads
13
  * Plugin URI: https://wpadvancedads.com
14
  * Description: Manage and optimize your ads in WordPress
15
+ * Version: 1.6.17
16
  * Author: Thomas Maier
17
  * Author URI: http://webgilde.com
18
  * Text Domain: advanced-ads
39
  // general and global slug, e.g. to store options in WP, textdomain
40
  define( 'ADVADS_SLUG', 'advanced-ads' );
41
  define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
42
+ define( 'ADVADS_VERSION', '1.6.17' );
43
 
44
  /*----------------------------------------------------------------------------*
45
  * Autoloading, modules and functions
classes/ad-select.php CHANGED
@@ -76,6 +76,9 @@ class Advanced_Ads_Select {
76
  {
77
  $args = (array) $args;
78
 
 
 
 
79
  if ( $id || ! isset( $args['id'] ) ) $args['id'] = $id;
80
  $args['method'] = $method;
81
 
@@ -110,7 +113,7 @@ class Advanced_Ads_Select {
110
  // get ad
111
  $ad = new Advanced_Ads_Ad( (int) $args['id'], $args );
112
 
113
- if ( $override = apply_filters( 'advanced-ads-ad-select-override-by-ad', '', $ad, $args ) ) {
114
  return $override;
115
  }
116
 
@@ -134,7 +137,7 @@ class Advanced_Ads_Select {
134
  $adgroup = new Advanced_Ads_Group( $id, $args );
135
  $ordered_ad_ids = $adgroup->get_ordered_ad_ids();
136
 
137
- if ( $override = apply_filters( 'advanced-ads-ad-select-override-by-group', '', $adgroup, $ordered_ad_ids, $args ) ) {
138
  return $override;
139
  }
140
 
76
  {
77
  $args = (array) $args;
78
 
79
+ $args['previous_method'] = isset( $args['method'] ) ? $args['method'] : null;
80
+ $args['previous_id'] = isset( $args['id'] ) ? $args['id'] : null;
81
+
82
  if ( $id || ! isset( $args['id'] ) ) $args['id'] = $id;
83
  $args['method'] = $method;
84
 
113
  // get ad
114
  $ad = new Advanced_Ads_Ad( (int) $args['id'], $args );
115
 
116
+ if ( false !== ( $override = apply_filters( 'advanced-ads-ad-select-override-by-ad', false, $ad, $args ) ) ) {
117
  return $override;
118
  }
119
 
137
  $adgroup = new Advanced_Ads_Group( $id, $args );
138
  $ordered_ad_ids = $adgroup->get_ordered_ad_ids();
139
 
140
+ if ( false !== ( $override = apply_filters( 'advanced-ads-ad-select-override-by-group', false, $adgroup, $ordered_ad_ids, $args ) ) ) {
141
  return $override;
142
  }
143
 
classes/ad.php CHANGED
@@ -260,7 +260,7 @@ class Advanced_Ads_Ad {
260
 
261
  // add the ad to the global output array
262
  $advads = Advanced_Ads::get_instance();
263
- $advads->current_ads[] = array('type' => 'ad', 'id' => $this->id, 'title' => $this->title);
264
 
265
  // action when output is created
266
  do_action( 'advanced-ads-output', $this, $output );
260
 
261
  // add the ad to the global output array
262
  $advads = Advanced_Ads::get_instance();
263
+ $advads->current_ads[] = array('type' => 'ad', 'id' => $this->id, 'title' => $this->title, 'output' => $output);
264
 
265
  // action when output is created
266
  do_action( 'advanced-ads-output', $this, $output );
classes/ad_type_image.php CHANGED
@@ -64,7 +64,7 @@ class Advanced_Ads_Ad_Type_Image extends Advanced_Ads_Ad_Type_Abstract{
64
  if( ! defined( 'AAT_VERSION' )) : ?>
65
  <p><label for="advads-url"><?php _e( 'url', ADVADS_SLUG ); ?></label><br/>
66
  <input type="url" name="advanced_ad[url]" id="advads-url" value="<?php echo $url; ?>"/></p>
67
- <p><?php printf(__( 'Pro: Open this url in a new window and track impressions and clicks with the <a href="%s" target="_blank">Tracking add-on</a>', ADVADS_SLUG ), ADVADS_URL . 'add-ons/tracking'); ?></p>
68
  <?php endif;
69
  }
70
 
64
  if( ! defined( 'AAT_VERSION' )) : ?>
65
  <p><label for="advads-url"><?php _e( 'url', ADVADS_SLUG ); ?></label><br/>
66
  <input type="url" name="advanced_ad[url]" id="advads-url" value="<?php echo $url; ?>"/></p>
67
+ <p><?php printf(__( 'Pro: Open this url in a new window and track impressions and clicks with the <a href="%s" target="_blank">Tracking add-on</a>', ADVADS_SLUG ), ADVADS_URL . 'add-ons/tracking/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-image-tracking'); ?></p>
68
  <?php endif;
69
  }
70
 
classes/visitor-conditions.php CHANGED
@@ -33,7 +33,7 @@ class Advanced_Ads_Visitor_Conditions {
33
  'description' => __( 'Display ads only on mobile devices or hide them.', 'advanced-ads' ),
34
  'metabox' => array( 'Advanced_Ads_Visitor_Conditions', 'mobile_is_or_not' ), // callback to generate the metabox
35
  'check' => array( 'Advanced_Ads_Visitor_Conditions', 'check_mobile' ), // callback for frontend check
36
- 'helplink' => ADVADS_URL . 'manual/display-ads-either-on-mobile-or-desktop/' // link to help section
37
  ),
38
  'loggedin' => array(
39
  'label' => __( 'logged in visitor', 'advanced-ads' ),
@@ -70,7 +70,7 @@ class Advanced_Ads_Visitor_Conditions {
70
  self::metabox_is_or_not($options, $index);
71
 
72
  if( ! defined( 'AAR_SLUG' ) ){
73
- echo '<p>' . sprintf(__( 'Pro: Display ads by the available space on the device using the <a href="%s" target="_blank">Responsive add-on</a>', ADVADS_SLUG ), ADVADS_URL . 'add-ons/responsive-ads') . '</p>';
74
  }
75
  }
76
 
33
  'description' => __( 'Display ads only on mobile devices or hide them.', 'advanced-ads' ),
34
  'metabox' => array( 'Advanced_Ads_Visitor_Conditions', 'mobile_is_or_not' ), // callback to generate the metabox
35
  'check' => array( 'Advanced_Ads_Visitor_Conditions', 'check_mobile' ), // callback for frontend check
36
+ 'helplink' => ADVADS_URL . 'manual/display-ads-either-on-mobile-or-desktop/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-visitor-mobile' // link to help section
37
  ),
38
  'loggedin' => array(
39
  'label' => __( 'logged in visitor', 'advanced-ads' ),
70
  self::metabox_is_or_not($options, $index);
71
 
72
  if( ! defined( 'AAR_SLUG' ) ){
73
+ echo '<p>' . sprintf(__( 'Pro: Display ads by the available space on the device using the <a href="%s" target="_blank">Responsive add-on</a>', ADVADS_SLUG ), ADVADS_URL . 'add-ons/responsive-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-visitor-responsive') . '</p>';
74
  }
75
  }
76
 
modules/gadsense/admin/admin.php CHANGED
@@ -166,7 +166,7 @@ class Advanced_Ads_AdSense_Admin {
166
  $adsense_id = $this->data->get_adsense_id();
167
  if( ! $adsense_id ){
168
  ?><p class="advads-error-message"><?php
169
- printf(__( 'Please enter your Publisher ID in order to use AdSense on your page. See the <a href="%s" target="_blank">manual</a> for more information.', 'advanced-ads' ), ADVADS_URL . 'manual/ad-types/adsense-ads/' );
170
  ?></p><?php
171
  }
172
  }
166
  $adsense_id = $this->data->get_adsense_id();
167
  if( ! $adsense_id ){
168
  ?><p class="advads-error-message"><?php
169
+ printf(__( 'Please enter your Publisher ID in order to use AdSense on your page. See the <a href="%s" target="_blank">manual</a> for more information.', 'advanced-ads' ), ADVADS_URL . 'manual/ad-types/adsense-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-adsense' );
170
  ?></p><?php
171
  }
172
  }
modules/gadsense/admin/views/adsense-ad-parameters.php CHANGED
@@ -52,7 +52,7 @@ $sizing_array = $db->get_responsive_sizing();
52
  </select>
53
  </label>
54
  <?php if ( ! defined( 'AAR_SLUG' ) ) : ?>
55
- <p><?php printf( __( 'Use the <a href="%s" target="_blank">Responsive add-on</a> in order to define the exact creative for each browser width.', 'advanced-ads' ), ADVADS_URL . 'add-ons/responsive-ads/' ); ?></p>
56
  <?php else : ?>
57
  <br />
58
  <?php endif; ?>
52
  </select>
53
  </label>
54
  <?php if ( ! defined( 'AAR_SLUG' ) ) : ?>
55
+ <p><?php printf( __( 'Use the <a href="%s" target="_blank">Responsive add-on</a> in order to define the exact creative for each browser width.', 'advanced-ads' ), ADVADS_URL . 'add-ons/responsive-ads/#utm_source=advanced-ads&utm_medium=link&utm_campaign=edit-adsense' ); ?></p>
56
  <?php else : ?>
57
  <br />
58
  <?php endif; ?>
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link:https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id
4
  Tags: ads, ad, adsense, display, banner, advertisements, adverts, advert, monetization
5
  Requires at least: WP 4.2, PHP 5.3
6
  Tested up to: 4.4.1
7
- Stable tag: 1.6.16
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -193,6 +193,14 @@ There is no revenue share. Advanced Ads doesn’t alter your ad codes in a way t
193
 
194
  == Changelog ==
195
 
 
 
 
 
 
 
 
 
196
  = 1.6.16 =
197
 
198
  * added link to manual for mobile devices visitor condition
4
  Tags: ads, ad, adsense, display, banner, advertisements, adverts, advert, monetization
5
  Requires at least: WP 4.2, PHP 5.3
6
  Tested up to: 4.4.1
7
+ Stable tag: 1.6.17
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
193
 
194
  == Changelog ==
195
 
196
+ = 1.6.17 =
197
+
198
+ * asking nicely for a [review on wordpress.org](https://wordpress.org/support/view/plugin-reviews/advanced-ads#postform)
199
+ * compatibility with passive cache-busting in Advanced Ads Pro
200
+ * automatically reenable license if it was already activated one the site
201
+ * updated links to plugin page
202
+ * sanitized frontend prefix
203
+
204
  = 1.6.16 =
205
 
206
  * added link to manual for mobile devices visitor condition