PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.2
Jetpack – WP Security, Backup, Speed, & Growth v16.2
16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 All 502 releases
jetpack / class.jetpack-heartbeat.php

class.jetpack-heartbeat.php in Jetpack – WP Security, Backup, Speed, & Growth 16.2, at class.jetpack-heartbeat.php

100 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 Jetpack plugin heartbeat stats data.
58 *
59 * Site environment stats (WordPress/PHP versions, site configuration, etc.) are generated by
60 * the Connection package via `Automattic\Jetpack\Heartbeat::get_environment_stats()` so they are
61 * reported for every connected site. This method only returns Jetpack-plugin-specific stats.
62 *
63 * @param string $prefix Prefix to add before stats identifier.
64 *
65 * @return array The stats array.
66 */
67 public static function generate_stats_array( $prefix = '' ) {
68 $return = array();
69
70 $return[ "{$prefix}version" ] = JETPACK__VERSION;
71 $return[ "{$prefix}branch" ] = (float) JETPACK__VERSION;
72 $return[ "{$prefix}manage-enabled" ] = true;
73
74 foreach ( Jetpack::get_available_modules() as $slug ) {
75 $return[ "{$prefix}module-{$slug}" ] = Jetpack::is_module_active( $slug ) ? 'on' : 'off';
76 }
77
78 return $return;
79 }
80
81 /**
82 * Add Jetpack Stats array to Heartbeat if Jetpack is connected
83 *
84 * @since 8.9.0
85 *
86 * @param array $stats Jetpack Heartbeat stats.
87 * @return array $stats
88 */
89 public function add_stats_to_heartbeat( $stats ) {
90
91 if ( ! Jetpack::is_connection_ready() ) {
92 return $stats;
93 }
94
95 $jetpack_stats = self::generate_stats_array();
96
97 return array_merge( $stats, $jetpack_stats );
98 }
99 }
100