PluginProbe
Manage – Centralized site maintenance and monitoring / trunk
Manage – Centralized site maintenance and monitoring vtrunk
1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4
manage / classes / site-updates-data.php

site-updates-data.php in Manage – Centralized site maintenance and monitoring trunk, at classes/site-updates-data.php

98 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Manage\Classes;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit;
6 }
7
8 class Site_Updates_Data {
9
10 public static function get_plugins_update_count(): int {
11 wp_update_plugins();
12 $plugin_updates = get_site_transient( 'update_plugins' );
13
14 if ( ! $plugin_updates || empty( $plugin_updates->response ) ) {
15 return 0;
16 }
17
18 return count( (array) $plugin_updates->response );
19 }
20
21 public static function get_themes_update_count(): int {
22 wp_update_themes();
23 $theme_updates = get_site_transient( 'update_themes' );
24
25 if ( ! $theme_updates || empty( $theme_updates->response ) ) {
26 return 0;
27 }
28
29 return count( (array) $theme_updates->response );
30 }
31
32 private static ?array $core_updates_summary = null;
33
34 public static function get_core_has_update(): bool {
35 return self::get_updates_summary_data()['has_update'];
36 }
37
38 public static function get_core_installed_version_when_outdated(): ?string {
39 $core_state = self::get_updates_summary_data();
40
41 if ( ! $core_state['has_update'] ) {
42 return null;
43 }
44
45 return $core_state['installed_version'];
46 }
47
48 private static function get_updates_summary_data(): array {
49 if ( null !== self::$core_updates_summary ) {
50 return self::$core_updates_summary;
51 }
52 require_once ABSPATH . 'wp-admin/includes/update.php';
53
54 wp_version_check();
55 $core_updates = get_site_transient( 'update_core' );
56
57 $has_update = $core_updates
58 && isset( $core_updates->updates[0] )
59 && 'upgrade' === $core_updates->updates[0]->response;
60
61 self::$core_updates_summary = [
62 'has_update' => $has_update,
63 'installed_version' => get_bloginfo( 'version' ),
64 ];
65
66 return self::$core_updates_summary;
67 }
68
69 public static function get_plugins_for_vulnerability_check(): array {
70 if ( ! function_exists( 'get_plugins' ) ) {
71 require_once ABSPATH . 'wp-admin/includes/plugin.php';
72 }
73
74 $plugins = [];
75
76 foreach ( get_plugins() as $plugin_file => $plugin_data ) {
77 if ( empty( $plugin_data['Version'] ) ) {
78 continue;
79 }
80
81 $slug = dirname( $plugin_file );
82 if ( '.' === $slug ) {
83 $slug = basename( $plugin_file, '.php' );
84 }
85
86 if ( ! isset( $plugins[ $slug ] ) ) {
87 $plugins[ $slug ] = [ 'versions' => [] ];
88 }
89
90 if ( ! in_array( $plugin_data['Version'], $plugins[ $slug ]['versions'], true ) ) {
91 $plugins[ $slug ]['versions'][] = $plugin_data['Version'];
92 }
93 }
94
95 return $plugins;
96 }
97 }
98