PluginProbe
FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel / 1.8.0
FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel v1.8.0
1.8.0 1.7.1 1.7.0 1.6.0 1.5.2 trunk 0.1 0.2.0 0.2.1 0.3 0.3.1 0.3.2 0.3.3 0.3.4 0.4 0.4.1 0.4.2 0.4.3 1.0 1.1 1.2 1.3.1 1.4.0 1.4.1 1.5.0 All 27 releases
← All changes | includes/Api/Plugins.php +14 -7 0.3 → 1.8.0 View file →
@@ -16,9 +16,9 @@
16 16 *
17 17 * @return void
18 18 */
19 19 public function respond( $args ) {
20 - $valid_statuses = [ 'all', 'active', 'inactive' ];
20 + $valid_statuses = [ 'all', 'active', 'inactive', 'upgrade' ];
21 21 $status = isset( $args['status'] ) && in_array( $args['status'], $valid_statuses, true ) ? $args['status'] : 'all';
22 22
23 23 if ( ! function_exists( 'get_plugins' ) ) {
24 24 require_once ABSPATH . 'wp-admin/includes/plugin.php';
@@ -27,21 +27,27 @@
27 27 if ( ! function_exists( 'get_plugin_updates' ) ) {
28 28 require_once ABSPATH . 'wp-admin/includes/update.php';
29 29 }
30 30
31 - $response = [];
32 - $plugins = get_plugins();
33 - $updates = get_plugin_updates();
31 + // Update the update cache if requested.
32 + if ( isset( $args['force'] ) && $args['force'] === 'true' ) {
33 + wp_update_plugins();
34 + }
34 35
36 + $response = [];
37 + $plugins = get_plugins();
38 + $updates = get_plugin_updates();
39 + $auto_updates = get_site_option( 'auto_update_plugins', [] );
40 +
35 41 foreach ( $plugins as $file => $details ) {
36 42 $plugin_status = $this->get_status( $file );
43 + $update = $this->get_update( $file, $updates );
37 44
38 - if ( 'all' !== $status && $status !== $plugin_status ) {
45 + // skip if 'all', status mismatch, or needs the 'upgrade' status, which matches truthy $update.
46 + if ( 'all' !== $status && $status !== $plugin_status && ( 'upgrade' !== $status || ! $update ) ) {
39 47 continue;
40 48 }
41 49
42 - $update = $this->get_update( $file, $updates );
43 -
44 50 $response[] = [
45 51 'name' => $details['Name'],
46 52 'version' => $details['Version'],
47 53 'url' => $details['PluginURI'],
@@ -52,8 +58,9 @@
52 58 'status' => $plugin_status,
53 59 'textdomain' => $details['TextDomain'],
54 60 'description' => $details['Description'],
55 61 'php' => $details['RequiresPHP'],
62 + 'auto_update' => in_array( $file, $auto_updates, true ),
56 63 ];
57 64 }
58 65
59 66 wp_send_json( $response );