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

162 lines 4.8 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 );
68 if ( is_array( $results ) && 0 < count( $results ) ) {
69 foreach ( $results as $slug => $response ) {
70 $rslt = new \stdClass();
71 $rslt->slug = $slug;
72 $rslt->latest_version = $response->new_version;
73 $rslt->download_url = $response->package;
74 $rslt->key_status = '';
75 $rslt->apiManager = 1;
76
77 if ( isset( $response->errors ) ) {
78 $rslt->error = $response->errors;
79 }
80 $output[ $slug ] = $rslt;
81 }
82 }
83 $count = 0;
84 $bulk_checks = array();
85 sleep( 3 );
86 }
87 }
88 return $output;
89 }
90
91 /**
92 * Check extension information for an update.
93 *
94 * @param string $pSlug Extension slug.
95 *
96 * @return array $rslt An array containing update information.
97 *
98 * @uses \MainWP\Dashboard\MainWP_Api_Manager::update_check()
99 * @uses \MainWP\Dashboard\MainWP_Extensions_Handler::get_extensions()
100 */
101 public static function get_upgrade_information( $pSlug ) {
102
103 $extensions = MainWP_Extensions_Handler::get_extensions();
104 $rslt = null;
105 foreach ( $extensions as $ext ) {
106 if ( isset( $ext['api'] ) && ( $pSlug == $ext['api'] ) && isset( $ext['apiManager'] ) && ! empty( $ext['apiManager'] ) ) {
107 $args = array();
108 $args['plugin_name'] = $ext['api'];
109 $args['version'] = $ext['version'];
110 $args['product_id'] = $ext['product_id'];
111 $args['api_key'] = $ext['api_key'];
112 $args['instance'] = $ext['instance_id'];
113 $args['software_version'] = $ext['software_version'];
114 $response = MainWP_Api_Manager::instance()->update_check( $args );
115 if ( ! empty( $response ) ) {
116 $rslt = new \stdClass();
117 $rslt->slug = $ext['api'];
118 $rslt->latest_version = $response->new_version;
119 $rslt->download_url = $response->package;
120 $rslt->key_status = '';
121 $rslt->apiManager = 1;
122 if ( isset( $response->errors ) ) {
123 $rslt->error = $response->errors;
124 }
125 }
126 break;
127 }
128 }
129 return $rslt;
130 }
131
132 /**
133 * Get extension information.
134 *
135 * @param string $pSlug Extension slug.
136 *
137 * @return array $rslt An array containing extension information.
138 *
139 * @uses \MainWP\Dashboard\MainWP_Api_Manager::request_extension_information()
140 * @uses \MainWP\Dashboard\MainWP_Extensions_Handler::get_extensions()
141 */
142 public static function get_update_information( $pSlug ) {
143 $extensions = MainWP_Extensions_Handler::get_extensions();
144 $rslt = null;
145 foreach ( $extensions as $ext ) {
146 if ( isset( $ext['api'] ) && $pSlug == $ext['api'] && isset( $ext['apiManager'] ) && ! empty( $ext['apiManager'] ) ) {
147 $args = array();
148 $args['plugin_name'] = $ext['api'];
149 $args['version'] = $ext['version'];
150 $args['product_id'] = $ext['product_id'];
151 $args['api_key'] = $ext['api_key'];
152 $args['instance'] = $ext['instance_id'];
153 $args['software_version'] = $ext['software_version'];
154 $rslt = MainWP_Api_Manager::instance()->request_extension_information( $args );
155 break;
156 }
157 }
158 return $rslt;
159 }
160
161 }
162