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

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

156 lines 4.6 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 public static function check_exts_upgrade() {
32
33 $extensions = MainWP_Extensions_Handler::get_extensions();
34 $output = array();
35 $check_exts = array();
36 foreach ( $extensions as $ext ) {
37 if ( isset( $ext['activated_key'] ) && 'Activated' === $ext['activated_key'] ) {
38 $args = array();
39 $args['plugin_name'] = $ext['api'];
40 $args['version'] = $ext['version'];
41 $args['product_id'] = $ext['product_id'];
42 $args['api_key'] = $ext['api_key'];
43 $args['activation_email'] = $ext['activation_email'];
44 $args['instance'] = $ext['instance_id'];
45 $args['software_version'] = $ext['software_version'];
46 $check_exts[ $args['plugin_name'] ] = $args;
47 }
48 }
49
50 if ( empty( $check_exts ) ) {
51 return false;
52 }
53
54 $i = 0;
55 $count = 0;
56 $max_check = 6;
57 $total_check = count( $check_exts );
58 $bulk_checks = array();
59
60 foreach ( $check_exts as $ext_name => $ext ) {
61 $bulk_checks[ $ext_name ] = $ext;
62 $i++;
63 $count++;
64 if ( $count == $max_check || $i == $total_check ) {
65 $results = MainWP_Api_Manager_Plugin_Update::instance()->bulk_update_check( $bulk_checks );
66 if ( is_array( $results ) && 0 < count( $results ) ) {
67 foreach ( $results as $slug => $response ) {
68 $rslt = new \stdClass();
69 $rslt->slug = $slug;
70 $rslt->latest_version = $response->new_version;
71 $rslt->download_url = $response->package;
72 $rslt->key_status = '';
73 $rslt->apiManager = 1;
74
75 if ( isset( $response->errors ) ) {
76 $rslt->error = $response->errors;
77 }
78 $output[ $slug ] = $rslt;
79 }
80 }
81 $count = 0;
82 $bulk_checks = array();
83 sleep( 3 );
84 }
85 }
86 return $output;
87 }
88
89 /**
90 * Check extension information for an update.
91 *
92 * @param string $pSlug Extension slug.
93 *
94 * @return array $rslt An array containing update information.
95 */
96 public static function get_upgrade_information( $pSlug ) {
97
98 $extensions = MainWP_Extensions_Handler::get_extensions();
99 $rslt = null;
100 foreach ( $extensions as $ext ) {
101 if ( isset( $ext['api'] ) && ( $pSlug == $ext['api'] ) && isset( $ext['apiManager'] ) && ! empty( $ext['apiManager'] ) ) {
102 $args = array();
103 $args['plugin_name'] = $ext['api'];
104 $args['version'] = $ext['version'];
105 $args['product_id'] = $ext['product_id'];
106 $args['api_key'] = $ext['api_key'];
107 $args['activation_email'] = $ext['activation_email'];
108 $args['instance'] = $ext['instance_id'];
109 $args['software_version'] = $ext['software_version'];
110 $response = MainWP_Api_Manager::instance()->update_check( $args );
111 if ( ! empty( $response ) ) {
112 $rslt = new \stdClass();
113 $rslt->slug = $ext['api'];
114 $rslt->latest_version = $response->new_version;
115 $rslt->download_url = $response->package;
116 $rslt->key_status = '';
117 $rslt->apiManager = 1;
118 if ( isset( $response->errors ) ) {
119 $rslt->error = $response->errors;
120 }
121 }
122 break;
123 }
124 }
125 return $rslt;
126 }
127
128 /**
129 * Get extension information.
130 *
131 * @param string $pSlug Extension slug.
132 *
133 * @return array $rslt An array containing extension information.
134 */
135 public static function get_plugin_information( $pSlug ) {
136 $extensions = MainWP_Extensions_Handler::get_extensions();
137 $rslt = null;
138 foreach ( $extensions as $ext ) {
139 if ( $pSlug == $ext['api'] && isset( $ext['apiManager'] ) && ! empty( $ext['apiManager'] ) ) {
140 $args = array();
141 $args['plugin_name'] = $ext['api'];
142 $args['version'] = $ext['version'];
143 $args['product_id'] = $ext['product_id'];
144 $args['api_key'] = $ext['api_key'];
145 $args['activation_email'] = $ext['activation_email'];
146 $args['instance'] = $ext['instance_id'];
147 $args['software_version'] = $ext['software_version'];
148 $rslt = MainWP_Api_Manager::instance()->request_plugin_information( $args );
149 break;
150 }
151 }
152 return $rslt;
153 }
154
155 }
156