PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 9.5.2
Jetpack – WP Security, Backup, Speed, & Growth v9.5.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 5 years ago _inc 5 years ago css 5 years ago extensions 5 years ago images 5 years ago json-endpoints 5 years ago modules 5 years ago sal 5 years ago src 5 years ago vendor 5 years ago views 5 years ago SECURITY.md 5 years ago changelog.txt 5 years ago class-jetpack-recommendations-banner.php 5 years ago class-jetpack-wizard-banner.php 5 years ago class.frame-nonce-preview.php 6 years ago class.jetpack-admin.php 5 years ago class.jetpack-affiliate.php 6 years ago class.jetpack-autoupdate.php 5 years ago class.jetpack-bbpress-json-api.compat.php 5 years ago class.jetpack-cli.php 5 years ago class.jetpack-client-server.php 5 years ago class.jetpack-connection-banner.php 5 years ago class.jetpack-data.php 5 years ago class.jetpack-gutenberg.php 5 years ago class.jetpack-heartbeat.php 5 years ago class.jetpack-idc.php 6 years ago class.jetpack-ixr-client.php 5 years ago class.jetpack-modules-list-table.php 5 years ago class.jetpack-network-sites-list-table.php 6 years ago class.jetpack-network.php 5 years ago class.jetpack-plan.php 5 years ago class.jetpack-post-images.php 5 years ago class.jetpack-twitter-cards.php 5 years ago class.jetpack-user-agent.php 5 years ago class.jetpack.php 5 years ago class.json-api-endpoints.php 5 years ago class.json-api.php 5 years ago class.photon.php 5 years ago composer.json 5 years ago functions.compat.php 5 years ago functions.cookies.php 5 years ago functions.gallery.php 6 years ago functions.global.php 5 years ago functions.opengraph.php 5 years ago functions.photon.php 5 years ago jest.config.js 5 years ago jetpack.php 5 years ago json-api-config.php 5 years ago json-endpoints.php 7 years ago load-jetpack.php 5 years ago locales.php 7 years ago readme.txt 5 years ago require-lib.php 5 years ago uninstall.php 5 years ago wpml-config.xml 10 years ago
class.jetpack-heartbeat.php
187 lines
1 <?php
2
3 use Automattic\Jetpack\Connection\Manager;
4 use Automattic\Jetpack\Heartbeat;
5
6 class Jetpack_Heartbeat {
7
8 /**
9 * Holds the singleton instance of this class
10 *
11 * @since 2.3.3
12 * @var Jetpack_Heartbeat
13 */
14 private static $instance = false;
15
16 /**
17 * Holds the singleton instance of the proxied class
18 *
19 * @since 8.9.0
20 * @var Automattic\Jetpack\Heartbeat
21 */
22 private static $proxied_instance = false;
23
24 /**
25 * Singleton
26 *
27 * @since 2.3.3
28 * @static
29 * @return Jetpack_Heartbeat
30 */
31 public static function init() {
32 if ( ! self::$instance ) {
33 self::$instance = new Jetpack_Heartbeat();
34 self::$proxied_instance = Heartbeat::init();
35 }
36
37 return self::$instance;
38 }
39
40 /**
41 * Constructor for singleton
42 *
43 * @since 2.3.3
44 * @return Jetpack_Heartbeat
45 */
46 private function __construct() {
47 add_filter( 'jetpack_heartbeat_stats_array', array( $this, 'add_stats_to_heartbeat' ) );
48 }
49
50 /**
51 * Method that gets executed on the wp-cron call
52 *
53 * @deprecated since 8.9.0
54 * @see Automattic\Jetpack\Heartbeat::cron_exec()
55 *
56 * @since 2.3.3
57 * @global string $wp_version
58 */
59 public function cron_exec() {
60 _deprecated_function( __METHOD__, 'jetpack-8.9.0', 'Automattic\\Jetpack\\Heartbeat::cron_exec' );
61 return self::$proxied_instance->cron_exec();
62
63 }
64
65 /**
66 * Generates heartbeat stats data.
67 *
68 * @param string $prefix Prefix to add before stats identifier.
69 *
70 * @return array The stats array.
71 */
72 public static function generate_stats_array( $prefix = '' ) {
73 $return = array();
74
75 $return[ "{$prefix}version" ] = JETPACK__VERSION;
76 $return[ "{$prefix}wp-version" ] = get_bloginfo( 'version' );
77 $return[ "{$prefix}php-version" ] = PHP_VERSION;
78 $return[ "{$prefix}branch" ] = (float) JETPACK__VERSION;
79 $return[ "{$prefix}wp-branch" ] = (float) get_bloginfo( 'version' );
80 $return[ "{$prefix}php-branch" ] = (float) PHP_VERSION;
81 $return[ "{$prefix}public" ] = Jetpack_Options::get_option( 'public' );
82 $return[ "{$prefix}ssl" ] = Jetpack::permit_ssl();
83 $return[ "{$prefix}is-https" ] = is_ssl() ? 'https' : 'http';
84 $return[ "{$prefix}language" ] = get_bloginfo( 'language' );
85 $return[ "{$prefix}charset" ] = get_bloginfo( 'charset' );
86 $return[ "{$prefix}is-multisite" ] = is_multisite() ? 'multisite' : 'singlesite';
87 $return[ "{$prefix}identitycrisis" ] = Jetpack::check_identity_crisis() ? 'yes' : 'no';
88 $return[ "{$prefix}plugins" ] = implode( ',', Jetpack::get_active_plugins() );
89 if ( function_exists( 'get_mu_plugins' ) ) {
90 $return[ "{$prefix}mu-plugins" ] = implode( ',', array_keys( get_mu_plugins() ) );
91 }
92 $return[ "{$prefix}manage-enabled" ] = true;
93
94 $xmlrpc_errors = Jetpack_Options::get_option( 'xmlrpc_errors', array() );
95 if ( $xmlrpc_errors ) {
96 $return[ "{$prefix}xmlrpc-errors" ] = implode( ',', array_keys( $xmlrpc_errors ) );
97 Jetpack_Options::delete_option( 'xmlrpc_errors' );
98 }
99
100 // Missing the connection owner?
101 $connection_manager = new Manager();
102 $return[ "{$prefix}missing-owner" ] = $connection_manager->is_missing_connection_owner();
103
104 // is-multi-network can have three values, `single-site`, `single-network`, and `multi-network`.
105 $return[ "{$prefix}is-multi-network" ] = 'single-site';
106 if ( is_multisite() ) {
107 $return[ "{$prefix}is-multi-network" ] = Jetpack::is_multi_network() ? 'multi-network' : 'single-network';
108 }
109
110 if ( ! empty( $_SERVER['SERVER_ADDR'] ) || ! empty( $_SERVER['LOCAL_ADDR'] ) ) {
111 $ip = ! empty( $_SERVER['SERVER_ADDR'] ) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
112 $ip_arr = array_map( 'intval', explode( '.', $ip ) );
113 if ( 4 === count( $ip_arr ) ) {
114 $return[ "{$prefix}ip-2-octets" ] = implode( '.', array_slice( $ip_arr, 0, 2 ) );
115 }
116 }
117
118 foreach ( Jetpack::get_available_modules() as $slug ) {
119 $return[ "{$prefix}module-{$slug}" ] = Jetpack::is_module_active( $slug ) ? 'on' : 'off';
120 }
121
122 return $return;
123 }
124
125 /**
126 * Registers jetpack.getHeartbeatData xmlrpc method
127 *
128 * @deprecated since 8.9.0
129 * @see Automattic\Jetpack\Heartbeat::jetpack_xmlrpc_methods()
130 *
131 * @param array $methods The list of methods to be filtered.
132 * @return array $methods
133 */
134 public static function jetpack_xmlrpc_methods( $methods ) {
135 _deprecated_function( __METHOD__, 'jetpack-8.9.0', 'Automattic\\Jetpack\\Heartbeat::jetpack_xmlrpc_methods' );
136 return Heartbeat::jetpack_xmlrpc_methods( $methods );
137 }
138
139 /**
140 * Handles the response for the jetpack.getHeartbeatData xmlrpc method
141 *
142 * @deprecated since 8.9.0
143 * @see Automattic\Jetpack\Heartbeat::xmlrpc_data_response()
144 *
145 * @param array $params The parameters received in the request.
146 * @return array $params all the stats that hearbeat handles.
147 */
148 public static function xmlrpc_data_response( $params = array() ) {
149 _deprecated_function( __METHOD__, 'jetpack-8.9.0', 'Automattic\\Jetpack\\Heartbeat::xmlrpc_data_response' );
150 return Heartbeat::xmlrpc_data_response( $params );
151 }
152
153 /**
154 * Clear scheduled events
155 *
156 * @deprecated since 8.9.0
157 * @see Automattic\Jetpack\Heartbeat::deactivate()
158 *
159 * @return void
160 */
161 public function deactivate() {
162 // Cronjobs are now handled by the Heartbeat package and we don't want to deactivate it here.
163 // We are adding jetpack stats to the heartbeat only if the connection is available. so we don't need to disable the cron when disconnecting.
164 _deprecated_function( __METHOD__, 'jetpack-8.9.0', 'Automattic\\Jetpack\\Heartbeat::deactivate' );
165 }
166
167 /**
168 * Add Jetpack Stats array to Heartbeat if Jetpack is connected
169 *
170 * @since 8.9.0
171 *
172 * @param array $stats Jetpack Heartbeat stats.
173 * @return array $stats
174 */
175 public function add_stats_to_heartbeat( $stats ) {
176
177 if ( ! Jetpack::is_active() ) {
178 return $stats;
179 }
180
181 $jetpack_stats = self::generate_stats_array();
182
183 return array_merge( $stats, $jetpack_stats );
184 }
185
186 }
187