PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 13.3.2
Jetpack – WP Security, Backup, Speed, & Growth v13.3.2
15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / class.jetpack-heartbeat.php
jetpack Last commit date
3rd-party 2 years ago _inc 2 years ago css 2 years ago extensions 2 years ago images 2 years ago jetpack_vendor 1 year ago json-endpoints 2 years ago modules 2 years ago sal 2 years ago src 2 years ago vendor 2 years ago views 3 years ago CHANGELOG.md 2 years ago LICENSE.txt 5 years ago SECURITY.md 2 years ago class-jetpack-connection-status.php 2 years ago class-jetpack-gallery-settings.php 3 years ago class-jetpack-pre-connection-jitms.php 2 years ago class-jetpack-stats-dashboard-widget.php 2 years ago class-jetpack-xmlrpc-methods.php 2 years ago class.frame-nonce-preview.php 4 years ago class.jetpack-admin.php 2 years ago class.jetpack-affiliate.php 2 years ago class.jetpack-autoupdate.php 2 years ago class.jetpack-bbpress-json-api.compat.php 2 years ago class.jetpack-cli.php 2 years ago class.jetpack-client-server.php 2 years ago class.jetpack-gutenberg.php 2 years ago class.jetpack-heartbeat.php 2 years ago class.jetpack-modules-list-table.php 2 years ago class.jetpack-network-sites-list-table.php 2 years ago class.jetpack-network.php 2 years ago class.jetpack-plan.php 2 years ago class.jetpack-post-images.php 2 years ago class.jetpack-twitter-cards.php 2 years ago class.jetpack-user-agent.php 2 years ago class.jetpack.php 2 years ago class.json-api-endpoints.php 2 years ago class.json-api.php 2 years ago class.photon.php 3 years ago composer.json 2 years ago enhanced-open-graph.php 3 years ago functions.compat.php 2 years ago functions.cookies.php 2 years ago functions.global.php 2 years ago functions.is-mobile.php 2 years ago functions.opengraph.php 2 years ago functions.photon.php 2 years ago jetpack.php 1 year ago json-api-config.php 3 years ago json-endpoints.php 2 years ago load-jetpack.php 2 years ago locales.php 4 years ago readme.txt 1 year ago uninstall.php 2 years ago wpml-config.xml 3 years ago
class.jetpack-heartbeat.php
146 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * Jetpack Heartbeat.
4 *
5 * @package automattic/jetpack
6 */
7
8 use Automattic\Jetpack\Connection\Manager;
9 use Automattic\Jetpack\Heartbeat;
10
11 /**
12 * Jetpack Heartbeat.
13 */
14 class Jetpack_Heartbeat {
15
16 /**
17 * Holds the singleton instance of this class
18 *
19 * @since 2.3.3
20 * @var Jetpack_Heartbeat
21 */
22 private static $instance = false;
23
24 /**
25 * Holds the singleton instance of the proxied class
26 *
27 * @since 8.9.0
28 * @var Automattic\Jetpack\Heartbeat
29 */
30 private static $proxied_instance = false;
31
32 /**
33 * Singleton
34 *
35 * @since 2.3.3
36 * @static
37 * @return Jetpack_Heartbeat
38 */
39 public static function init() {
40 if ( ! self::$instance ) {
41 self::$instance = new Jetpack_Heartbeat();
42 self::$proxied_instance = Heartbeat::init();
43 }
44
45 return self::$instance;
46 }
47
48 /**
49 * Constructor for singleton
50 *
51 * @since 2.3.3
52 */
53 private function __construct() {
54 add_filter( 'jetpack_heartbeat_stats_array', array( $this, 'add_stats_to_heartbeat' ) );
55 }
56
57 /**
58 * Generates heartbeat stats data.
59 *
60 * @param string $prefix Prefix to add before stats identifier.
61 *
62 * @return array The stats array.
63 */
64 public static function generate_stats_array( $prefix = '' ) {
65 $return = array();
66
67 $return[ "{$prefix}version" ] = JETPACK__VERSION;
68 $return[ "{$prefix}wp-version" ] = get_bloginfo( 'version' );
69 $return[ "{$prefix}php-version" ] = PHP_VERSION;
70 $return[ "{$prefix}branch" ] = (float) JETPACK__VERSION;
71 $return[ "{$prefix}wp-branch" ] = (float) get_bloginfo( 'version' );
72 $return[ "{$prefix}php-branch" ] = (float) PHP_VERSION;
73 $return[ "{$prefix}public" ] = Jetpack_Options::get_option( 'public' );
74 $return[ "{$prefix}ssl" ] = Jetpack::permit_ssl();
75 $return[ "{$prefix}is-https" ] = is_ssl() ? 'https' : 'http';
76 $return[ "{$prefix}language" ] = get_bloginfo( 'language' );
77 $return[ "{$prefix}charset" ] = get_bloginfo( 'charset' );
78 $return[ "{$prefix}is-multisite" ] = is_multisite() ? 'multisite' : 'singlesite';
79 $return[ "{$prefix}identitycrisis" ] = Jetpack::check_identity_crisis() ? 'yes' : 'no';
80 $return[ "{$prefix}plugins" ] = implode( ',', Jetpack::get_active_plugins() );
81 if ( function_exists( 'get_mu_plugins' ) ) {
82 $return[ "{$prefix}mu-plugins" ] = implode( ',', array_keys( get_mu_plugins() ) );
83 }
84 $return[ "{$prefix}manage-enabled" ] = true;
85
86 if ( function_exists( 'get_space_used' ) ) { // Only available in multisite.
87 $space_used = get_space_used();
88 } else {
89 // This is the same as `get_space_used`, except it does not apply the short-circuit filter.
90 $upload_dir = wp_upload_dir();
91 $space_used = get_dirsize( $upload_dir['basedir'] ) / MB_IN_BYTES;
92 }
93
94 $return[ "{$prefix}space-used" ] = $space_used;
95
96 $xmlrpc_errors = Jetpack_Options::get_option( 'xmlrpc_errors', array() );
97 if ( $xmlrpc_errors ) {
98 $return[ "{$prefix}xmlrpc-errors" ] = implode( ',', array_keys( $xmlrpc_errors ) );
99 Jetpack_Options::delete_option( 'xmlrpc_errors' );
100 }
101
102 // Missing the connection owner?
103 $connection_manager = new Manager();
104 $return[ "{$prefix}missing-owner" ] = $connection_manager->is_missing_connection_owner();
105
106 // is-multi-network can have three values, `single-site`, `single-network`, and `multi-network`.
107 $return[ "{$prefix}is-multi-network" ] = 'single-site';
108 if ( is_multisite() ) {
109 $return[ "{$prefix}is-multi-network" ] = Jetpack::is_multi_network() ? 'multi-network' : 'single-network';
110 }
111
112 if ( ! empty( $_SERVER['SERVER_ADDR'] ) || ! empty( $_SERVER['LOCAL_ADDR'] ) ) {
113 $ip = ! empty( $_SERVER['SERVER_ADDR'] ) ? wp_unslash( $_SERVER['SERVER_ADDR'] ) : wp_unslash( $_SERVER['LOCAL_ADDR'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized just below.
114 $ip_arr = array_map( 'intval', explode( '.', $ip ) );
115 if ( 4 === count( $ip_arr ) ) {
116 $return[ "{$prefix}ip-2-octets" ] = implode( '.', array_slice( $ip_arr, 0, 2 ) );
117 }
118 }
119
120 foreach ( Jetpack::get_available_modules() as $slug ) {
121 $return[ "{$prefix}module-{$slug}" ] = Jetpack::is_module_active( $slug ) ? 'on' : 'off';
122 }
123
124 return $return;
125 }
126
127 /**
128 * Add Jetpack Stats array to Heartbeat if Jetpack is connected
129 *
130 * @since 8.9.0
131 *
132 * @param array $stats Jetpack Heartbeat stats.
133 * @return array $stats
134 */
135 public function add_stats_to_heartbeat( $stats ) {
136
137 if ( ! Jetpack::is_connection_ready() ) {
138 return $stats;
139 }
140
141 $jetpack_stats = self::generate_stats_array();
142
143 return array_merge( $stats, $jetpack_stats );
144 }
145 }
146