Advanced Ads - Version 1.34.0

Version Description

(May 24, 2022) =

  • Improvement: add a nofollow attribute to the manual link in the ad debug output
  • Improvement: add advanced-ads-group-displayed-ad-count filter to allow add-ons to show the right amount of displayed ads on the group screen
  • Improvement: add authors for ads
  • Improvement: always register the Advanced JavaScript file
  • Fix: prevent possible PHP error happening when using UpSolution Core plugin
  • Fix: display link to AdSense account that contains warnings correctly
  • Fix: restore the group search form
  • Fix: ensure that the AdSense revenues can be shown separately by domain on the Advanced Ads dashboard
Download this release

Release Info

Developer advancedads
Plugin Icon 128x128 Advanced Ads
Version 1.34.0
Comparing to
See all releases

Code changes from version 1.33.2 to 1.34.0

admin/includes/class-ad-groups-list.php CHANGED
@@ -229,12 +229,7 @@ class Advanced_Ads_Groups_List {
229
  sprintf( __( 'show %d more ads', 'advanced-ads' ), $hidden_ads ) . '</a></p>';
230
  }
231
 
232
- if ( 'all' === $group->ad_count ) {
233
- echo '<p>' . esc_html__( 'all published ads are displayed', 'advanced-ads' ) . '</p>';
234
- } elseif ( $group->ad_count > 1 ) {
235
- // translators: %d is a number.
236
- echo '<p>' . sprintf( esc_html__( 'up to %d ads displayed', 'advanced-ads' ), absint( $group->ad_count ) ) . '</p>';
237
- }
238
  } else {
239
  esc_html_e( 'No ads assigned', 'advanced-ads' );
240
  ?>
@@ -245,6 +240,30 @@ class Advanced_Ads_Groups_List {
245
  wp_reset_postdata();
246
  }
247
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
  /**
249
  * Remove entries from the ad weight array that are just id
250
  *
229
  sprintf( __( 'show %d more ads', 'advanced-ads' ), $hidden_ads ) . '</a></p>';
230
  }
231
 
232
+ echo '<p>' . esc_html( $this->get_ad_count_string( $group, $ads ) ) . '</p>';
 
 
 
 
 
233
  } else {
234
  esc_html_e( 'No ads assigned', 'advanced-ads' );
235
  ?>
240
  wp_reset_postdata();
241
  }
242
 
243
+ /**
244
+ * Return the displayed ad count string
245
+ *
246
+ * @param Advanced_Ads_Group $group the ad group.
247
+ * @param WP_Query $ads_query list of ads in group.
248
+ *
249
+ * @return string
250
+ */
251
+ private function get_ad_count_string( $group, $ads_query ) {
252
+ // Amount of displayed ads.
253
+ $ad_count = $group->ad_count === 'all' ? $ads_query->post_count : $group->ad_count;
254
+
255
+ /**
256
+ * Filters the displayed ad count on the ad groups page.
257
+ *
258
+ * @param int $ad_count the amount of displayed ads.
259
+ * @param Advanced_Ads_Group $group the current ad group.
260
+ */
261
+ $ad_count = (int) apply_filters( 'advanced-ads-group-displayed-ad-count', $ad_count, $group );
262
+
263
+ /* translators: amount of ads displayed */
264
+ return sprintf( _n( 'Up to %d ad displayed.', 'Up to %d ads displayed', $ad_count, 'advanced-ads' ), $ad_count );
265
+ }
266
+
267
  /**
268
  * Remove entries from the ad weight array that are just id
269
  *
admin/includes/class-ad-type.php CHANGED
@@ -279,6 +279,7 @@ class Advanced_Ads_Admin_Ad_Type {
279
  array(
280
  'cb', // checkbox.
281
  'title',
 
282
  'ad_details',
283
  'ad_timing',
284
  'ad_shortcode',
279
  array(
280
  'cb', // checkbox.
281
  'title',
282
+ 'author',
283
  'ad_details',
284
  'ad_timing',
285
  'ad_shortcode',
admin/includes/class-menu.php CHANGED
@@ -333,9 +333,16 @@ class Advanced_Ads_Admin_Menu {
333
  break;
334
 
335
  default:
336
- $title = $tax->labels->name;
337
- $wp_list_table = _get_list_table( 'WP_Terms_List_Table' );
338
 
 
 
 
 
 
 
 
339
  // load template.
340
  include ADVADS_BASE_PATH . 'admin/views/ad-group.php';
341
  }
333
  break;
334
 
335
  default:
336
+ $title = $tax->labels->name;
337
+ $screen = get_current_screen();
338
 
339
+ if ( ! $screen ) {
340
+ return;
341
+ }
342
+
343
+ $screen->taxonomy = Advanced_Ads::AD_GROUP_TAXONOMY;
344
+ $wp_list_table = _get_list_table( 'WP_Terms_List_Table' );
345
+ $wp_list_table->prepare_items();
346
  // load template.
347
  include ADVADS_BASE_PATH . 'admin/views/ad-group.php';
348
  }
admin/includes/class-meta-box.php CHANGED
@@ -162,6 +162,7 @@ class Advanced_Ads_Admin_Meta_Boxes {
162
  array(
163
  'submitdiv',
164
  'slugdiv',
 
165
  'tracking-ads-box',
166
  'ad-layer-ads-box', // deprecated.
167
  )
162
  array(
163
  'submitdiv',
164
  'slugdiv',
165
+ 'authordiv',
166
  'tracking-ads-box',
167
  'ad-layer-ads-box', // deprecated.
168
  )
admin/includes/class-shortcode-creator.php CHANGED
@@ -154,7 +154,7 @@ class Advanced_Ads_Shortcode_Creator {
154
  * @param string $editor_id Unique editor identifier.
155
  * @return array the TinyMCE config.
156
  */
157
- public function tiny_mce_before_init( $mce_init, $editor_id ) {
158
  if (
159
  ! isset( $mce_init['plugins'] )
160
  || ! is_string( $mce_init['plugins'] )
@@ -165,7 +165,7 @@ class Advanced_Ads_Shortcode_Creator {
165
  $plugins = explode( ',', $mce_init['plugins'] );
166
  $found = array_search( 'advads_shortcode', $plugins, true );
167
 
168
- if ( ! $found || in_array( $editor_id, $this->editors_with_buttons, true ) ) {
169
  return $mce_init;
170
  }
171
 
154
  * @param string $editor_id Unique editor identifier.
155
  * @return array the TinyMCE config.
156
  */
157
+ public function tiny_mce_before_init( $mce_init, $editor_id = '' ) {
158
  if (
159
  ! isset( $mce_init['plugins'] )
160
  || ! is_string( $mce_init['plugins'] )
165
  $plugins = explode( ',', $mce_init['plugins'] );
166
  $found = array_search( 'advads_shortcode', $plugins, true );
167
 
168
+ if ( ! $found || ( $editor_id !== '' && in_array( $editor_id, $this->editors_with_buttons, true ) ) ) {
169
  return $mce_init;
170
  }
171
 
admin/views/ad-group.php CHANGED
@@ -7,6 +7,9 @@
7
  * @license GPL-2.0+
8
  * @link https://wpadvancedads.com
9
  * @copyright since 2013 Thomas Maier, Advanced Ads GmbH
 
 
 
10
  */
11
 
12
  $ad_groups_list = new Advanced_Ads_Groups_List();
@@ -60,12 +63,6 @@ if ( isset( $_REQUEST['advads-last-edited-group'] ) ) {
60
  ?>
61
  <div class="wrap nosubsub">
62
  <h2 style="display: none;"><!-- There needs to be an empty H2 headline at the top of the page so that WordPress can properly position admin notifications --></h2>
63
- <?php
64
-
65
- if ( ! empty( $_REQUEST['s'] ) ) {
66
- printf( '<span class="subtitle">' . __( 'Search results for &#8220;%s&#8221;', 'advanced-ads' ) . '</span>', esc_html( wp_unslash( $_REQUEST['s'] ) ) );
67
- }
68
- ?>
69
  <form id="advads-new-group-form" action="" method="post" style="display:none;">
70
  <?php wp_nonce_field( 'add-advads-groups', 'advads-group-add-nonce' ); ?>
71
  <input type="text" name="advads-group-name" placeholder="<?php esc_attr_e( 'Group title', 'advanced-ads' ); ?>"/>
@@ -99,6 +96,19 @@ if ( isset( $_REQUEST['advads-last-edited-group'] ) ) {
99
 
100
  <div id="col-container">
101
  <div class="col-wrap">
 
 
 
 
 
 
 
 
 
 
 
 
 
102
  <div id="advads-ad-group-list">
103
  <form action="" method="post" id="advads-form-groups">
104
  <?php wp_nonce_field( 'update-advads-groups', 'advads-group-update-nonce' ); ?>
7
  * @license GPL-2.0+
8
  * @link https://wpadvancedads.com
9
  * @copyright since 2013 Thomas Maier, Advanced Ads GmbH
10
+ *
11
+ * @var WP_List_Table|false $wp_list_table the groups list table
12
+ * @var WP_Taxonomy $tax ad group taxonomy
13
  */
14
 
15
  $ad_groups_list = new Advanced_Ads_Groups_List();
63
  ?>
64
  <div class="wrap nosubsub">
65
  <h2 style="display: none;"><!-- There needs to be an empty H2 headline at the top of the page so that WordPress can properly position admin notifications --></h2>
 
 
 
 
 
 
66
  <form id="advads-new-group-form" action="" method="post" style="display:none;">
67
  <?php wp_nonce_field( 'add-advads-groups', 'advads-group-add-nonce' ); ?>
68
  <input type="text" name="advads-group-name" placeholder="<?php esc_attr_e( 'Group title', 'advanced-ads' ); ?>"/>
96
 
97
  <div id="col-container">
98
  <div class="col-wrap">
99
+ <div class="tablenav top" style="padding-bottom: 20px;">
100
+ <?php
101
+ if ( ! empty( $_REQUEST['s'] ) ) {
102
+ printf( '<span class="subtitle" style="float:left;">' . __( 'Search results for: %s' ) . '</span>', '<strong>' . esc_html( wp_unslash( $_REQUEST['s'] ) ) . '</strong>' );
103
+ }
104
+ ?>
105
+ <form class="search-form" action="" method="get">
106
+ <input type="hidden" name="page" value="advanced-ads-groups"/>
107
+ <?php
108
+ $wp_list_table->search_box( $tax->labels->search_items, 'tag' );
109
+ ?>
110
+ </form>
111
+ </div>
112
  <div id="advads-ad-group-list">
113
  <form action="" method="post" id="advads-form-groups">
114
  <?php wp_nonce_field( 'update-advads-groups', 'advads-group-update-nonce' ); ?>
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.33.2
16
  * Author: Thomas Maier, Advanced Ads GmbH
17
  * Author URI: https://wpadvancedads.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.
40
  define( 'ADVADS_SLUG', 'advanced-ads' );
41
  define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
42
- define( 'ADVADS_VERSION', '1.33.2' );
43
 
44
  // Autoloading, modules and functions.
45
 
12
  * Plugin Name: Advanced Ads
13
  * Plugin URI: https://wpadvancedads.com
14
  * Description: Manage and optimize your ads in WordPress
15
+ * Version: 1.34.0
16
  * Author: Thomas Maier, Advanced Ads GmbH
17
  * Author URI: https://wpadvancedads.com
18
  * Text Domain: advanced-ads
39
  // general and global slug, e.g. to store options in WP.
40
  define( 'ADVADS_SLUG', 'advanced-ads' );
41
  define( 'ADVADS_URL', 'https://wpadvancedads.com/' );
42
+ define( 'ADVADS_VERSION', '1.34.0' );
43
 
44
  // Autoloading, modules and functions.
45
 
classes/plugin.php CHANGED
@@ -171,28 +171,33 @@ class Advanced_Ads_Plugin {
171
  return;
172
  }
173
  // wp_enqueue_script( $this->get_plugin_slug() . '-plugin-script', plugins_url('assets/js/public.js', __FILE__), array('jquery'), ADVADS_VERSION);
174
- $activated_js = apply_filters( 'advanced-ads-activate-advanced-js', isset( $this->options()['advanced-js'] ) );
175
 
176
- if ( $activated_js || ! empty( $_COOKIE['advads_frontend_picker'] ) ) {
177
- wp_enqueue_script(
178
- $this->get_plugin_slug() . '-advanced-js',
179
- sprintf( '%spublic/assets/js/advanced%s.js', ADVADS_BASE_URL, defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min' ),
180
- array( 'jquery' ),
181
- ADVADS_VERSION,
182
- false
183
- );
184
 
185
- $privacy = Advanced_Ads_Privacy::get_instance();
186
- $privacy_options = $privacy->options();
187
- $privacy_options['enabled'] = ! empty( $privacy_options['enabled'] );
188
- $privacy_options['state'] = $privacy->get_state();
189
 
190
- $data = array(
 
 
 
191
  'blog_id' => get_current_blog_id(),
192
  'privacy' => $privacy_options,
193
- );
 
 
 
194
 
195
- wp_localize_script( $this->get_plugin_slug() . '-advanced-js', 'advads_options', $data );
 
196
  }
197
  }
198
 
171
  return;
172
  }
173
  // wp_enqueue_script( $this->get_plugin_slug() . '-plugin-script', plugins_url('assets/js/public.js', __FILE__), array('jquery'), ADVADS_VERSION);
 
174
 
175
+ wp_register_script(
176
+ $this->get_plugin_slug() . '-advanced-js',
177
+ sprintf( '%spublic/assets/js/advanced%s.js', ADVADS_BASE_URL, defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min' ),
178
+ array( 'jquery' ),
179
+ ADVADS_VERSION,
180
+ false
181
+ );
 
182
 
183
+ $privacy = Advanced_Ads_Privacy::get_instance();
184
+ $privacy_options = $privacy->options();
185
+ $privacy_options['enabled'] = ! empty( $privacy_options['enabled'] );
186
+ $privacy_options['state'] = $privacy->get_state();
187
 
188
+ wp_localize_script(
189
+ $this->get_plugin_slug() . '-advanced-js',
190
+ 'advads_options',
191
+ array(
192
  'blog_id' => get_current_blog_id(),
193
  'privacy' => $privacy_options,
194
+ )
195
+ );
196
+
197
+ $activated_js = apply_filters( 'advanced-ads-activate-advanced-js', isset( $this->options()['advanced-js'] ) );
198
 
199
+ if ( $activated_js || ! empty( $_COOKIE['advads_frontend_picker'] ) ) {
200
+ wp_enqueue_script( $this->get_plugin_slug() . '-advanced-js' );
201
  }
202
  }
203
 
classes/visitor-conditions.php CHANGED
@@ -403,7 +403,6 @@ class Advanced_Ads_Visitor_Conditions {
403
  * @since 1.6.3
404
  */
405
  public static function helper_check_string( $string = '', $options = array() ) {
406
-
407
  if ( ! isset( $options['operator'] ) || ! isset( $options['value'] ) || '' === $options['value'] ) {
408
  return true;
409
  }
@@ -448,21 +447,17 @@ class Advanced_Ads_Visitor_Conditions {
448
  // strings do match, but should not or not match but should.
449
  $condition = strcasecmp( $value, $string ) !== 0;
450
  break;
451
- // string is a regular expression.
452
  case 'regex':
453
- // check regular expression first.
454
- if ( @preg_match( $value, null ) === false ) {
455
- Advanced_Ads::log( "Advanced Ads: regular expression '$value' in visitor condition is broken." );
456
- } else {
457
- $condition = preg_match( $value, $string );
458
- }
459
- break;
460
- // string is not a regular expression.
461
  case 'regex_not':
462
- if ( @preg_match( $value, null ) === false ) {
 
 
463
  Advanced_Ads::log( "Advanced Ads: regular expression '$value' in visitor condition is broken." );
464
- } else {
465
- $condition = ! preg_match( $value, $string );
 
 
 
466
  }
467
  break;
468
  }
403
  * @since 1.6.3
404
  */
405
  public static function helper_check_string( $string = '', $options = array() ) {
 
406
  if ( ! isset( $options['operator'] ) || ! isset( $options['value'] ) || '' === $options['value'] ) {
407
  return true;
408
  }
447
  // strings do match, but should not or not match but should.
448
  $condition = strcasecmp( $value, $string ) !== 0;
449
  break;
 
450
  case 'regex':
 
 
 
 
 
 
 
 
451
  case 'regex_not':
452
+ $condition = @preg_match( sprintf( '/%s/', $value ), $string );
453
+ // if the return value is `false`, the regex is incorrect.
454
+ if ( $condition === false ) {
455
  Advanced_Ads::log( "Advanced Ads: regular expression '$value' in visitor condition is broken." );
456
+ break;
457
+ }
458
+
459
+ if ( $operator === 'regex_not' ) {
460
+ $condition = ! $condition;
461
  }
462
  break;
463
  }
languages/advanced-ads.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the GPL-2.0+.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Advanced Ads 1.33.2\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/advanced-ads/\n"
7
  "Last-Translator: Thomas Maier <post@webzunft.de>\n"
8
  "Language-Team: webgilde <support@wpadvancedads.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-04-21T11:05:08+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: advanced-ads\n"
@@ -299,40 +299,38 @@ msgstr ""
299
  msgid "show %d more ads"
300
  msgstr ""
301
 
302
- #: admin/includes/class-ad-groups-list.php:233
303
- msgid "all published ads are displayed"
304
- msgstr ""
305
-
306
- #. translators: %d is a number.
307
- #: admin/includes/class-ad-groups-list.php:236
308
- msgid "up to %d ads displayed"
309
- msgstr ""
310
-
311
- #: admin/includes/class-ad-groups-list.php:239
312
  msgid "No ads assigned"
313
  msgstr ""
314
 
315
- #: admin/includes/class-ad-groups-list.php:241
316
  msgid "Add some"
317
  msgstr ""
318
 
319
- #: admin/includes/class-ad-groups-list.php:315
 
 
 
 
 
 
 
320
  msgid "Random ads"
321
  msgstr ""
322
 
323
- #: admin/includes/class-ad-groups-list.php:316
324
  msgid "Display random ads based on ad weight"
325
  msgstr ""
326
 
327
- #: admin/includes/class-ad-groups-list.php:319
328
  msgid "Ordered ads"
329
  msgstr ""
330
 
331
- #: admin/includes/class-ad-groups-list.php:320
332
  msgid "Display ads with the highest ad weight first"
333
  msgstr ""
334
 
335
- #: admin/includes/class-ad-groups-list.php:339
336
  #: admin/views/placements.php:268
337
  #: modules/import-export/classes/import.php:153
338
  #: modules/import-export/classes/import.php:193
@@ -341,27 +339,27 @@ msgstr ""
341
  msgid "Edit"
342
  msgstr ""
343
 
344
- #: admin/includes/class-ad-groups-list.php:340
345
  #: admin/views/placements.php:299
346
  msgid "Usage"
347
  msgstr ""
348
 
349
- #: admin/includes/class-ad-groups-list.php:349
350
  #: admin/views/placements.php:10
351
  msgid "Delete"
352
  msgstr ""
353
 
354
- #: admin/includes/class-ad-groups-list.php:371
355
- #: admin/includes/class-ad-groups-list.php:441
356
  msgid "Invalid Ad Group"
357
  msgstr ""
358
 
359
- #: admin/includes/class-ad-groups-list.php:376
360
- #: admin/includes/class-ad-groups-list.php:446
361
  msgid "You don’t have permission to change the ad groups"
362
  msgstr ""
363
 
364
- #: admin/includes/class-ad-groups-list.php:410
365
  msgid "No ad group created"
366
  msgstr ""
367
 
@@ -381,83 +379,83 @@ msgid "Ad Shortcode"
381
  msgstr ""
382
 
383
  #. translators: %s is the number of ads.
384
- #: admin/includes/class-ad-type.php:437
385
  msgid "%s ad updated."
386
  msgid_plural "%s ads updated."
387
  msgstr[0] ""
388
  msgstr[1] ""
389
 
390
  #. translators: %s is the number of ads.
391
- #: admin/includes/class-ad-type.php:439
392
  msgid "%s ad not updated, somebody is editing it."
393
  msgid_plural "%s ads not updated, somebody is editing them."
394
  msgstr[0] ""
395
  msgstr[1] ""
396
 
397
  #. translators: %s is the number of ads.
398
- #: admin/includes/class-ad-type.php:441
399
  msgid "%s ad permanently deleted."
400
  msgid_plural "%s ads permanently deleted."
401
  msgstr[0] ""
402
  msgstr[1] ""
403
 
404
  #. translators: %s is the number of ads.
405
- #: admin/includes/class-ad-type.php:443
406
  msgid "%s ad moved to the Trash."
407
  msgid_plural "%s ads moved to the Trash."
408
  msgstr[0] ""
409
  msgstr[1] ""
410
 
411
  #. translators: %s is the number of ads.
412
- #: admin/includes/class-ad-type.php:445
413
  msgid "%s ad restored from the Trash."
414
  msgid_plural "%s ads restored from the Trash."
415
  msgstr[0] ""
416
  msgstr[1] ""
417
 
418
  #. Translators: %s is the time the ad was first saved.
419
- #: admin/includes/class-ad-type.php:686
420
  msgid "Ad created on %s"
421
  msgstr ""
422
 
423
- #: admin/includes/class-ad-type.php:878
424
  #: admin/includes/class-ad-type.php:879
 
425
  msgid "Ad updated."
426
  msgstr ""
427
 
428
  #. translators: %s: date and time of the revision
429
- #: admin/includes/class-ad-type.php:880
430
  msgid "Ad restored to revision from %s"
431
  msgstr ""
432
 
433
- #: admin/includes/class-ad-type.php:881
434
  #: admin/includes/class-ad-type.php:882
 
435
  msgid "Ad saved."
436
  msgstr ""
437
 
438
- #: admin/includes/class-ad-type.php:883
439
  msgid "Ad submitted."
440
  msgstr ""
441
 
442
  #. translators: %1$s is a date.
443
- #: admin/includes/class-ad-type.php:886
444
  msgid "Ad scheduled for: <strong>%1$s</strong>."
445
  msgstr ""
446
 
447
  #. translators: Publish box date format, see http://php.net/date.
448
- #: admin/includes/class-ad-type.php:888
449
  msgid "M j, Y @ G:i"
450
  msgstr ""
451
 
452
- #: admin/includes/class-ad-type.php:890
453
  msgid "Ad draft updated."
454
  msgstr ""
455
 
456
- #: admin/includes/class-ad-type.php:946
457
  msgid "You don’t have access to ads. Please deactivate and re-enable Advanced Ads again to fix this."
458
  msgstr ""
459
 
460
- #: admin/includes/class-ad-type.php:947
461
  #: classes/frontend_checks.php:503
462
  msgid "Get help"
463
  msgstr ""
@@ -581,7 +579,7 @@ msgstr ""
581
  #: admin/includes/class-menu.php:99
582
  #: admin/includes/class-menu.php:110
583
  #: admin/includes/class-menu.php:111
584
- #: admin/includes/class-meta-box.php:512
585
  msgid "Dashboard"
586
  msgstr ""
587
 
@@ -691,9 +689,9 @@ msgstr ""
691
  msgid "Statistics"
692
  msgstr ""
693
 
694
- #: admin/includes/class-meta-box.php:201
695
- #: admin/includes/class-meta-box.php:220
696
- #: admin/includes/class-meta-box.php:225
697
  #: admin/includes/class-overview-widgets.php:179
698
  #: admin/views/ad-main-metabox.php:29
699
  #: admin/views/ad-output-metabox.php:65
@@ -705,38 +703,38 @@ msgstr ""
705
  msgid "Manual"
706
  msgstr ""
707
 
708
- #: admin/includes/class-meta-box.php:219
709
  msgid "Video"
710
  msgstr ""
711
 
712
- #: admin/includes/class-meta-box.php:252
713
  #: admin/includes/class-overview-widgets.php:61
714
  msgid "Disable"
715
  msgstr ""
716
 
717
- #: admin/includes/class-meta-box.php:413
718
  msgid "Ad Settings"
719
  msgstr ""
720
 
721
  #. translators: %1$d is the number of ads, %2$s and %3$s are URLs.
722
- #: admin/includes/class-meta-box.php:528
723
  msgid "%1$d ads – <a href=\"%2$s\">manage</a> - <a href=\"%3$s\">new</a>"
724
  msgstr ""
725
 
726
- #: admin/includes/class-meta-box.php:541
727
  msgid "Get the tutorial via email"
728
  msgstr ""
729
 
730
- #: admin/includes/class-meta-box.php:550
731
  msgid "Get AdSense tips via email"
732
  msgstr ""
733
 
734
- #: admin/includes/class-meta-box.php:559
735
  msgid "Visit our blog for more articles about ad optimization"
736
  msgstr ""
737
 
738
  #. translators: %s is our URL.
739
- #: admin/includes/class-meta-box.php:613
740
  msgid "Latest posts on wpadvancedads.com"
741
  msgstr ""
742
 
@@ -769,8 +767,8 @@ msgid "Create your first ad"
769
  msgstr ""
770
 
771
  #: admin/includes/class-overview-widgets.php:118
772
- #: modules/gadsense/admin/views/adsense-account.php:87
773
- #: modules/gadsense/admin/views/adsense-account.php:109
774
  msgid "Connect to AdSense"
775
  msgstr ""
776
 
@@ -1268,36 +1266,32 @@ msgstr ""
1268
  msgid "ID: %s"
1269
  msgstr ""
1270
 
1271
- #: admin/views/ad-group.php:27
1272
  msgid "Ad Group successfully created"
1273
  msgstr ""
1274
 
1275
- #: admin/views/ad-group.php:40
1276
  msgid "Ad Groups successfully updated"
1277
  msgstr ""
1278
 
1279
- #: admin/views/ad-group.php:66
1280
- msgid "Search results for &#8220;%s&#8221;"
1281
- msgstr ""
1282
-
1283
- #: admin/views/ad-group.php:71
1284
  msgid "Group title"
1285
  msgstr ""
1286
 
1287
- #: admin/views/ad-group.php:72
1288
  msgid "save"
1289
  msgstr ""
1290
 
1291
- #: admin/views/ad-group.php:74
1292
  msgid "Ad Groups are a very flexible method to bundle ads. You can use them to display random ads in the frontend or run split tests, but also just for informational purposes. Not only can an Ad Groups have multiple ads, but an ad can belong to multiple ad groups."
1293
  msgstr ""
1294
 
1295
  #. translators: %s is a URL.
1296
- #: admin/views/ad-group.php:80
1297
  msgid "Find more information about ad groups in the <a href=\"%s\" target=\"_blank\">manual</a>."
1298
  msgstr ""
1299
 
1300
- #: admin/views/ad-group.php:111
1301
  msgid "Update Groups"
1302
  msgstr ""
1303
 
@@ -3522,73 +3516,75 @@ msgstr ""
3522
 
3523
  #. translators: 1: opening anchor tag for link to adsense account 2: closing anchor tag for link to adsense account
3524
  #: modules/gadsense/admin/views/adsense-account.php:31
 
3525
  msgid "Warning from your %1$sAdSense account%2$s"
3526
  msgstr ""
3527
 
3528
  #. translators: 1: opening anchor tag for link to adsense account 2: closing anchor tag for link to adsense account
3529
  #: modules/gadsense/admin/views/adsense-account.php:31
 
3530
  msgid "AdSense warnings"
3531
  msgstr ""
3532
 
3533
- #: modules/gadsense/admin/views/adsense-account.php:32
3534
- #: modules/gadsense/admin/views/adsense-account.php:78
3535
  msgid "dismiss"
3536
  msgstr ""
3537
 
3538
  #. translators: %s: date and time of last check in the format set in wp_options
3539
- #: modules/gadsense/admin/views/adsense-account.php:64
3540
  msgid "last checked: %s"
3541
  msgstr ""
3542
 
3543
- #: modules/gadsense/admin/views/adsense-account.php:90
3544
  msgid "Revoke API acccess"
3545
  msgstr ""
3546
 
3547
- #: modules/gadsense/admin/views/adsense-account.php:96
3548
  msgid "Account holder name"
3549
  msgstr ""
3550
 
3551
- #: modules/gadsense/admin/views/adsense-account.php:99
3552
  #: modules/gadsense/includes/class-ad-type-adsense.php:91
3553
  msgid "The Publisher ID has an incorrect format. (must start with \"pub-\")"
3554
  msgstr ""
3555
 
3556
- #: modules/gadsense/admin/views/adsense-account.php:101
3557
  msgid "Your AdSense Publisher ID <em>(pub-xxxxxxxxxxxxxx)</em>"
3558
  msgstr ""
3559
 
3560
- #: modules/gadsense/admin/views/adsense-account.php:108
3561
  msgid "Yes, I have an AdSense account"
3562
  msgstr ""
3563
 
3564
- #: modules/gadsense/admin/views/adsense-account.php:110
3565
  msgid "Configure everything manually"
3566
  msgstr ""
3567
 
3568
- #: modules/gadsense/admin/views/adsense-account.php:113
3569
  msgid "No, I still don't have an AdSense account"
3570
  msgstr ""
3571
 
3572
- #: modules/gadsense/admin/views/adsense-account.php:114
3573
  msgid "Get a free AdSense account"
3574
  msgstr ""
3575
 
3576
  #. translators: %1$s is an opening a tag, %2$s is the closing one
3577
- #: modules/gadsense/admin/views/adsense-account.php:120
3578
- #: modules/gadsense/admin/views/adsense-account.php:212
3579
  msgid "See all %1$srecommended ad networks%2$s."
3580
  msgstr ""
3581
 
3582
- #: modules/gadsense/admin/views/adsense-account.php:186
3583
  msgid "How to choose specific positions for AdSense ad units"
3584
  msgstr ""
3585
 
3586
  #. translators: %1$s is the opening link tag to our manual; %2$s is the appropriate closing link tag; %3$s is the opening link tag to our help forum; %4$s is the appropriate closing link tag
3587
- #: modules/gadsense/admin/views/adsense-account.php:194
3588
  msgid "Problems with AdSense? Check out the %1$smanual%2$s or %3$sask here%4$s."
3589
  msgstr ""
3590
 
3591
- #: modules/gadsense/admin/views/adsense-account.php:226
3592
  #: modules/gadsense/admin/views/external-ads-links.php:38
3593
  msgid "Can not connect AdSense account. PHP version is too low."
3594
  msgstr ""
@@ -4334,7 +4330,7 @@ msgstr ""
4334
  msgid "Parent Ad"
4335
  msgstr ""
4336
 
4337
- #: public/class-advanced-ads.php:984
4338
  msgctxt "label above ads"
4339
  msgid "Advertisements"
4340
  msgstr ""
2
  # This file is distributed under the GPL-2.0+.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Advanced Ads 1.34.0\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/advanced-ads/\n"
7
  "Last-Translator: Thomas Maier <post@webzunft.de>\n"
8
  "Language-Team: webgilde <support@wpadvancedads.com>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-05-24T08:25:52+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: advanced-ads\n"
299
  msgid "show %d more ads"
300
  msgstr ""
301
 
302
+ #: admin/includes/class-ad-groups-list.php:234
 
 
 
 
 
 
 
 
 
303
  msgid "No ads assigned"
304
  msgstr ""
305
 
306
+ #: admin/includes/class-ad-groups-list.php:236
307
  msgid "Add some"
308
  msgstr ""
309
 
310
+ #. translators: amount of ads displayed
311
+ #: admin/includes/class-ad-groups-list.php:264
312
+ msgid "Up to %d ad displayed."
313
+ msgid_plural "Up to %d ads displayed"
314
+ msgstr[0] ""
315
+ msgstr[1] ""
316
+
317
+ #: admin/includes/class-ad-groups-list.php:334
318
  msgid "Random ads"
319
  msgstr ""
320
 
321
+ #: admin/includes/class-ad-groups-list.php:335
322
  msgid "Display random ads based on ad weight"
323
  msgstr ""
324
 
325
+ #: admin/includes/class-ad-groups-list.php:338
326
  msgid "Ordered ads"
327
  msgstr ""
328
 
329
+ #: admin/includes/class-ad-groups-list.php:339
330
  msgid "Display ads with the highest ad weight first"
331
  msgstr ""
332
 
333
+ #: admin/includes/class-ad-groups-list.php:358
334
  #: admin/views/placements.php:268
335
  #: modules/import-export/classes/import.php:153
336
  #: modules/import-export/classes/import.php:193
339
  msgid "Edit"
340
  msgstr ""
341
 
342
+ #: admin/includes/class-ad-groups-list.php:359
343
  #: admin/views/placements.php:299
344
  msgid "Usage"
345
  msgstr ""
346
 
347
+ #: admin/includes/class-ad-groups-list.php:368
348
  #: admin/views/placements.php:10
349
  msgid "Delete"
350
  msgstr ""
351
 
352
+ #: admin/includes/class-ad-groups-list.php:390
353
+ #: admin/includes/class-ad-groups-list.php:460
354
  msgid "Invalid Ad Group"
355
  msgstr ""
356
 
357
+ #: admin/includes/class-ad-groups-list.php:395
358
+ #: admin/includes/class-ad-groups-list.php:465
359
  msgid "You don’t have permission to change the ad groups"
360
  msgstr ""
361
 
362
+ #: admin/includes/class-ad-groups-list.php:429
363
  msgid "No ad group created"
364
  msgstr ""
365
 
379
  msgstr ""
380
 
381
  #. translators: %s is the number of ads.
382
+ #: admin/includes/class-ad-type.php:438
383
  msgid "%s ad updated."
384
  msgid_plural "%s ads updated."
385
  msgstr[0] ""
386
  msgstr[1] ""
387
 
388
  #. translators: %s is the number of ads.
389
+ #: admin/includes/class-ad-type.php:440
390
  msgid "%s ad not updated, somebody is editing it."
391
  msgid_plural "%s ads not updated, somebody is editing them."
392
  msgstr[0] ""
393
  msgstr[1] ""
394
 
395
  #. translators: %s is the number of ads.
396
+ #: admin/includes/class-ad-type.php:442
397
  msgid "%s ad permanently deleted."
398
  msgid_plural "%s ads permanently deleted."
399
  msgstr[0] ""
400
  msgstr[1] ""
401
 
402
  #. translators: %s is the number of ads.
403
+ #: admin/includes/class-ad-type.php:444
404
  msgid "%s ad moved to the Trash."
405
  msgid_plural "%s ads moved to the Trash."
406
  msgstr[0] ""
407
  msgstr[1] ""
408
 
409
  #. translators: %s is the number of ads.
410
+ #: admin/includes/class-ad-type.php:446
411
  msgid "%s ad restored from the Trash."
412
  msgid_plural "%s ads restored from the Trash."
413
  msgstr[0] ""
414
  msgstr[1] ""
415
 
416
  #. Translators: %s is the time the ad was first saved.
417
+ #: admin/includes/class-ad-type.php:687
418
  msgid "Ad created on %s"
419
  msgstr ""
420
 
 
421
  #: admin/includes/class-ad-type.php:879
422
+ #: admin/includes/class-ad-type.php:880
423
  msgid "Ad updated."
424
  msgstr ""
425
 
426
  #. translators: %s: date and time of the revision
427
+ #: admin/includes/class-ad-type.php:881
428
  msgid "Ad restored to revision from %s"
429
  msgstr ""
430
 
 
431
  #: admin/includes/class-ad-type.php:882
432
+ #: admin/includes/class-ad-type.php:883
433
  msgid "Ad saved."
434
  msgstr ""
435
 
436
+ #: admin/includes/class-ad-type.php:884
437
  msgid "Ad submitted."
438
  msgstr ""
439
 
440
  #. translators: %1$s is a date.
441
+ #: admin/includes/class-ad-type.php:887
442
  msgid "Ad scheduled for: <strong>%1$s</strong>."
443
  msgstr ""
444
 
445
  #. translators: Publish box date format, see http://php.net/date.
446
+ #: admin/includes/class-ad-type.php:889
447
  msgid "M j, Y @ G:i"
448
  msgstr ""
449
 
450
+ #: admin/includes/class-ad-type.php:891
451
  msgid "Ad draft updated."
452
  msgstr ""
453
 
454
+ #: admin/includes/class-ad-type.php:947
455
  msgid "You don’t have access to ads. Please deactivate and re-enable Advanced Ads again to fix this."
456
  msgstr ""
457
 
458
+ #: admin/includes/class-ad-type.php:948
459
  #: classes/frontend_checks.php:503
460
  msgid "Get help"
461
  msgstr ""
579
  #: admin/includes/class-menu.php:99
580
  #: admin/includes/class-menu.php:110
581
  #: admin/includes/class-menu.php:111
582
+ #: admin/includes/class-meta-box.php:513
583
  msgid "Dashboard"
584
  msgstr ""
585
 
689
  msgid "Statistics"
690
  msgstr ""
691
 
692
+ #: admin/includes/class-meta-box.php:202
693
+ #: admin/includes/class-meta-box.php:221
694
+ #: admin/includes/class-meta-box.php:226
695
  #: admin/includes/class-overview-widgets.php:179
696
  #: admin/views/ad-main-metabox.php:29
697
  #: admin/views/ad-output-metabox.php:65
703
  msgid "Manual"
704
  msgstr ""
705
 
706
+ #: admin/includes/class-meta-box.php:220
707
  msgid "Video"
708
  msgstr ""
709
 
710
+ #: admin/includes/class-meta-box.php:253
711
  #: admin/includes/class-overview-widgets.php:61
712
  msgid "Disable"
713
  msgstr ""
714
 
715
+ #: admin/includes/class-meta-box.php:414
716
  msgid "Ad Settings"
717
  msgstr ""
718
 
719
  #. translators: %1$d is the number of ads, %2$s and %3$s are URLs.
720
+ #: admin/includes/class-meta-box.php:529
721
  msgid "%1$d ads – <a href=\"%2$s\">manage</a> - <a href=\"%3$s\">new</a>"
722
  msgstr ""
723
 
724
+ #: admin/includes/class-meta-box.php:542
725
  msgid "Get the tutorial via email"
726
  msgstr ""
727
 
728
+ #: admin/includes/class-meta-box.php:551
729
  msgid "Get AdSense tips via email"
730
  msgstr ""
731
 
732
+ #: admin/includes/class-meta-box.php:560
733
  msgid "Visit our blog for more articles about ad optimization"
734
  msgstr ""
735
 
736
  #. translators: %s is our URL.
737
+ #: admin/includes/class-meta-box.php:614
738
  msgid "Latest posts on wpadvancedads.com"
739
  msgstr ""
740
 
767
  msgstr ""
768
 
769
  #: admin/includes/class-overview-widgets.php:118
770
+ #: modules/gadsense/admin/views/adsense-account.php:98
771
+ #: modules/gadsense/admin/views/adsense-account.php:120
772
  msgid "Connect to AdSense"
773
  msgstr ""
774
 
1266
  msgid "ID: %s"
1267
  msgstr ""
1268
 
1269
+ #: admin/views/ad-group.php:30
1270
  msgid "Ad Group successfully created"
1271
  msgstr ""
1272
 
1273
+ #: admin/views/ad-group.php:43
1274
  msgid "Ad Groups successfully updated"
1275
  msgstr ""
1276
 
1277
+ #: admin/views/ad-group.php:68
 
 
 
 
1278
  msgid "Group title"
1279
  msgstr ""
1280
 
1281
+ #: admin/views/ad-group.php:69
1282
  msgid "save"
1283
  msgstr ""
1284
 
1285
+ #: admin/views/ad-group.php:71
1286
  msgid "Ad Groups are a very flexible method to bundle ads. You can use them to display random ads in the frontend or run split tests, but also just for informational purposes. Not only can an Ad Groups have multiple ads, but an ad can belong to multiple ad groups."
1287
  msgstr ""
1288
 
1289
  #. translators: %s is a URL.
1290
+ #: admin/views/ad-group.php:77
1291
  msgid "Find more information about ad groups in the <a href=\"%s\" target=\"_blank\">manual</a>."
1292
  msgstr ""
1293
 
1294
+ #: admin/views/ad-group.php:121
1295
  msgid "Update Groups"
1296
  msgstr ""
1297
 
3516
 
3517
  #. translators: 1: opening anchor tag for link to adsense account 2: closing anchor tag for link to adsense account
3518
  #: modules/gadsense/admin/views/adsense-account.php:31
3519
+ #: modules/gadsense/admin/views/adsense-account.php:37
3520
  msgid "Warning from your %1$sAdSense account%2$s"
3521
  msgstr ""
3522
 
3523
  #. translators: 1: opening anchor tag for link to adsense account 2: closing anchor tag for link to adsense account
3524
  #: modules/gadsense/admin/views/adsense-account.php:31
3525
+ #: modules/gadsense/admin/views/adsense-account.php:48
3526
  msgid "AdSense warnings"
3527
  msgstr ""
3528
 
3529
+ #: modules/gadsense/admin/views/adsense-account.php:50
3530
+ #: modules/gadsense/admin/views/adsense-account.php:89
3531
  msgid "dismiss"
3532
  msgstr ""
3533
 
3534
  #. translators: %s: date and time of last check in the format set in wp_options
3535
+ #: modules/gadsense/admin/views/adsense-account.php:75
3536
  msgid "last checked: %s"
3537
  msgstr ""
3538
 
3539
+ #: modules/gadsense/admin/views/adsense-account.php:101
3540
  msgid "Revoke API acccess"
3541
  msgstr ""
3542
 
3543
+ #: modules/gadsense/admin/views/adsense-account.php:107
3544
  msgid "Account holder name"
3545
  msgstr ""
3546
 
3547
+ #: modules/gadsense/admin/views/adsense-account.php:110
3548
  #: modules/gadsense/includes/class-ad-type-adsense.php:91
3549
  msgid "The Publisher ID has an incorrect format. (must start with \"pub-\")"
3550
  msgstr ""
3551
 
3552
+ #: modules/gadsense/admin/views/adsense-account.php:112
3553
  msgid "Your AdSense Publisher ID <em>(pub-xxxxxxxxxxxxxx)</em>"
3554
  msgstr ""
3555
 
3556
+ #: modules/gadsense/admin/views/adsense-account.php:119
3557
  msgid "Yes, I have an AdSense account"
3558
  msgstr ""
3559
 
3560
+ #: modules/gadsense/admin/views/adsense-account.php:121
3561
  msgid "Configure everything manually"
3562
  msgstr ""
3563
 
3564
+ #: modules/gadsense/admin/views/adsense-account.php:124
3565
  msgid "No, I still don't have an AdSense account"
3566
  msgstr ""
3567
 
3568
+ #: modules/gadsense/admin/views/adsense-account.php:125
3569
  msgid "Get a free AdSense account"
3570
  msgstr ""
3571
 
3572
  #. translators: %1$s is an opening a tag, %2$s is the closing one
3573
+ #: modules/gadsense/admin/views/adsense-account.php:131
3574
+ #: modules/gadsense/admin/views/adsense-account.php:223
3575
  msgid "See all %1$srecommended ad networks%2$s."
3576
  msgstr ""
3577
 
3578
+ #: modules/gadsense/admin/views/adsense-account.php:197
3579
  msgid "How to choose specific positions for AdSense ad units"
3580
  msgstr ""
3581
 
3582
  #. translators: %1$s is the opening link tag to our manual; %2$s is the appropriate closing link tag; %3$s is the opening link tag to our help forum; %4$s is the appropriate closing link tag
3583
+ #: modules/gadsense/admin/views/adsense-account.php:205
3584
  msgid "Problems with AdSense? Check out the %1$smanual%2$s or %3$sask here%4$s."
3585
  msgstr ""
3586
 
3587
+ #: modules/gadsense/admin/views/adsense-account.php:237
3588
  #: modules/gadsense/admin/views/external-ads-links.php:38
3589
  msgid "Can not connect AdSense account. PHP version is too low."
3590
  msgstr ""
4330
  msgid "Parent Ad"
4331
  msgstr ""
4332
 
4333
+ #: public/class-advanced-ads.php:982
4334
  msgctxt "label above ads"
4335
  msgid "Advertisements"
4336
  msgstr ""
modules/gadsense/admin/assets/js/mapi-settings.js CHANGED
@@ -13,7 +13,7 @@
13
  $div.empty();
14
  if ( alerts.length ) {
15
  var $alertBox = $( '<div class="card advads-notice-block advads-error"/>' );
16
- $alertBox.append( $( '<h3 />' ).text( $div.attr( 'data-heading' ) ) );
17
  var $ul = $( '<ul />' );
18
  for ( var id in alerts.alerts ) {
19
  var msg = alerts.alerts[id].message;
@@ -21,7 +21,7 @@
21
  msg = AdsenseMAPI.alertsMsg[alerts.alerts[id]['id']];
22
  }
23
  $ul.append( $( '<li />' ).html( msg + ' ' +
24
- '<a href="#" class="mapi-dismiss-alert" data-id="' + id + '">' + $div.attr( 'data-dismiss' ) + '</a>' ) );
25
  }
26
  $alertBox.append( $ul );
27
  $div.append( $alertBox );
13
  $div.empty();
14
  if ( alerts.length ) {
15
  var $alertBox = $( '<div class="card advads-notice-block advads-error"/>' );
16
+ $alertBox.append( $( '<h3 />' ).html( AdsenseMAPI.alertsHeadingMsg ) );
17
  var $ul = $( '<ul />' );
18
  for ( var id in alerts.alerts ) {
19
  var msg = alerts.alerts[id].message;
21
  msg = AdsenseMAPI.alertsMsg[alerts.alerts[id]['id']];
22
  }
23
  $ul.append( $( '<li />' ).html( msg + ' ' +
24
+ '<a href="#" class="mapi-dismiss-alert" data-id="' + id + '">' + AdsenseMAPI.alertsDismissMsg + '</a>' ) );
25
  }
26
  $alertBox.append( $ul );
27
  $div.append( $alertBox );
modules/gadsense/admin/views/adsense-account.php CHANGED
@@ -28,26 +28,37 @@ if ( $has_token && isset( $mapi_options['accounts'][ $adsense_id ]['details'] )
28
  $alerts = Advanced_Ads_AdSense_MAPI::get_stored_account_alerts( $adsense_id );
29
 
30
  /* translators: 1: opening anchor tag for link to adsense account 2: closing anchor tag for link to adsense account */
31
- $alerts_heading = $adsense_id ? sprintf( __( 'Warning from your %1$sAdSense account%2$s', 'advanced-ads' ), '<a target="_blank" href="https://www.google.com/adsense/new/u/1/' . $adsense_id . '/">', '</a>' ) : __( 'AdSense warnings', 'advanced-ads' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  $alerts_dismiss = __( 'dismiss', 'advanced-ads' );
33
  $connection_error_messages = Advanced_Ads_AdSense_MAPI::get_connect_error_messages();
34
  $alerts_advads_messages = Advanced_Ads_Adsense_MAPI::get_adsense_alert_messages();
35
 
36
  ?>
37
- <div id="mapi-account-alerts" data-heading="<?php echo esc_attr( $alerts_heading ); ?>" data-dismiss="<?php echo esc_attr( $alerts_dismiss ); ?>">
38
  <?php if ( is_array( $alerts ) && isset( $alerts['items'] ) && is_array( $alerts['items'] ) && $alerts['items'] ) : ?>
39
  <div class="card advads-notice-block advads-error">
40
  <h3>
41
  <?php
42
- echo wp_kses(
43
- $alerts_heading,
44
- array(
45
- 'a' => array(
46
- 'target' => true,
47
- 'href' => true,
48
- ),
49
- )
50
- );
51
  ?>
52
  </h3>
53
  <ul>
@@ -236,7 +247,18 @@ else : ?>
236
  if ( 'undefined' == typeof window.AdsenseMAPI ) {
237
  AdsenseMAPI = {};
238
  }
239
- AdsenseMAPI.alertsMsg = <?php echo json_encode( $alerts_advads_messages ) ?>;
 
 
 
 
 
 
 
 
 
 
 
240
  </script>
241
  <style type="text/css">
242
  #adsense {
28
  $alerts = Advanced_Ads_AdSense_MAPI::get_stored_account_alerts( $adsense_id );
29
 
30
  /* translators: 1: opening anchor tag for link to adsense account 2: closing anchor tag for link to adsense account */
31
+ $alerts_heading = $adsense_id ? sprintf( esc_html__( 'Warning from your %1$sAdSense account%2$s', 'advanced-ads' ), '<a target="_blank" href="https://www.google.com/adsense/new/u/1/' . esc_html( $adsense_id ) . '/">', '</a>' ) : esc_html__( 'AdSense warnings', 'advanced-ads' );
32
+
33
+ $alerts_heading = $adsense_id
34
+ ? wp_kses(
35
+ sprintf(
36
+ /* translators: 1: opening anchor tag for link to adsense account 2: closing anchor tag for link to adsense account */
37
+ __( 'Warning from your %1$sAdSense account%2$s', 'advanced-ads' ),
38
+ '<a target="_blank" href="https://www.google.com/adsense/new/u/1/' . $adsense_id . '/">',
39
+ '</a>'
40
+ ),
41
+ array(
42
+ 'a' => array(
43
+ 'target' => true,
44
+ 'href' => true,
45
+ ),
46
+ )
47
+ )
48
+ : __( 'AdSense warnings', 'advanced-ads' );
49
+
50
  $alerts_dismiss = __( 'dismiss', 'advanced-ads' );
51
  $connection_error_messages = Advanced_Ads_AdSense_MAPI::get_connect_error_messages();
52
  $alerts_advads_messages = Advanced_Ads_Adsense_MAPI::get_adsense_alert_messages();
53
 
54
  ?>
55
+ <div id="mapi-account-alerts">
56
  <?php if ( is_array( $alerts ) && isset( $alerts['items'] ) && is_array( $alerts['items'] ) && $alerts['items'] ) : ?>
57
  <div class="card advads-notice-block advads-error">
58
  <h3>
59
  <?php
60
+ //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- already escaped
61
+ echo $alerts_heading;
 
 
 
 
 
 
 
62
  ?>
63
  </h3>
64
  <ul>
247
  if ( 'undefined' == typeof window.AdsenseMAPI ) {
248
  AdsenseMAPI = {};
249
  }
250
+ AdsenseMAPI = Object.assign(
251
+ AdsenseMAPI,
252
+ <?php
253
+ echo wp_json_encode(
254
+ array(
255
+ 'alertsMsg' => $alerts_advads_messages,
256
+ 'alertsHeadingMsg' => $alerts_heading,
257
+ 'alertsDismissMsg' => wp_kses( $alerts_dismiss, array() ),
258
+ )
259
+ )
260
+ ?>
261
+ );
262
  </script>
263
  <style type="text/css">
264
  #adsense {
modules/gadsense/includes/adsense-report-data.php CHANGED
@@ -247,9 +247,13 @@ class Advanced_Ads_AdSense_Report_Data implements Serializable {
247
  }
248
 
249
  foreach ( $this->earnings as $value ) {
250
- if ( ! empty( $filter ) && $this->type === 'unit' && false === strpos( $value->ad_unit_id, $filter ) ) {
 
 
 
251
  continue;
252
  }
 
253
  if ( $this->date_ymd( $value->date ) === $this->date_ymd( $today ) ) {
254
  $sums['today'] += $value->estimated_earning;
255
  }
247
  }
248
 
249
  foreach ( $this->earnings as $value ) {
250
+ if (
251
+ ( $this->type === 'unit' && false === strpos( $value->ad_unit_id, $filter ) )
252
+ || ( ! empty( $filter ) && $this->type === 'domain' && $filter !== $value->domain_name )
253
+ ) {
254
  continue;
255
  }
256
+
257
  if ( $this->date_ymd( $value->date ) === $this->date_ymd( $today ) ) {
258
  $sums['today'] += $value->estimated_earning;
259
  }
public/class-advanced-ads.php CHANGED
@@ -806,7 +806,7 @@ class Advanced_Ads {
806
  'parent' => __( 'Parent Ad', 'advanced-ads' ),
807
  );
808
 
809
- $supports = array( 'title' );
810
  if ( defined( 'ADVANCED_ADS_ENABLE_REVISIONS' ) ) {
811
  $supports[] = 'revisions';
812
  };
@@ -827,7 +827,6 @@ class Advanced_Ads {
827
  'delete_page' => 'advanced_ads_edit_ads',
828
  // Primitive capabilities used outside of map_meta_cap().
829
  'edit_posts' => 'advanced_ads_edit_ads',
830
- 'edit_others_posts' => 'advanced_ads_edit_ads',
831
  'publish_posts' => 'advanced_ads_edit_ads',
832
  'read_private_posts' => 'advanced_ads_edit_ads',
833
  // Primitive capabilities used within map_meta_cap().
@@ -835,7 +834,6 @@ class Advanced_Ads {
835
  'delete_posts' => 'advanced_ads_edit_ads',
836
  'delete_private_posts' => 'advanced_ads_edit_ads',
837
  'delete_published_posts' => 'advanced_ads_edit_ads',
838
- 'delete_others_posts' => 'advanced_ads_edit_ads',
839
  'edit_private_posts' => 'advanced_ads_edit_ads',
840
  'edit_published_posts' => 'advanced_ads_edit_ads',
841
  'create_posts' => 'advanced_ads_edit_ads',
806
  'parent' => __( 'Parent Ad', 'advanced-ads' ),
807
  );
808
 
809
+ $supports = array( 'title', 'author' );
810
  if ( defined( 'ADVANCED_ADS_ENABLE_REVISIONS' ) ) {
811
  $supports[] = 'revisions';
812
  };
827
  'delete_page' => 'advanced_ads_edit_ads',
828
  // Primitive capabilities used outside of map_meta_cap().
829
  'edit_posts' => 'advanced_ads_edit_ads',
 
830
  'publish_posts' => 'advanced_ads_edit_ads',
831
  'read_private_posts' => 'advanced_ads_edit_ads',
832
  // Primitive capabilities used within map_meta_cap().
834
  'delete_posts' => 'advanced_ads_edit_ads',
835
  'delete_private_posts' => 'advanced_ads_edit_ads',
836
  'delete_published_posts' => 'advanced_ads_edit_ads',
 
837
  'edit_private_posts' => 'advanced_ads_edit_ads',
838
  'edit_published_posts' => 'advanced_ads_edit_ads',
839
  'create_posts' => 'advanced_ads_edit_ads',
public/views/ad-debug.php CHANGED
@@ -5,5 +5,5 @@ endif; ?>
5
  <div id="<?php echo $wrapper_id; ?>" style="<?php echo $style; ?>">
6
  <strong><?php _e( 'Ad debug output', 'advanced-ads' ); ?></strong>
7
  <?php echo '<br /><br />' . implode( '<br /><br />', $content ); ?>
8
- <br /><br /><a style="color: green;" href="<?php echo esc_url( ADVADS_URL ); ?>manual/ad-debug-mode/?utm_source=advanced-ads&utm_medium=link&utm_campaign=ad-debug-mode" target="_blank"><?php esc_html_e( 'Find solutions in the manual', 'advanced-ads' ); ?></a>
9
  </div>
5
  <div id="<?php echo $wrapper_id; ?>" style="<?php echo $style; ?>">
6
  <strong><?php _e( 'Ad debug output', 'advanced-ads' ); ?></strong>
7
  <?php echo '<br /><br />' . implode( '<br /><br />', $content ); ?>
8
+ <br /><br /><a style="color: green;" href="<?php echo esc_url( ADVADS_URL ); ?>manual/ad-debug-mode/?utm_source=advanced-ads&utm_medium=link&utm_campaign=ad-debug-mode" target="_blank" rel="nofollow"><?php esc_html_e( 'Find solutions in the manual', 'advanced-ads' ); ?></a>
9
  </div>
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: webzunft, advancedads
3
  Tags: ads, adsense, amp, ads.txt, ad rotations, ad blocker, amazon, banner, click fraud protection, google ad manager, header code, lazy loading,
4
  Requires at least: 4.9
5
- Tested up to: 5.9
6
  Requires PHP: 5.6
7
- Stable tag: 1.33.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -294,6 +294,10 @@ Just use their shortcodes in our "Rich Media" ad type to combine both features.
294
  Works with AdRotate, Ad Inserter, Ad Injection, Quick AdSense, Quick AdSense Reloaded (WPQUADS), Simple Ads Manager, and other plugins.
295
  Advanced Ads can be used along Google Site Kit or replace it if you need more control over your ad setup.
296
 
 
 
 
 
297
  = Is the plugin compatible with page builders? =
298
 
299
  Yes. It works out of the box with all site builders that allow shortcodes or widgets, like [Elementor](https://wpadvancedads.com/elementor-ads/), SiteOrigin, [Beaver Builder](https://wpadvancedads.com/beaver-builder-ads/), WPBakery Page Builder (formerly Visual Composer), [Nimble Page Builder](https://wordpress.org/plugins/nimble-builder/), and others.
@@ -330,6 +334,17 @@ Yes. You can use plenty of [hooks](https://wpadvancedads.com/codex/) to customiz
330
 
331
  == Changelog ==
332
 
 
 
 
 
 
 
 
 
 
 
 
333
  = 1.33.2 (April 21, 2022) =
334
 
335
  - Fix: disable external XML entity loading only when libxml is less than 2.9.0
2
  Contributors: webzunft, advancedads
3
  Tags: ads, adsense, amp, ads.txt, ad rotations, ad blocker, amazon, banner, click fraud protection, google ad manager, header code, lazy loading,
4
  Requires at least: 4.9
5
+ Tested up to: 6.0
6
  Requires PHP: 5.6
7
+ Stable tag: 1.34.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
294
  Works with AdRotate, Ad Inserter, Ad Injection, Quick AdSense, Quick AdSense Reloaded (WPQUADS), Simple Ads Manager, and other plugins.
295
  Advanced Ads can be used along Google Site Kit or replace it if you need more control over your ad setup.
296
 
297
+ = Is the plugin compatible with PHP 8? =
298
+
299
+ Yes, Advanced Ads supports current PHP versions and has been successfully tested on servers running PHP 8.
300
+
301
  = Is the plugin compatible with page builders? =
302
 
303
  Yes. It works out of the box with all site builders that allow shortcodes or widgets, like [Elementor](https://wpadvancedads.com/elementor-ads/), SiteOrigin, [Beaver Builder](https://wpadvancedads.com/beaver-builder-ads/), WPBakery Page Builder (formerly Visual Composer), [Nimble Page Builder](https://wordpress.org/plugins/nimble-builder/), and others.
334
 
335
  == Changelog ==
336
 
337
+ = 1.34.0 (May 24, 2022) =
338
+
339
+ - Improvement: add a nofollow attribute to the manual link in the ad debug output
340
+ - Improvement: add `advanced-ads-group-displayed-ad-count` filter to allow add-ons to show the right amount of displayed ads on the group screen
341
+ - Improvement: add authors for ads
342
+ - Improvement: always register the Advanced JavaScript file
343
+ - Fix: prevent possible PHP error happening when using UpSolution Core plugin
344
+ - Fix: display link to AdSense account that contains warnings correctly
345
+ - Fix: restore the group search form
346
+ - Fix: ensure that the AdSense revenues can be shown separately by domain on the Advanced Ads dashboard
347
+
348
  = 1.33.2 (April 21, 2022) =
349
 
350
  - Fix: disable external XML entity loading only when libxml is less than 2.9.0