PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.26
Advanced Ads – Ad Manager & AdSense v2.0.26
2.0.26 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-plugin-installer.php
advanced-ads / includes / admin Last commit date
ads 3 weeks ago groups 3 weeks ago metaboxes 3 weeks ago pages 3 weeks ago placements 3 weeks ago class-action-links.php 3 weeks ago class-addon-box.php 3 weeks ago class-addon-updater.php 3 weeks ago class-admin-menu.php 3 weeks ago class-admin-notices.php 1 year ago class-ajax.php 3 weeks ago class-app.php 1 month ago class-assets.php 3 weeks ago class-authors.php 3 weeks ago class-edd-updater.php 3 weeks ago class-license-admin-post.php 3 weeks ago class-list-filters.php 3 weeks ago class-marketing.php 3 weeks ago class-metabox-ad-settings.php 1 year ago class-metabox-ad.php 3 weeks ago class-misc.php 3 weeks ago class-page-quick-edit.php 1 month ago class-plugin-auto-update.php 1 month ago class-plugin-installer.php 3 weeks ago class-post-list.php 3 weeks ago class-post-types.php 3 weeks ago class-screen-options.php 3 weeks ago class-settings.php 3 weeks ago class-shortcode-creator.php 3 weeks ago class-system-info.php 1 year ago class-tinymce.php 2 years ago class-translation-promo.php 3 weeks ago class-upgrades.php 3 weeks ago class-version-control.php 3 weeks ago class-welcome.php 1 year ago class-wordpress-dashboard.php 1 year ago index.php 2 years ago
class-plugin-installer.php
163 lines
1 <?php
2 // phpcs:ignoreFile
3
4 /**
5 * Alternative version installer.
6 *
7 * @package AdvancedAds
8 * @author Advanced Ads <info@wpadvancedads.com>
9 * @since 1.50.0
10 */
11
12 namespace AdvancedAds\Admin;
13
14 use AdvancedAds\License\License_Shop_Client;
15 use stdClass;
16 use WP_Error;
17 use Plugin_Upgrader;
18 use Automatic_Upgrader_Skin;
19
20 defined( 'ABSPATH' ) || exit;
21
22 /**
23 * Alternate plugin version installer
24 */
25 class Plugin_Installer {
26 /**
27 * The version to install
28 *
29 * @var string
30 */
31 private $version;
32
33 /**
34 * URL to the .zip archive for the desired version
35 *
36 * @var string
37 */
38 private $package_url;
39
40 /**
41 * The plugin name
42 *
43 * @var string
44 */
45 private $plugin_name;
46
47 /**
48 * The plugin slug
49 *
50 * @var string
51 */
52 private $plugin_slug;
53
54 /**
55 * Whether to replace an existing plugin directory on local zip install.
56 *
57 * @var bool
58 */
59 private $replace_existing;
60
61 /**
62 * Constructor
63 *
64 * @param string $version The version to install.
65 * @param string $package_url The url or local path to the .zip archive.
66 * @param bool|null $replace_existing Replace an existing plugin directory for local zip installs.
67 */
68 public function __construct( $version, $package_url, $replace_existing = null ) {
69 $this->version = $version;
70 $this->package_url = $package_url;
71 $this->plugin_name = ADVADS_PLUGIN_BASENAME;
72 $this->plugin_slug = basename( ADVADS_FILE ) . '.php';
73 $this->replace_existing = null !== $replace_existing ? (bool) $replace_existing : is_file( $package_url );
74 }
75
76 /**
77 * Apply package.
78 *
79 * Change the plugin data when WordPress checks for updates. This method
80 * modifies package data to update the plugin from a specific URL containing
81 * the version package.
82 */
83 protected function apply_package() {
84 $update_plugins = get_site_transient( 'update_plugins' );
85 if ( ! is_object( $update_plugins ) ) {
86 $update_plugins = new stdClass();
87 }
88
89 $plugin_info = new stdClass();
90 $plugin_info->new_version = $this->version;
91 $plugin_info->slug = $this->plugin_slug;
92 $plugin_info->package = $this->package_url;
93
94 $update_plugins->response[ $this->plugin_name ] = $plugin_info;
95
96 set_site_transient( 'update_plugins', $update_plugins );
97 }
98
99 /**
100 * Do the plugin update process
101 *
102 * @return array<string, mixed>|bool|\WP_Error
103 */
104 public function install() {
105 self::require_upgrader_dependencies();
106
107 $this->apply_package();
108
109 $upgrader_args = [
110 'url' => 'update.php?action=upgrade-plugin&plugin=' . rawurlencode( $this->plugin_name ),
111 'plugin' => $this->plugin_name,
112 'nonce' => 'upgrade-plugin_' . $this->plugin_name,
113 'title' => esc_html__( 'Rollback to Previous Version', 'advanced-ads' ),
114 ];
115
116 $upgrader = new Plugin_Upgrader( new Automatic_Upgrader_Skin( $upgrader_args ) );
117
118 return $upgrader->upgrade( $this->plugin_name );
119 }
120
121 /**
122 * Install a plugin from a remote or local package URL.
123 *
124 * @param string $package_url Package URL or local zip path.
125 * @param bool $replace_existing Overwrite an existing plugin directory.
126 * @return bool|array<string, mixed>|\WP_Error|null
127 */
128 public static function install_from_url( string $package_url, bool $replace_existing = false ) {
129 self::require_upgrader_dependencies();
130
131 License_Shop_Client::add_local_development_http_filter();
132 if ( ! License_Shop_Client::should_verify_ssl() ) {
133 add_filter( 'https_ssl_verify', '__return_false' );
134 }
135
136 $upgrader = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
137 $result = $upgrader->install(
138 $package_url,
139 $replace_existing ? [ 'overwrite_package' => true ] : []
140 );
141
142 if ( ! License_Shop_Client::should_verify_ssl() ) {
143 remove_filter( 'https_ssl_verify', '__return_false' );
144 }
145 License_Shop_Client::remove_local_development_http_filter();
146
147 return $result;
148 }
149
150 /**
151 * Admin includes required by Plugin_Upgrader (not loaded during REST requests).
152 *
153 * @return void
154 */
155 private static function require_upgrader_dependencies(): void {
156 if ( ! function_exists( 'request_filesystem_credentials' ) ) {
157 require_once ABSPATH . 'wp-admin/includes/file.php';
158 }
159
160 require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
161 }
162 }
163