PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.0-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.0-beta
16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 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 1 week ago _inc 2 days ago css 1 month ago extensions 2 days ago images 2 months ago jetpack_vendor 2 days ago json-endpoints 1 week ago modules 2 days ago sal 1 month ago src 1 month ago vendor 2 days ago views 3 months ago CHANGELOG.md 2 days ago LICENSE.txt 6 months ago SECURITY.md 1 month ago class-jetpack-connection-status.php 2 years ago class-jetpack-gallery-settings.php 7 months ago class-jetpack-newsletter-dashboard-widget.php 7 months ago class-jetpack-pre-connection-jitms.php 2 years ago class-jetpack-stats-dashboard-widget.php 4 months ago class-jetpack-xmlrpc-methods.php 1 month ago class.frame-nonce-preview.php 7 months ago class.jetpack-admin.php 1 week ago class.jetpack-autoupdate.php 7 months ago class.jetpack-cli.php 1 week ago class.jetpack-client-server.php 2 years ago class.jetpack-gutenberg.php 2 days ago class.jetpack-heartbeat.php 1 week ago class.jetpack-modules-list-table.php 7 months ago class.jetpack-network-sites-list-table.php 1 week ago class.jetpack-network.php 1 month ago class.jetpack-plan.php 3 years ago class.jetpack-post-images.php 3 months ago class.jetpack-twitter-cards.php 4 months ago class.jetpack-user-agent.php 1 week ago class.jetpack.php 2 days ago class.json-api-endpoints.php 1 month ago class.json-api.php 2 days ago class.photon.php 3 years ago composer.json 2 days ago enhanced-open-graph.php 1 month ago functions.compat.php 4 months ago functions.cookies.php 2 years ago functions.global.php 1 week ago functions.is-mobile.php 2 years ago functions.opengraph.php 3 months ago functions.photon.php 2 years ago jetpack.php 2 days ago json-api-config.php 3 years ago json-endpoints.php 2 years ago load-jetpack.php 1 week ago locales.php 7 months ago readme.txt 2 days ago unauth-file-upload.php 1 week ago uninstall.php 1 week ago wpml-config.xml 4 years ago
class.jetpack-heartbeat.php
134 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * Jetpack Heartbeat.
4 *
5 * @package automattic/jetpack
6 */
7
8 use Automattic\Jetpack\Heartbeat;
9
10 /**
11 * Jetpack Heartbeat.
12 */
13 class Jetpack_Heartbeat {
14
15 /**
16 * Holds the singleton instance of this class
17 *
18 * @since 2.3.3
19 * @var Jetpack_Heartbeat
20 */
21 private static $instance = false;
22
23 /**
24 * Holds the singleton instance of the proxied class
25 *
26 * @since 8.9.0
27 * @var Automattic\Jetpack\Heartbeat
28 */
29 private static $proxied_instance = false;
30
31 /**
32 * Singleton
33 *
34 * @since 2.3.3
35 * @static
36 * @return Jetpack_Heartbeat
37 */
38 public static function init() {
39 if ( ! self::$instance ) {
40 self::$instance = new Jetpack_Heartbeat();
41 self::$proxied_instance = Heartbeat::init();
42 }
43
44 return self::$instance;
45 }
46
47 /**
48 * Constructor for singleton
49 *
50 * @since 2.3.3
51 */
52 private function __construct() {
53 add_filter( 'jetpack_heartbeat_stats_array', array( $this, 'add_stats_to_heartbeat' ) );
54 }
55
56 /**
57 * Generates heartbeat stats data.
58 *
59 * @param string $prefix Prefix to add before stats identifier.
60 *
61 * @return array The stats array.
62 */
63 public static function generate_stats_array( $prefix = '' ) {
64 $return = array();
65
66 $return[ "{$prefix}version" ] = JETPACK__VERSION;
67 $return[ "{$prefix}wp-version" ] = get_bloginfo( 'version' );
68 $return[ "{$prefix}php-version" ] = PHP_VERSION;
69 $return[ "{$prefix}branch" ] = (float) JETPACK__VERSION;
70 $return[ "{$prefix}wp-branch" ] = (float) get_bloginfo( 'version' );
71 $return[ "{$prefix}php-branch" ] = (float) PHP_VERSION;
72 $return[ "{$prefix}public" ] = Jetpack_Options::get_option( 'public' );
73 $return[ "{$prefix}ssl" ] = Jetpack::permit_ssl();
74 $return[ "{$prefix}is-https" ] = is_ssl() ? 'https' : 'http';
75 $return[ "{$prefix}language" ] = get_bloginfo( 'language' );
76 $return[ "{$prefix}charset" ] = get_bloginfo( 'charset' );
77 $return[ "{$prefix}is-multisite" ] = is_multisite() ? 'multisite' : 'singlesite';
78 $return[ "{$prefix}plugins" ] = implode( ',', Jetpack::get_active_plugins() );
79 if ( function_exists( 'get_mu_plugins' ) ) {
80 $return[ "{$prefix}mu-plugins" ] = implode( ',', array_keys( get_mu_plugins() ) );
81 }
82 $return[ "{$prefix}manage-enabled" ] = true;
83
84 if ( function_exists( 'get_space_used' ) ) { // Only available in multisite.
85 $space_used = get_space_used();
86 } else {
87 // This is the same as `get_space_used`, except it does not apply the short-circuit filter.
88 $upload_dir = wp_upload_dir();
89 $space_used = get_dirsize( $upload_dir['basedir'] ) / MB_IN_BYTES;
90 }
91
92 $return[ "{$prefix}space-used" ] = $space_used;
93
94 // is-multi-network can have three values, `single-site`, `single-network`, and `multi-network`.
95 $return[ "{$prefix}is-multi-network" ] = 'single-site';
96 if ( is_multisite() ) {
97 $return[ "{$prefix}is-multi-network" ] = Jetpack::is_multi_network() ? 'multi-network' : 'single-network';
98 }
99
100 if ( ! empty( $_SERVER['SERVER_ADDR'] ) || ! empty( $_SERVER['LOCAL_ADDR'] ) ) {
101 $ip = ! empty( $_SERVER['SERVER_ADDR'] ) ? wp_unslash( $_SERVER['SERVER_ADDR'] ) : wp_unslash( $_SERVER['LOCAL_ADDR'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized just below.
102 $ip_arr = array_map( 'intval', explode( '.', $ip ) );
103 if ( 4 === count( $ip_arr ) ) {
104 $return[ "{$prefix}ip-2-octets" ] = implode( '.', array_slice( $ip_arr, 0, 2 ) );
105 }
106 }
107
108 foreach ( Jetpack::get_available_modules() as $slug ) {
109 $return[ "{$prefix}module-{$slug}" ] = Jetpack::is_module_active( $slug ) ? 'on' : 'off';
110 }
111
112 return $return;
113 }
114
115 /**
116 * Add Jetpack Stats array to Heartbeat if Jetpack is connected
117 *
118 * @since 8.9.0
119 *
120 * @param array $stats Jetpack Heartbeat stats.
121 * @return array $stats
122 */
123 public function add_stats_to_heartbeat( $stats ) {
124
125 if ( ! Jetpack::is_connection_ready() ) {
126 return $stats;
127 }
128
129 $jetpack_stats = self::generate_stats_array();
130
131 return array_merge( $stats, $jetpack_stats );
132 }
133 }
134