PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 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 All 508 releases
← All changes | class.jetpack-heartbeat.php +99 -0 16.2-beta → 16.3 View file →
@@ -1,0 +1,99 @@
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 +}