PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.24
Advanced Ads – Ad Manager & AdSense v2.0.24
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 3 months ago placements 1 week ago class-action-links.php 1 week ago class-addon-box.php 1 year ago class-addon-updater.php 3 months ago class-admin-menu.php 1 week ago class-admin-notices.php 1 year ago class-ajax.php 3 months ago class-assets.php 1 week ago class-authors.php 1 year ago class-edd-updater.php 1 month 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 year ago class-plugin-installer.php 1 year 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 year 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
187 lines
1 <?php
2 /**
3 * Admin Addon Updater.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.50.0
8 */
9
10 namespace AdvancedAds\Admin;
11
12 use AdvancedAds\Constants;
13 use AdvancedAds\Utilities\Data;
14 use Advanced_Ads_Admin_Licenses;
15 use AdvancedAds\Framework\Interfaces\Integration_Interface;
16
17 defined( 'ABSPATH' ) || exit;
18
19 /**
20 * Admin Addon Updater.
21 */
22 class Addon_Updater implements Integration_Interface {
23
24 /**
25 * Get the license manager.
26 *
27 * @var \Advanced_Ads_Admin_Licenses
28 */
29 private $manager = null;
30
31 /**
32 * Hook into WordPress.
33 *
34 * @return void
35 */
36 public function hooks(): void {
37 $this->manager = Advanced_Ads_Admin_Licenses::get_instance();
38
39 if ( ! wp_doing_ajax() ) {
40 add_action( 'load-plugins.php', [ $this, 'plugin_licenses_warning' ] );
41 }
42
43 if ( ! wp_doing_ajax() ) {
44 add_action( 'admin_init', [ $this, 'add_on_updater' ], 1 );
45 }
46 add_action( 'advanced-ads-settings-init', [ $this, 'add_license_fields' ], 99 );
47 }
48
49 /**
50 * Register the Updater class for every add-on, which includes getting version information
51 */
52 public function add_on_updater() {
53 // Ignore, if not main blog or if updater was disabled.
54 if ( ( is_multisite() && ! is_main_site() ) || ! apply_filters( 'advanced-ads-add-ons-updater', true ) ) {
55 return;
56 }
57
58 $add_ons = Data::get_addons();
59 foreach ( $add_ons as $_add_on ) {
60 $_add_on_key = $_add_on['id'];
61 $options_slug = $_add_on['options_slug'];
62
63 // Check if a license expired over time.
64 $expiry_date = $this->manager->get_license_expires( $options_slug );
65 $now = time();
66 if ( $expiry_date && 'lifetime' !== $expiry_date && strtotime( $expiry_date ) < $now ) {
67 // Remove license status.
68 delete_option( $options_slug . '-license-status' );
69 }
70
71 // Retrieve our license key.
72 $licenses = get_option( ADVADS_SLUG . '-licenses', [] );
73 $license_key = $licenses[ $_add_on_key ] ?? '';
74
75 ( new EDD_Updater(
76 Constants::API_ENDPOINT,
77 $_add_on['path'],
78 [
79 'version' => $_add_on['version'],
80 'license' => $license_key,
81 'item_id' => Constants::ADDON_SLUGS_ID[ $options_slug ] ?? false,
82 'author' => 'Advanced Ads',
83 ]
84 ) );
85 }
86 }
87
88 /**
89 * Initiate plugin checks
90 *
91 * @since 1.7.12
92 *
93 * @return void
94 */
95 public function plugin_licenses_warning(): void {
96 if ( is_multisite() ) {
97 return;
98 }
99
100 $add_ons = Data::get_addons();
101 foreach ( $add_ons as $_add_on ) {
102 if ( 'slider-ads' === $_add_on['id'] ) {
103 continue;
104 }
105
106 if ( $this->manager->get_license_status( $_add_on['options_slug'] ) !== 'valid' ) {
107 $plugin_file = plugin_basename( $_add_on['path'] );
108 add_action( 'after_plugin_row_' . $plugin_file, [ $this, 'add_plugin_list_license_notice' ], 10, 2 );
109 }
110 }
111 }
112
113 /**
114 * Add a row below add-ons with an invalid license on the plugin list
115 *
116 * @param string $plugin_file Path to the plugin file, relative to the plugins directory.
117 * @param array $plugin_data An array of plugin data.
118 *
119 * @since 1.7.12
120 * @todo make this work on multisite as well
121 *
122 * @return void
123 */
124 public function add_plugin_list_license_notice( $plugin_file, $plugin_data ): void {
125 static $cols;
126 if ( null === $cols ) {
127 $cols = count( _get_list_table( 'WP_Plugins_List_Table' )->get_columns() );
128 }
129
130 printf(
131 '<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>',
132 esc_attr( $cols ),
133 wp_kses_post(
134 sprintf(
135 /* Translators: 1: add-on name 2: admin URL to license page */
136 __( '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' ),
137 $plugin_data['Title'],
138 admin_url( 'admin.php?page=advanced-ads-settings#top#licenses' )
139 )
140 )
141 );
142 }
143
144 /**
145 * Add license fields to the settings page.
146 *
147 * @return void
148 */
149 public function add_license_fields(): void {
150 $add_ons = Data::get_addons();
151 foreach ( $add_ons as $data ) {
152 if ( 'slider-ads' === $data['id'] ) {
153 continue;
154 }
155
156 add_settings_field(
157 $data['id'] . '-license',
158 $data['name'],
159 [ $this, 'render_license_field' ],
160 'advanced-ads-settings-license-page',
161 'advanced_ads_settings_license_section',
162 $data
163 );
164 }
165 }
166
167 /**
168 * Render license key field
169 *
170 * @param array $data add-on data.
171 *
172 * @return void
173 */
174 public function render_license_field( $data ): void {
175 $id = $data['id'];
176 $licenses = $this->manager->get_licenses();
177 $license_key = $licenses[ $id ] ?? '';
178 $options_slug = $data['options_slug'];
179 $license_status = $this->manager->get_license_status( $data['options_slug'] );
180 $index = $id;
181 $plugin_name = $data['name'];
182 $plugin_url = $data['uri'];
183
184 include ADVADS_ABSPATH . 'admin/views/setting-license.php';
185 }
186 }
187