PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 4.4.1
MainWP Dashboard: Self-hosted WordPress Management for Agencies v4.4.1
6.2 6.1.8 6.1.7 6.1.6 6.1.5 6.1.4 6.1.3 6.1.2 6.1.1 6.1 6.0.12 6.0.11 4.6.0.1 5.0 5.0.1 5.0.2 5.0.3 5.0.3.1 5.0.3.2 5.1 5.1.1 5.2 5.2.1 5.2.2 5.3 All 153 releases
← All changes | class/class-mainwp-api-manager-plugin-update.php +160 -152 5.2.24.4.1 View file →
@@ -10,9 +10,9 @@
10 10 namespace MainWP\Dashboard;
11 11
12 12 // Exit if accessed directly.
13 13 if ( ! defined( 'ABSPATH' ) ) {
14 - exit;
14 + exit;
15 15 }
16 16
17 17 /**
18 18 * Class MainWP_Api_Manager_Plugin_Update
@@ -23,188 +23,196 @@
23 23 * @author Todd Lahman LLC
24 24 * @copyright Copyright (c) Todd Lahman LLC
25 25 * @since 1.0.0
26 26 */
27 -class MainWP_Api_Manager_Plugin_Update { // phpcs:ignore Generic.Classes.OpeningBraceSameLine.ContentAfterBrace -- NOSONAR.
27 +class MainWP_Api_Manager_Plugin_Update {
28 28
29 - /**
30 - * Protected static variable to hold the instance.
31 - *
32 - * @var null Default value.
33 - */
34 - protected static $instance = null;
29 + /**
30 + * Protected static variable to hold the instance.
31 + *
32 + * @var null Default value.
33 + */
34 + protected static $instance = null;
35 35
36 - /**
37 - * Method instance()
38 - *
39 - * @static
40 - * @return class instance
41 - */
42 - public static function instance() {
43 - if ( is_null( static::$instance ) ) {
44 - static::$instance = new self();
45 - }
36 + /**
37 + * Method instance()
38 + *
39 + * @static
40 + * @return class instance
41 + */
42 + public static function instance() {
43 + if ( is_null( self::$instance ) ) {
44 + self::$instance = new self();
45 + }
46 46
47 - return static::$instance;
48 - }
47 + return self::$instance;
48 + }
49 49
50 - /**
51 - * MainWP_Api_Manager_Plugin_Update constructor.
52 - *
53 - * Run each time the class is called.
54 - */
55 - public function __construct() {
56 - // API data.
57 - }
50 + /**
51 + * MainWP_Api_Manager_Plugin_Update constructor.
52 + *
53 + * Run each time the class is called.
54 + */
55 + public function __construct() {
58 56
59 - /**
60 - * Create upgrade request API URL.
61 - *
62 - * @param array $args Request arguments.
63 - *
64 - * @return string Build URL.
65 - *
66 - * @uses \MainWP\Dashboard\MainWP_Api_Manager::get_upgrade_url()
67 - */
68 - private function create_upgrade_api_url( $args ) {
69 - $upgrade_url = esc_url_raw( add_query_arg( 'mainwp-api', 'am-software-api', MainWP_Api_Manager::instance()->get_upgrade_url() ) );
57 + // API data.
58 + }
70 59
71 - $query_url = '';
72 - foreach ( $args as $key => $value ) {
73 - $query_url .= $key . '=' . rawurlencode( $value ) . '&';
74 - }
75 - $query_url = rtrim( $query_url, '&' );
76 60
77 - return $upgrade_url . '&' . $query_url;
78 - }
61 + /**
62 + * Create upgrade request API URL.
63 + *
64 + * @param array $args Request arguments.
65 + * @param bool $bulk_check Bulk check request.
66 + *
67 + * @return string Build URL.
68 + *
69 + * @uses \MainWP\Dashboard\MainWP_Api_Manager::get_upgrade_url()
70 + */
71 + private function create_upgrade_api_url( $args, $bulk_check = true ) {
72 + if ( $bulk_check ) {
73 + $upgrade_url = esc_url_raw( add_query_arg( 'mainwp-api', 'am-software-api', MainWP_Api_Manager::instance()->get_upgrade_url() ) );
74 + } else {
75 + $upgrade_url = esc_url_raw( add_query_arg( 'mainwp-api', 'am-software-api', MainWP_Api_Manager::instance()->get_upgrade_url() ) ); // old: wc-api/upgrade-api.
76 + }
79 77
80 - /**
81 - * Returns plugin information in an array.
82 - *
83 - * @param array $plugin Plugin to check.
84 - *
85 - * @return array Plugin information.
86 - */
87 - public function update_check( $plugin ) {
78 + $query_url = '';
79 + foreach ( $args as $key => $value ) {
80 + $query_url .= $key . '=' . rawurlencode( $value ) . '&';
81 + }
82 + $query_url = rtrim( $query_url, '&' );
88 83
89 - $args = array(
90 - 'request' => 'pluginupdatecheck',
91 - 'plugin_name' => $plugin['plugin_name'],
92 - 'version' => $plugin['software_version'],
93 - 'product_id' => $plugin['product_id'],
94 - 'api_key' => $plugin['api_key'],
95 - 'instance' => $plugin['instance'],
96 - 'software_version' => $plugin['software_version'],
97 - 'extra' => isset( $plugin['extra'] ) ? $plugin['extra'] : '',
98 - );
84 + return $upgrade_url . '&' . $query_url;
85 + }
99 86
100 - // Check for a plugin update.
101 - return $this->plugin_information( $args ); // pluginupdatecheck.
102 - }
87 + /**
88 + * Returns plugin information in an array.
89 + *
90 + * @param array $plugin Plugin to check.
91 + *
92 + * @return array Plugin information.
93 + */
94 + public function update_check( $plugin ) {
103 95
96 + $args = array(
97 + 'request' => 'pluginupdatecheck',
98 + 'plugin_name' => $plugin['plugin_name'],
99 + 'version' => $plugin['software_version'],
100 + 'product_id' => $plugin['product_id'],
101 + 'api_key' => $plugin['api_key'],
102 + 'instance' => $plugin['instance'],
103 + 'software_version' => $plugin['software_version'],
104 + 'extra' => isset( $plugin['extra'] ) ? $plugin['extra'] : '',
105 + );
104 106
105 - /**
106 - * Check if bulkupdateapi is true|false & grab domain name adn extensions list.
107 - *
108 - * @param array $plugins List of plugins (extensions).
109 - *
110 - * @return array Plugin Information & bulkupdatecheck.
111 - */
112 - public function bulk_update_check( $plugins ) {
107 + // Check for a plugin update.
108 + return $this->plugin_information( $args ); // pluginupdatecheck.
109 + }
113 110
114 - $args = array(
115 - 'request' => 'bulkupdatecheck',
116 - 'extensions' => base64_encode( wp_json_encode( $plugins ) ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions -- base64_encode used for http encoding compatible.
117 - 'json' => true,
118 - );
119 111
120 - $mainwp_api_key = MainWP_Api_Manager_Key::instance()->get_decrypt_master_api_key();
112 + /**
113 + * Check if bulkupdateapi is true|false & grab domain name adn extensions list.
114 + *
115 + * @param array $plugins List of plugins (extensions).
116 + *
117 + * @return array Plugin Information & bulkupdatecheck.
118 + */
119 + public function bulk_update_check( $plugins ) {
121 120
122 - if ( ! empty( $mainwp_api_key ) ) {
123 - $args['api_key'] = $mainwp_api_key;
124 - }
121 + $args = array(
122 + 'request' => 'bulkupdatecheck',
123 + 'extensions' => base64_encode( wp_json_encode( $plugins ) ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions -- base64_encode used for http encoding compatible.
124 + 'json' => true,
125 + );
125 126
126 - return $this->plugin_information( $args, true ); // bulkupdatecheck.
127 - }
127 + $mainwp_api_key = MainWP_Api_Manager_Key::instance()->get_decrypt_master_api_key();
128 128
129 + if ( ! empty( $mainwp_api_key ) ) {
130 + $args['api_key'] = $mainwp_api_key;
131 + }
129 132
130 - /**
131 - * Check $args, if there is a response, an object exists & response is not false.
132 - *
133 - * @param array $args Request arguments.
134 - *
135 - * @return array|false $response Plugin information.
136 - */
137 - public function request( $args ) {
138 - $args['request'] = 'plugininformation';
133 + return $this->plugin_information( $args, true ); // bulkupdatecheck.
134 + }
139 135
140 - $response = $this->plugin_information( $args ); // plugininformation.
141 136
142 - // If everything is okay return the response.
143 - if ( isset( $response ) && is_object( $response ) && false !== $response ) {
144 - return $response;
145 - }
146 - }
137 + /**
138 + * Check $args, if there is a response, an object exists & response is not false.
139 + *
140 + * @param array $args Request arguments.
141 + *
142 + * @return array|false $response Plugin information.
143 + */
144 + public function request( $args ) {
145 + $args['request'] = 'plugininformation';
147 146
148 - /**
149 - * Sends and receives data to and from the server API.
150 - *
151 - * @access public
152 - *
153 - * @param array $args Request arguments.
154 - * @param bool $bulk_check Check if updating in bulk true|false.
155 - *
156 - * @return array|false Plugin information.
157 - * @since 1.0.0
158 - *
159 - * @uses \MainWP\Dashboard\MainWP_System_Utility::maybe_unserialyze()
160 - */
161 - public function plugin_information( $args, $bulk_check = false ) {
147 + $response = $this->plugin_information( $args ); // plugininformation.
162 148
163 - $args['object'] = MainWP_Api_Manager::instance()->get_domain();
149 + // If everything is okay return the response.
150 + if ( isset( $response ) && is_object( $response ) && false !== $response ) {
151 + return $response;
152 + }
153 + }
164 154
165 - $target_url = $this->create_upgrade_api_url( $args );
166 - $default = array(
167 - 'timeout' => 150,
168 - 'sslverify' => 1,
169 - );
155 + /**
156 + * Sends and receives data to and from the server API.
157 + *
158 + * @access public
159 + *
160 + * @param array $args Request arguments.
161 + * @param bool $bulk_check Check if updating in bulk true|false.
162 + *
163 + * @return array|false Plugin information.
164 + * @since 1.0.0
165 + *
166 + * @uses \MainWP\Dashboard\MainWP_System_Utility::maybe_unserialyze()
167 + */
168 + public function plugin_information( $args, $bulk_check = false ) {
170 169
171 - $params = apply_filters( 'mainwp_plugin_information_sslverify', $default, $args );
170 + $args['object'] = MainWP_Api_Manager::instance()->get_domain();
172 171
173 - $request = wp_remote_get(
174 - $target_url,
175 - $params
176 - );
172 + $target_url = $this->create_upgrade_api_url( $args, $bulk_check );
173 + $default = array(
174 + 'timeout' => 150,
175 + 'sslverify' => 1,
176 + );
177 177
178 - if ( is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) !== 200 ) {
179 - return false;
180 - }
178 + $params = apply_filters( 'mainwp_plugin_information_sslverify', $default, $args );
181 179
182 - $response = wp_remote_retrieve_body( $request );
180 + $request = wp_remote_get(
181 + $target_url,
182 + $params
183 + );
183 184
184 - if ( isset( $args['json'] ) ) { // bulkupdatecheck: json.
185 - $response = json_decode( $response, true );
186 - } else { // pluginupdatecheck, plugininformation : serialize.
187 - $response = unserialize( $response ); // phpcs:ignore -- data from extensions, to compatible.
188 - }
185 + if ( is_wp_error( $request ) || wp_remote_retrieve_response_code( $request ) != 200 ) {
186 + return false;
187 + }
189 188
190 - /**
191 - * For debugging errors from the API
192 - * For errors like: unserialize(): Error at offset 0 of 170 bytes
193 - * Comment out $response above first
194 - */
195 - if ( ! $bulk_check ) {
196 - if ( is_object( $response ) ) {
197 - if ( isset( $response->package ) ) {
198 - $response->package = apply_filters( 'mainwp_api_manager_upgrade_package_url', $response->package, $response );
199 - }
200 - return $response;
201 - }
202 - } elseif ( is_array( $response ) ) {
203 - return $response;
204 - }
189 + $response = wp_remote_retrieve_body( $request );
205 190
206 - return false;
207 - }
191 + if ( isset( $args['json'] ) ) { // bulkupdatecheck: json.
192 + $response = json_decode( $response, true );
193 + } else { // pluginupdatecheck, plugininformation : serialize.
194 + $response = unserialize( $response ); // phpcs:ignore -- data from extensions, to compatible.
195 + }
196 +
197 + /**
198 + * For debugging errors from the API
199 + * For errors like: unserialize(): Error at offset 0 of 170 bytes
200 + * Comment out $response above first
201 + */
202 + if ( ! $bulk_check ) {
203 + if ( is_object( $response ) ) {
204 + if ( isset( $response->package ) ) {
205 + $response->package = apply_filters( 'mainwp_api_manager_upgrade_package_url', $response->package, $response );
206 + }
207 + return $response;
208 + }
209 + } elseif ( is_array( $response ) ) {
210 + return $response;
211 + }
212 +
213 + return false;
214 + }
215 +
208 216 }
209 217
210 218 // End of class.