PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.25
Advanced Ads – Ad Manager & AdSense v2.0.25
2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / includes / admin / class-addon-updater.php
advanced-ads / includes / admin Last commit date
ads 1 week ago groups 1 week ago metaboxes 1 year ago pages 1 day ago placements 1 day ago class-action-links.php 1 week ago class-addon-box.php 1 day ago class-addon-updater.php 1 day ago class-admin-menu.php 1 day ago class-admin-notices.php 1 year ago class-ajax.php 1 day ago class-app.php 1 day ago class-assets.php 1 day ago class-authors.php 1 year ago class-edd-updater.php 1 day ago class-license-admin-post.php 1 day ago class-list-filters.php 1 week ago class-marketing.php 1 year ago class-metabox-ad-settings.php 1 year ago class-metabox-ad.php 1 year ago class-misc.php 1 week ago class-page-quick-edit.php 1 day ago class-plugin-auto-update.php 1 day ago class-plugin-installer.php 1 day ago class-post-list.php 1 year ago class-post-types.php 1 week ago class-screen-options.php 3 months ago class-settings.php 1 day ago class-shortcode-creator.php 1 year ago class-system-info.php 1 year ago class-tinymce.php 2 years ago class-translation-promo.php 1 year ago class-upgrades.php 1 year ago class-version-control.php 3 months ago class-welcome.php 1 year ago class-wordpress-dashboard.php 1 year ago index.php 2 years ago
class-addon-updater.php
136 lines
1 <?php
2 /**
3 * Admin Addon Updater.
4 *
5 * License keys and validity come from {@see \AdvancedAds\License\License}:
6 * - {@see License::get_addon_key_map()} — rich app-licenses + site activation list
7 * - {@see License::get_mirror_status_for_options_slug()} — EDD-compatible status
8 * - {@see License::get_mirror_expires_for_options_slug()} — expiry from rich rows
9 *
10 * @package AdvancedAds
11 * @author Advanced Ads <info@wpadvancedads.com>
12 * @since 1.50.0
13 */
14
15 namespace AdvancedAds\Admin;
16
17 use AdvancedAds\Constants;
18 use AdvancedAds\License\License;
19 use AdvancedAds\License\License_Utils;
20 use AdvancedAds\Utilities\Data;
21 use AdvancedAds\Framework\Interfaces\Integration_Interface;
22
23 defined( 'ABSPATH' ) || exit;
24
25 /**
26 * Admin Addon Updater.
27 */
28 class Addon_Updater implements Integration_Interface {
29
30 /**
31 * Hook into WordPress.
32 *
33 * @return void
34 */
35 public function hooks(): void {
36 // Local/dev: WordPress blocks .test shop hosts (127.0.0.1) without this filter.
37 License::register_local_development_shop_http_filters();
38
39 if ( ! wp_doing_ajax() ) {
40 add_action( 'load-plugins.php', [ $this, 'plugin_licenses_warning' ] );
41 }
42
43 // Register on every admin request (including AJAX plugin updates).
44 add_action( 'admin_init', [ $this, 'add_on_updater' ], 1 );
45 }
46
47 /**
48 * Register the EDD updater for each add-on that has a license key on this site.
49 *
50 * @return void
51 */
52 public function add_on_updater(): void {
53 if ( ( is_multisite() && ! is_main_site() ) || ! apply_filters( 'advanced-ads-add-ons-updater', true ) ) {
54 return;
55 }
56
57 $addon_keys = License::get_addon_key_map();
58
59 foreach ( Data::get_addons() as $_add_on ) {
60 $addon_id = (string) ( $_add_on['id'] ?? '' );
61 $options_slug = (string) ( $_add_on['options_slug'] ?? '' );
62 $license_key = trim( (string) ( $addon_keys[ $addon_id ] ?? '' ) );
63
64 if ( '' === $license_key ) {
65 continue;
66 }
67
68 new EDD_Updater(
69 Constants::API_ENDPOINT,
70 $_add_on['path'],
71 [
72 'version' => $_add_on['version'],
73 'license' => $license_key,
74 'item_id' => Constants::ADDON_SLUGS_ID[ $options_slug ] ?? false,
75 'author' => 'Advanced Ads',
76 ]
77 );
78 }
79 }
80
81 /**
82 * Show a license warning below add-ons with an invalid license on the plugins list.
83 *
84 * @since 1.7.12
85 *
86 * @return void
87 */
88 public function plugin_licenses_warning(): void {
89 if ( is_multisite() ) {
90 return;
91 }
92
93 foreach ( Data::get_addons() as $_add_on ) {
94 if ( 'slider-ads' === $_add_on['id'] ) {
95 continue;
96 }
97
98 if ( 'valid' !== License::get_mirror_status_for_options_slug( (string) $_add_on['options_slug'] ) ) {
99 $plugin_file = plugin_basename( $_add_on['path'] );
100 add_action( 'after_plugin_row_' . $plugin_file, [ $this, 'add_plugin_list_license_notice' ], 10, 2 );
101 }
102 }
103 }
104
105 /**
106 * Add a row below add-ons with an invalid license on the plugin list
107 *
108 * @param string $plugin_file Path to the plugin file, relative to the plugins directory.
109 * @param array $plugin_data An array of plugin data.
110 *
111 * @since 1.7.12
112 * @todo make this work on multisite as well
113 *
114 * @return void
115 */
116 public function add_plugin_list_license_notice( $plugin_file, $plugin_data ): void {
117 static $cols;
118 if ( null === $cols ) {
119 $cols = count( _get_list_table( 'WP_Plugins_List_Table' )->get_columns() );
120 }
121
122 printf(
123 '<tr class="advads-plugin-update-tr plugin-update-tr active"><td class="plugin-update colspanchange" colspan="%d"><div class="update-message notice inline notice-warning notice-alt"><p>%s</p></div></td></tr>',
124 esc_attr( $cols ),
125 wp_kses_post(
126 sprintf(
127 /* Translators: 1: add-on name 2: admin URL to license page */
128 __( 'There might be a new version of %1$s. Please <strong>provide a valid license key</strong> in order to receive updates and support <a href="%2$s">on this page</a>.', 'advanced-ads' ),
129 $plugin_data['Title'],
130 License_Utils::admin_screen_url()
131 )
132 )
133 );
134 }
135 }
136