PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 4.4
MainWP Dashboard: Self-hosted WordPress Management for Agencies v4.4
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
mainwp / class / class-mainwp-api-handler.php

class-mainwp-api-handler.php in MainWP Dashboard: Self-hosted WordPress Management for Agencies 4.4, at class/class-mainwp-api-handler.php

166 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Install, activate and deactivate MainWP Extensions.
4 *
5 * @package MainWP/Dashboard
6 */
7
8 namespace MainWP\Dashboard;
9
10 /**
11 * Class MainWP_API_Handler()
12 *
13 * MainWP API settings page
14 */
15 class MainWP_API_Handler {
16
17 /**
18 * Get Class name.
19 *
20 * @return string __CLASS__.
21 */
22 public static function get_class_name() {
23 return __CLASS__;
24 }
25
26 /**
27 * Check if extension has an update.
28 *
29 * @return array $output List of results.
30 *
31 * @uses MainWP_Api_Manager_Plugin_Update::bulk_update_check()
32 * @uses \MainWP\Dashboard\MainWP_Extensions_Handler::get_extensions()
33 */
34 public static function check_exts_upgrade() {
35
36 $extensions = MainWP_Extensions_Handler::get_extensions();
37 $output = array();
38 $check_exts = array();
39 foreach ( $extensions as $ext ) {
40 if ( isset( $ext['activated_key'] ) && 'Activated' === $ext['activated_key'] ) {
41 $args = array();
42 $args['plugin_name'] = $ext['api'];
43 $args['version'] = $ext['version'];
44 $args['product_id'] = $ext['product_id'];
45 $args['api_key'] = $ext['api_key'];
46 $args['instance'] = $ext['instance_id'];
47 $args['software_version'] = $ext['software_version'];
48 $check_exts[ $args['plugin_name'] ] = $args;
49 }
50 }
51
52 if ( empty( $check_exts ) ) {
53 return false;
54 }
55
56 $i = 0;
57 $count = 0;
58 $max_check = 6;
59 $total_check = count( $check_exts );
60 $bulk_checks = array();
61
62 foreach ( $check_exts as $ext_name => $ext ) {
63 $bulk_checks[ $ext_name ] = $ext;
64 $i++;
65 $count++;
66 if ( $count == $max_check || $i == $total_check ) {
67 $results = MainWP_Api_Manager_Plugin_Update::instance()->bulk_update_check( $bulk_checks ); // bulk check response array of info.
68 if ( is_array( $results ) && 0 < count( $results ) ) {
69 foreach ( $results as $slug => $response ) {
70 if ( ! is_array( $response ) || ! isset( $response['new_version'] ) ) {
71 continue;
72 }
73 $rslt = new \stdClass();
74 $rslt->slug = $slug;
75 $rslt->new_version = $response['new_version'];
76 $rslt->package = $response['package'];
77 $rslt->key_status = '';
78 $rslt->apiManager = 1;
79
80 if ( isset( $response['errors'] ) ) {
81 $rslt->error = $response['errors'];
82 }
83 $output[ $slug ] = $rslt;
84 }
85 }
86 $count = 0;
87 $bulk_checks = array();
88 sleep( 3 );
89 }
90 }
91 return $output;
92 }
93
94 /**
95 * Check extension information for an update.
96 *
97 * @param string $pSlug Extension slug.
98 *
99 * @return array $rslt An array containing update information.
100 *
101 * @uses \MainWP\Dashboard\MainWP_Api_Manager::update_check()
102 * @uses \MainWP\Dashboard\MainWP_Extensions_Handler::get_extensions()
103 */
104 public static function get_upgrade_information( $pSlug ) {
105
106 $extensions = MainWP_Extensions_Handler::get_extensions();
107 $rslt = null;
108 foreach ( $extensions as $ext ) {
109 if ( isset( $ext['api'] ) && ( $pSlug == $ext['api'] ) && isset( $ext['apiManager'] ) && ! empty( $ext['apiManager'] ) ) {
110 $args = array();
111 $args['plugin_name'] = $ext['api'];
112 $args['version'] = $ext['version'];
113 $args['product_id'] = $ext['product_id'];
114 $args['api_key'] = $ext['api_key'];
115 $args['instance'] = $ext['instance_id'];
116 $args['software_version'] = $ext['software_version'];
117 $response = MainWP_Api_Manager_Plugin_Update::instance()->update_check( $args );
118
119 if ( ! empty( $response ) ) {
120 $rslt = new \stdClass();
121 $rslt->slug = $ext['api'];
122 $rslt->new_version = $response->new_version;
123 $rslt->package = $response->package;
124 $rslt->key_status = '';
125 $rslt->apiManager = 1;
126 if ( isset( $response->errors ) ) {
127 $rslt->error = $response->errors;
128 }
129 }
130 break;
131 }
132 }
133 return $rslt;
134 }
135
136 /**
137 * Get extension information.
138 *
139 * @param string $pSlug Extension slug.
140 *
141 * @return array $rslt An array containing extension information.
142 *
143 * @uses \MainWP\Dashboard\MainWP_Api_Manager::request_extension_information()
144 * @uses \MainWP\Dashboard\MainWP_Extensions_Handler::get_extensions()
145 */
146 public static function get_update_information( $pSlug ) {
147 $extensions = MainWP_Extensions_Handler::get_extensions();
148 $rslt = null;
149 foreach ( $extensions as $ext ) {
150 if ( isset( $ext['api'] ) && $pSlug == $ext['api'] && isset( $ext['apiManager'] ) && ! empty( $ext['apiManager'] ) ) {
151 $args = array();
152 $args['plugin_name'] = $ext['api'];
153 $args['version'] = $ext['version'];
154 $args['product_id'] = $ext['product_id'];
155 $args['api_key'] = $ext['api_key'];
156 $args['instance'] = $ext['instance_id'];
157 $args['software_version'] = $ext['software_version'];
158 $rslt = MainWP_Api_Manager::instance()->request_extension_information( $args );
159 break;
160 }
161 }
162 return $rslt;
163 }
164
165 }
166