ad-health-notices.php
1 month ago
class-ad-network-ad-unit.php
3 weeks ago
class-ad-network.php
3 weeks ago
class-licenses.php
3 weeks ago
class-notices.php
3 weeks ago
class-overview-widgets.php
3 weeks ago
class-plugins-screen-updates.php
3 weeks ago
notices.php
3 weeks ago
ad-health-notices.php
525 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Array with ad health messages |
| 4 | * |
| 5 | * Attribute: type |
| 6 | * - "notice" (default, recommendation, etc.) |
| 7 | * - "problem" (critical) |
| 8 | * |
| 9 | * attribute: can_hide |
| 10 | * (user can see a button to hide this warning, default: true) |
| 11 | * |
| 12 | * attribute: hide |
| 13 | * (how to handle click on "hide" button) |
| 14 | * - true (default, hide the item) |
| 15 | * - false (remove the item completely from list of notifications) |
| 16 | * |
| 17 | * attribute: timeout |
| 18 | * (for how long to hide/ignore the message in seconds.) |
| 19 | * - default: empty |
| 20 | * |
| 21 | * attribute: get_help_link |
| 22 | * (enter URL, if exists, will add a link after the message) |
| 23 | * |
| 24 | * @package AdvancedAds |
| 25 | * @author Advanced Ads <info@wpadvancedads.com> |
| 26 | * @since 1.x.x |
| 27 | */ |
| 28 | |
| 29 | $advanced_ads_ad_health_notices = apply_filters( |
| 30 | 'advanced-ads-ad-health-notices', |
| 31 | [ |
| 32 | // old PHP version |
| 33 | // checked using Advanced_Ads_Checks::php_version_minimum(). |
| 34 | 'old_php' => [ |
| 35 | 'text' => sprintf( |
| 36 | /* translators: %1$s is a version number */ |
| 37 | __( 'Your <strong>PHP version (%1$s) is too low</strong>. Advanced Ads is built for PHP %2$s and higher. It might work, but updating PHP is highly recommended. Please ask your hosting provider for more information.', 'advanced-ads' ), |
| 38 | phpversion(), |
| 39 | Advanced_Ads_Checks::MINIMUM_PHP_VERSION |
| 40 | ), |
| 41 | 'type' => 'problem', |
| 42 | ], |
| 43 | // conflicting plugins found |
| 44 | // Advanced_Ads_Checks::conflicting_plugins(). |
| 45 | 'conflicting_plugins' => [ |
| 46 | 'text' => sprintf( |
| 47 | /* translators: %1$s is a list of plugin names; %2$s is a target URL */ |
| 48 | __( 'Plugins that are known to cause (partial) problems: <strong>%1$s</strong>. <a href="%2$s" target="_blank">Learn more</a>.', 'advanced-ads' ), |
| 49 | implode( ', ', Advanced_Ads_Checks::conflicting_plugins() ), |
| 50 | 'https://wpadvancedads.com/manual/known-plugin-conflicts/?utm_source=advanced-ads&utm_medium=link&utm_campaign=error-plugin-conflicts' |
| 51 | ), |
| 52 | 'type' => 'problem', |
| 53 | ], |
| 54 | // PHP extensions missing |
| 55 | // Advanced_Ads_Checks::php_extensions(). |
| 56 | 'php_extensions_missing' => [ |
| 57 | 'text' => sprintf( |
| 58 | /* translators: %s is a list of PHP extensions */ |
| 59 | __( 'Missing PHP extensions could cause issues. Please ask your hosting provider to enable them: %s', 'advanced-ads' ), |
| 60 | implode( ', ', Advanced_Ads_Checks::php_extensions() ) |
| 61 | ), |
| 62 | 'type' => 'problem', |
| 63 | ], |
| 64 | // ads are disabled |
| 65 | // Advanced_Ads_Checks::ads_disabled(). |
| 66 | 'ads_disabled' => [ |
| 67 | 'text' => sprintf( |
| 68 | /* translators: %s is a target URL */ |
| 69 | __( 'Ads are disabled for all or some pages. See "disabled ads" in <a href="%s">settings</a>.', 'advanced-ads' ), |
| 70 | admin_url( 'admin.php?page=advanced-ads-settings#top#general' ) |
| 71 | ), |
| 72 | 'type' => 'problem', |
| 73 | ], |
| 74 | // check if Advanced Ads related constants are enabled |
| 75 | // Advanced_Ads_Checks::get_defined_constants(). |
| 76 | 'constants_enabled' => [ |
| 77 | 'text' => '<a href="' . admin_url( 'admin.php?page=advanced-ads-settings#top#support' ) . '">' . esc_html__( 'Advanced Ads related constants enabled', 'advanced-ads' ) . '</a>', |
| 78 | 'type' => 'notice', |
| 79 | ], |
| 80 | // adblocker assets expired |
| 81 | // Advanced_Ads_Checks::assets_expired(). |
| 82 | 'assets_expired' => [ |
| 83 | 'text' => sprintf( |
| 84 | /* translators: %s is a target URL */ |
| 85 | __( 'Some assets were changed. Please <strong>rebuild the asset folder</strong> in the <a href="%s">Advanced Ads settings</a> to update the ad blocker disguise.', 'advanced-ads' ), |
| 86 | admin_url( 'admin.php?page=advanced-ads-settings' ) |
| 87 | ), |
| 88 | 'type' => 'problem', |
| 89 | 'hide' => true, |
| 90 | ], |
| 91 | // missing license codes |
| 92 | // Advanced_Ads_Checks::license_invalid(). |
| 93 | 'license_invalid' => [ |
| 94 | 'text' => __( 'One or more license keys for <strong>Advanced Ads add-ons are invalid or missing</strong>.', 'advanced-ads' ) . ' ' |
| 95 | . sprintf( |
| 96 | /* translators: %s is a target URL. */ |
| 97 | __( 'Please add valid license keys <a href="%s">here</a>.', 'advanced-ads' ), |
| 98 | \AdvancedAds\License\License_Utils::admin_screen_url() |
| 99 | ), |
| 100 | 'type' => 'problem', |
| 101 | 'hide' => false, |
| 102 | 'timeout' => WEEK_IN_SECONDS, |
| 103 | ], |
| 104 | // an individual ad expired. |
| 105 | 'ad_expired' => [ |
| 106 | 'text' => __( 'Ad expired', 'advanced-ads' ) . ': ', |
| 107 | 'type' => 'notice', |
| 108 | 'hide' => false, |
| 109 | ], |
| 110 | // a visible ad is used in <head> tags |
| 111 | // is checked in the frontend by Ad Health in Advanced_Ads_Frontend_Checks::can_use_head_placement(). |
| 112 | 'ad_with_output_in_head' => [ |
| 113 | // we keep the %s here and replace it with an empty string, because we use it somewhere else and don’t want to create a new string that is basically the same. |
| 114 | 'text' => sprintf( |
| 115 | /* translators: %s is empty here, but the string will be followed by a name of an ad unit. */ |
| 116 | __( 'Visible ads should not use the Header placement: %s', 'advanced-ads' ), |
| 117 | '' |
| 118 | ), |
| 119 | 'type' => 'notice', |
| 120 | 'hide' => false, |
| 121 | 'get_help_link' => 'https://wpadvancedads.com/manual/ad-health/?utm_source=advanced-ads&utm_medium=link&utm_campaign=error-visible-ad-in-header#header-ads', |
| 122 | 'timeout' => YEAR_IN_SECONDS, |
| 123 | ], |
| 124 | // Ad has HTTP, but site uses HTTPS |
| 125 | // check in Ad Health in frontend. |
| 126 | 'ad_has_http' => [ |
| 127 | 'text' => __( 'Your website is using HTTPS, but the ad code contains HTTP and might not work.', 'advanced-ads' ), |
| 128 | 'type' => 'notice', |
| 129 | 'hide' => false, |
| 130 | 'get_help_link' => 'https://wpadvancedads.com/manual/ad-health/?utm_source=advanced-ads&utm_medium=link&utm_campaign=error-https-ads#https-ads', |
| 131 | ], |
| 132 | // dummy text for general AdSense issue. |
| 133 | 'adsense_issue' => [ |
| 134 | // we keep the %s here and replace it with an empty string, because we use it somewhere else and don’t want to create a new string that is basically the same. |
| 135 | 'text' => __( 'AdSense issue', 'advanced-ads' ), |
| 136 | 'type' => 'problem', |
| 137 | ], |
| 138 | // AdSense connection error: disapproved account. |
| 139 | 'adsense_connect_disapprovedAccount' => [ |
| 140 | 'text' => __( 'Last AdSense account connection attempt failed.', 'advanced-ads' ) . ' ' . __( 'Your account was not approved by AdSense.', 'advanced-ads' ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'disapprovedAccount' ), |
| 141 | 'type' => 'problem', |
| 142 | 'hide' => false, |
| 143 | ], |
| 144 | // AdSense connection error: no adsense account. |
| 145 | 'adsense_connect_noAdSenseAccount' => [ |
| 146 | 'text' => sprintf( |
| 147 | __( 'Last AdSense account connection attempt failed.', 'advanced-ads' ) . ' ' . |
| 148 | /* translators: %1$s is the opening a tag and %2$s the closing one. */ |
| 149 | __( 'Create a new AdSense account %1$shere%2$s.', 'advanced-ads' ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'noAdSenseAccount' ), |
| 150 | '<a href="https://www.google.com/adsense/start/?utm_source=AdvancedAdsPlugIn&utm_medium=partnerships&utm_campaign=AdvancedAdsPartner1" target="_blank">', |
| 151 | '</a>' |
| 152 | ), |
| 153 | 'type' => 'problem', |
| 154 | 'hide' => false, |
| 155 | ], |
| 156 | // AdSense account alert. Missing ads.txt – version 1. |
| 157 | 'adsense_alert_ALERT_TYPE_ADS_TXT_UNAUTHORIZED' => [ |
| 158 | 'text' => sprintf( |
| 159 | __( 'One of your sites is missing the AdSense publisher ID in the ads.txt file.', 'advanced-ads' ) |
| 160 | . ' <a class="advads-settings-link" href="%s">' |
| 161 | . _x( 'Create one now.', 'related to ads.txt file', 'advanced-ads' ) . '</a>', |
| 162 | admin_url( 'admin.php?page=advanced-ads-settings#general__advads-ads-txt' ) |
| 163 | ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'ALERT_TYPE_ADS_TXT_UNAUTHORIZED' ), |
| 164 | 'type' => 'problem', |
| 165 | ], |
| 166 | // AdSense account alert. . Missing ads.txt – version 2. |
| 167 | 'adsense_alert_ADS_TXT_MISSING' => [ |
| 168 | 'text' => sprintf( |
| 169 | __( 'One of your sites is missing the AdSense publisher ID in the ads.txt file.', 'advanced-ads' ) |
| 170 | . ' <a class="advads-settings-link" href="%s">' |
| 171 | . _x( 'Create one now.', 'related to ads.txt file', 'advanced-ads' ) . '</a>', |
| 172 | admin_url( 'admin.php?page=advanced-ads-settings#general__advads-ads-txt' ) |
| 173 | ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'ADS_TXT_MISSING' ), |
| 174 | 'type' => 'problem', |
| 175 | ], |
| 176 | // AdSense account alert. . Missing ads.txt – version 3. |
| 177 | 'adsense_alert_ADS_TXT_ISSUES' => [ |
| 178 | 'text' => sprintf( |
| 179 | __( 'One of your sites is missing the AdSense publisher ID in the ads.txt file.', 'advanced-ads' ) |
| 180 | . ' <a class="advads-settings-link" href="%s">' |
| 181 | . _x( 'Create one now.', 'related to ads.txt file', 'advanced-ads' ) . '</a>', |
| 182 | admin_url( 'admin.php?page=advanced-ads-settings#general__advads-ads-txt' ) |
| 183 | ) . ' ' . Advanced_Ads_Ad_Health_Notices::get_adsense_error_link( 'ADS_TXT_ISSUES' ), |
| 184 | 'type' => 'problem', |
| 185 | ], |
| 186 | |
| 187 | // AdSense deprecated link units. |
| 188 | 'adsense_link_units_deprecated' => [ |
| 189 | 'text' => __( 'Google AdSense deprecated Link Units. Please choose another format.', 'advanced-ads' ) |
| 190 | . ' <a href="https://wpadvancedads.com/adsense-link-units/" target="_blank" rel="noopener">' |
| 191 | . esc_html__( 'Learn more', 'advanced-ads' ) |
| 192 | . '</a>', |
| 193 | 'type' => 'problem', |
| 194 | ], |
| 195 | 'nested_the_content_filters' => [ |
| 196 | 'text' => sprintf( |
| 197 | /* translators: %s is a filter hook, here `the_content`. */ |
| 198 | __( '<strong>%s</strong> filter found multiple times.', 'advanced-ads' ), |
| 199 | 'the_content' |
| 200 | ) . ' ' . __( 'Advanced Ads uses the outermost of them.', 'advanced-ads' ), |
| 201 | 'get_help_link' => 'https://wpadvancedads.com/manual/ad-health/?utm_source=advanced-ads&utm_medium=link&utm_campaign=error-multiple-the-content#the_content_filter_found_multiple_times', |
| 202 | 'type' => 'notice', |
| 203 | 'hide' => false, |
| 204 | ], |
| 205 | // BuddyPress installed. |
| 206 | 'buddypress_no_pro' => [ |
| 207 | 'text' => sprintf( |
| 208 | /* translators: %1$s is a plugin name, %2$s is the opening a tag and %3$s the closing one. */ |
| 209 | __( 'Learn how to integrate %1$s with Advanced Ads %2$shere%3$s.', 'advanced-ads' ), |
| 210 | '<strong>BuddyPress</strong>', |
| 211 | '<a href="https://wpadvancedads.com/ads-on-buddypress-pages/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-buddypress" target="_blank">', |
| 212 | '</a>' |
| 213 | ), |
| 214 | 'type' => 'notice', |
| 215 | 'hide' => false, |
| 216 | ], |
| 217 | // BuddyBoss installed. |
| 218 | 'buddyboss_no_pro' => [ |
| 219 | 'text' => sprintf( |
| 220 | /* translators: %1$s is a plugin name, %2$s is the opening a tag and %3$s the closing one. */ |
| 221 | __( 'Learn how to integrate %1$s with Advanced Ads %2$shere%3$s.', 'advanced-ads' ), |
| 222 | '<strong>BuddyBoss</strong>', |
| 223 | '<a href="https://wpadvancedads.com/manual/buddyboss-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-buddyboss" target="_blank">', |
| 224 | '</a>' |
| 225 | ), |
| 226 | 'type' => 'pitch', |
| 227 | 'hide' => false, |
| 228 | ], |
| 229 | // bbPress installed. |
| 230 | 'bbpress_no_pro' => [ |
| 231 | 'text' => sprintf( |
| 232 | /* translators: %1$s is a plugin name, %2$s is the opening a tag and %3$s the closing one. */ |
| 233 | __( 'Learn how to integrate %1$s with Advanced Ads %2$shere%3$s.', 'advanced-ads' ), |
| 234 | '<strong>bbPress</strong>', |
| 235 | '<a href="https://wpadvancedads.com/ads-in-bbpress/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-bbpress" target="_blank">', |
| 236 | '</a>' |
| 237 | ), |
| 238 | 'type' => 'notice', |
| 239 | 'hide' => false, |
| 240 | ], |
| 241 | // WPML plugin activated. |
| 242 | 'WPML_active' => [ |
| 243 | 'text' => sprintf( |
| 244 | /* translators: %1$s is a plugin name, %2$s is the opening a tag and %3$s the closing one. */ |
| 245 | __( 'Learn how to integrate %1$s with Advanced Ads %2$shere%3$s.', 'advanced-ads' ), |
| 246 | '<strong>WPML</strong>', |
| 247 | '<a href="https://wpadvancedads.com/translating-ads-wpml/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-WPML" target="_blank">', |
| 248 | '</a>' |
| 249 | ), |
| 250 | 'type' => 'notice', |
| 251 | 'hide' => false, |
| 252 | 'timeout' => YEAR_IN_SECONDS, |
| 253 | ], |
| 254 | // AMP and Accelerated Mobile Pages plugins. |
| 255 | 'AMP_active' => [ |
| 256 | 'text' => sprintf( |
| 257 | /* translators: %1$s is a plugin name, %2$s is the opening a tag and %3$s the closing one. */ |
| 258 | __( 'Learn how to integrate %1$s with Advanced Ads %2$shere%3$s.', 'advanced-ads' ), |
| 259 | '<strong>AMP</strong>', |
| 260 | '<a href="https://wpadvancedads.com/manual/ads-on-amp-pages/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-amp" target="_blank">', |
| 261 | '</a>' |
| 262 | ), |
| 263 | 'type' => 'notice', |
| 264 | 'hide' => false, |
| 265 | 'timeout' => YEAR_IN_SECONDS, |
| 266 | ], |
| 267 | // Hosting on WP Engine |
| 268 | // Advanced_Ads_Checks::wp_engine_hosting(). |
| 269 | 'wpengine' => [ |
| 270 | 'text' => sprintf( |
| 271 | /* translators: %s is a service or plugin name */ |
| 272 | '<strong>' . __( '%s detected.', 'advanced-ads' ) . '</strong>' |
| 273 | . ' <a href="https://wpadvancedads.com/wp-engine-and-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-wpengine">' . __( 'Learn how this might impact your ad setup.', 'advanced-ads' ) . '</a>', |
| 274 | 'WP Engine' |
| 275 | ), |
| 276 | 'type' => 'notice', |
| 277 | 'hide' => false, |
| 278 | 'timeout' => YEAR_IN_SECONDS, |
| 279 | ], |
| 280 | // Notice about existing ads.txt plugins. |
| 281 | // Advanced_Ads_Checks::ads_txt_plugins(). |
| 282 | 'ads_txt_plugins_enabled' => [ |
| 283 | 'text' => sprintf( |
| 284 | /* translators: %s removable ads.txt plugins */ |
| 285 | __( 'Advanced Ads handles your ads.txt file automatically. You might be able to <strong>remove %1$s</strong>.', 'advanced-ads' ), |
| 286 | implode( ', ', Advanced_Ads_Checks::ads_txt_plugins() ) |
| 287 | ), |
| 288 | 'type' => 'notice', |
| 289 | 'hide' => false, |
| 290 | 'timeout' => YEAR_IN_SECONDS, |
| 291 | ], |
| 292 | // Notice about plugins that add header or footer code. |
| 293 | // Advanced_Ads_Checks::header_footer_plugins(). |
| 294 | 'header_footer_plugins_enabled' => [ |
| 295 | 'text' => |
| 296 | __( 'Advanced Ads handles header and footer codes.', 'advanced-ads' ) . ' ' . |
| 297 | sprintf( |
| 298 | /* translators: %s removable header and footer plugins */ |
| 299 | __( 'You might be able to <strong>remove %1$s</strong>.', 'advanced-ads' ), |
| 300 | implode( ', ', Advanced_Ads_Checks::header_footer_plugins() ) |
| 301 | ) . ' ' . |
| 302 | '<a href="https://wpadvancedads.com/add-header-and-footer-code-wordpress/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-header-footer" target="_blank">' . __( 'Learn how.', 'advanced-ads' ) . '</a>', |
| 303 | 'type' => 'notice', |
| 304 | 'hide' => false, |
| 305 | 'timeout' => YEAR_IN_SECONDS, |
| 306 | ], |
| 307 | // GamiPress. |
| 308 | 'gamipress_no_pro' => [ |
| 309 | 'text' => sprintf( |
| 310 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 311 | __( 'Learn how to target ads on GamiPress websites %1$shere%2$s %3$s', 'advanced-ads' ), |
| 312 | '<a href="https://wpadvancedads.com/manual/gamipress-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-gamipres" target="_blank">', |
| 313 | '</a>', |
| 314 | '<i class="dashicons dashicons-external"></i>' |
| 315 | ), |
| 316 | 'type' => 'pitch', |
| 317 | 'hide' => false, |
| 318 | ], |
| 319 | // Paid Membership Pro. |
| 320 | 'pmp_no_pro' => [ |
| 321 | 'text' => sprintf( |
| 322 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 323 | __( 'Learn how to manage ads on membership sites running Paid Memberships Pro %1$shere%2$s %3$s', 'advanced-ads' ), |
| 324 | '<a href="https://wpadvancedads.com/paid-memberships-pro/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-pmp" target="_blank">', |
| 325 | '</a>', |
| 326 | '<i class="dashicons dashicons-external"></i>' |
| 327 | ), |
| 328 | 'type' => 'pitch', |
| 329 | 'hide' => false, |
| 330 | ], |
| 331 | // Members plugin. |
| 332 | 'members_no_pro' => [ |
| 333 | 'text' => sprintf( |
| 334 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 335 | __( 'Learn how to target ads to specific user roles created with the Members plugin %1$shere%2$s %3$s', 'advanced-ads' ), |
| 336 | '<a href="https://wpadvancedads.com/members-plugin-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-members" target="_blank">', |
| 337 | '</a>', |
| 338 | '<i class="dashicons dashicons-external"></i>' |
| 339 | ), |
| 340 | 'type' => 'pitch', |
| 341 | 'hide' => false, |
| 342 | ], |
| 343 | // Members plugin. |
| 344 | 'translatepress_no_pro' => [ |
| 345 | 'text' => sprintf( |
| 346 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 347 | __( 'Learn how to target ads to multiple languages in TranslatePress %1$shere%2$s %3$s', 'advanced-ads' ), |
| 348 | '<a href="https://wpadvancedads.com/translatepress/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-translatepress" target="_blank">', |
| 349 | '</a>', |
| 350 | '<i class="dashicons dashicons-external"></i>' |
| 351 | ), |
| 352 | 'type' => 'pitch', |
| 353 | 'hide' => false, |
| 354 | ], |
| 355 | // Weglot. |
| 356 | 'weglot_no_pro' => [ |
| 357 | 'text' => sprintf( |
| 358 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 359 | __( 'Learn how to target ads to multiple languages in Weglot %1$shere%2$s %3$s', 'advanced-ads' ), |
| 360 | '<a href="https://wpadvancedads.com/weglot/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-weglot" target="_blank">', |
| 361 | '</a>', |
| 362 | '<i class="dashicons dashicons-external"></i>' |
| 363 | ), |
| 364 | 'type' => 'pitch', |
| 365 | 'hide' => false, |
| 366 | ], |
| 367 | // LearnDash. |
| 368 | 'learndash' => [ |
| 369 | 'text' => sprintf( |
| 370 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 371 | __( 'Learn how to integrate ads into LearnDash %1$shere%2$s %3$s', 'advanced-ads' ), |
| 372 | '<a href="https://wpadvancedads.com/learndash-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-learndash" target="_blank">', |
| 373 | '</a>', |
| 374 | '<i class="dashicons dashicons-external"></i>' |
| 375 | ), |
| 376 | 'type' => 'pitch', |
| 377 | 'hide' => false, |
| 378 | ], |
| 379 | // AAWP. |
| 380 | 'aawp' => [ |
| 381 | 'text' => sprintf( |
| 382 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 383 | __( 'Learn how to auto-inject Amazon Ads with AAWP and Advanced Ads %1$shere%2$s %3$s', 'advanced-ads' ), |
| 384 | '<a href="https://wpadvancedads.com/aawp-amazon/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-aawp" target="_blank">', |
| 385 | '</a>', |
| 386 | '<i class="dashicons dashicons-external"></i>' |
| 387 | ), |
| 388 | 'type' => 'pitch', |
| 389 | 'hide' => false, |
| 390 | ], |
| 391 | // Polylang. |
| 392 | 'polylang' => [ |
| 393 | 'text' => sprintf( |
| 394 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 395 | __( 'Learn how to target ads to multiple languages in Polylang %1$shere%2$s %3$s', 'advanced-ads' ), |
| 396 | '<a href="https://wpadvancedads.com/polylang/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-polylang" target="_blank">', |
| 397 | '</a>', |
| 398 | '<i class="dashicons dashicons-external"></i>' |
| 399 | ), |
| 400 | 'type' => 'pitch', |
| 401 | 'hide' => false, |
| 402 | ], |
| 403 | // MailPoet. |
| 404 | 'mailpoet' => [ |
| 405 | 'text' => sprintf( |
| 406 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 407 | __( 'Learn how to integrate Advanced Ads in MailPoet Newsletters %1$shere%2$s %3$s', 'advanced-ads' ), |
| 408 | '<a href="https://wpadvancedads.com/mailpoet-newsletters/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-mailpoet" target="_blank">', |
| 409 | '</a>', |
| 410 | '<i class="dashicons dashicons-external"></i>' |
| 411 | ), |
| 412 | 'type' => 'pitch', |
| 413 | 'hide' => false, |
| 414 | ], |
| 415 | // WP Rocket. |
| 416 | 'wp_rocket' => [ |
| 417 | 'text' => sprintf( |
| 418 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 419 | __( 'Learn how to use WP Rocket with Advanced Ads %1$shere%2$s %3$s', 'advanced-ads' ), |
| 420 | '<a href="https://wpadvancedads.com/wp-rocket-adsense/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-wprocket" target="_blank">', |
| 421 | '</a>', |
| 422 | '<i class="dashicons dashicons-external"></i>' |
| 423 | ), |
| 424 | 'type' => 'pitch', |
| 425 | 'hide' => false, |
| 426 | ], |
| 427 | // Quiz plugins. |
| 428 | 'quiz_plugins_no_pro' => [ |
| 429 | 'text' => sprintf( |
| 430 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 431 | __( 'Learn how to embed Ads into a Quiz %1$shere%2$s %3$s', 'advanced-ads' ), |
| 432 | '<a href="https://wpadvancedads.com/quiz-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-quiz" target="_blank">', |
| 433 | '</a>', |
| 434 | '<i class="dashicons dashicons-external"></i>' |
| 435 | ), |
| 436 | 'type' => 'pitch', |
| 437 | 'hide' => false, |
| 438 | ], |
| 439 | // Elementor. |
| 440 | 'elementor' => [ |
| 441 | 'text' => sprintf( |
| 442 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 443 | __( 'Learn how to create and implement ads in Elementor %1$shere%2$s %3$s', 'advanced-ads' ), |
| 444 | '<a href="https://wpadvancedads.com/elementor-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-elementor" target="_blank">', |
| 445 | '</a>', |
| 446 | '<i class="dashicons dashicons-external"></i>' |
| 447 | ), |
| 448 | 'type' => 'pitch', |
| 449 | 'hide' => false, |
| 450 | ], |
| 451 | // SiteOrigin. |
| 452 | 'siteorigin' => [ |
| 453 | 'text' => sprintf( |
| 454 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 455 | __( 'Learn how to embed ads into a website built with the SiteOrigin page builder %1$shere%2$s %3$s', 'advanced-ads' ), |
| 456 | '<a href="https://wpadvancedads.com/siteorigin-page-builder/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-siteorigin" target="_blank">', |
| 457 | '</a>', |
| 458 | '<i class="dashicons dashicons-external"></i>' |
| 459 | ), |
| 460 | 'type' => 'pitch', |
| 461 | 'hide' => false, |
| 462 | ], |
| 463 | // Divi Theme or Divi builder plugin. |
| 464 | 'divi_no_pro' => [ |
| 465 | 'text' => sprintf( |
| 466 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 467 | __( 'Learn how to integrate ads into the Divi theme and Divi builder %1$shere%2$s %3$s', 'advanced-ads' ), |
| 468 | '<a href="https://wpadvancedads.com/divi-theme-builder/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-divi" target="_blank">', |
| 469 | '</a>', |
| 470 | '<i class="dashicons dashicons-external"></i>' |
| 471 | ), |
| 472 | 'type' => 'pitch', |
| 473 | 'hide' => false, |
| 474 | ], |
| 475 | // Divi Theme or Divi builder plugin. |
| 476 | 'beaver_builder' => [ |
| 477 | 'text' => sprintf( |
| 478 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 479 | __( 'Learn how to embed ads into your Beaver Builder website %1$shere%2$s %3$s', 'advanced-ads' ), |
| 480 | '<a href="https://wpadvancedads.com/beaver-builder-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-beaverbuilder" target="_blank">', |
| 481 | '</a>', |
| 482 | '<i class="dashicons dashicons-external"></i>' |
| 483 | ), |
| 484 | 'type' => 'pitch', |
| 485 | 'hide' => false, |
| 486 | ], |
| 487 | // Pagelayer plugin. |
| 488 | 'pagelayer' => [ |
| 489 | 'text' => sprintf( |
| 490 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 491 | __( 'Learn how to embed ads into a website built with Pagelayer %1$shere%2$s %3$s', 'advanced-ads' ), |
| 492 | '<a href="https://wpadvancedads.com/pagelayer/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-pagelayer" target="_blank">', |
| 493 | '</a>', |
| 494 | '<i class="dashicons dashicons-external"></i>' |
| 495 | ), |
| 496 | 'type' => 'pitch', |
| 497 | 'hide' => false, |
| 498 | ], |
| 499 | // WPBakery Page Builder. |
| 500 | 'wpb' => [ |
| 501 | 'text' => sprintf( |
| 502 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 503 | __( 'Learn more about displaying Ads with WPBakery Page Builder %1$shere%2$s %3$s', 'advanced-ads' ), |
| 504 | '<a href="https://wpadvancedads.com/visual-composer-ads/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-wpbakery" target="_blank">', |
| 505 | '</a>', |
| 506 | '<i class="dashicons dashicons-external"></i>' |
| 507 | ), |
| 508 | 'type' => 'pitch', |
| 509 | 'hide' => false, |
| 510 | ], |
| 511 | // Newspaper theme. |
| 512 | 'newspaper' => [ |
| 513 | 'text' => sprintf( |
| 514 | /* translators: 1 opening anchor tag, 2 closing tag, 3 icon */ |
| 515 | __( 'Learn how to integrate ads into the tagDiv Newspaper theme %1$shere%2$s %3$s', 'advanced-ads' ), |
| 516 | '<a href="https://wpadvancedads.com/tagdiv-newspaper-theme/?utm_source=advanced-ads&utm_medium=link&utm_campaign=notice-newspaper" target="_blank">', |
| 517 | '</a>', |
| 518 | '<i class="dashicons dashicons-external"></i>' |
| 519 | ), |
| 520 | 'type' => 'pitch', |
| 521 | 'hide' => false, |
| 522 | ], |
| 523 | ] |
| 524 | ); |
| 525 |