PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 3.7.5
Jetpack – WP Security, Backup, Speed, & Growth v3.7.5
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 10 years ago _inc 10 years ago css 10 years ago images 10 years ago json-endpoints 10 years ago languages 10 years ago modules 5 years ago scss 10 years ago views 10 years ago .svnignore 10 years ago changelog.txt 10 years ago class.jetpack-admin.php 10 years ago class.jetpack-autoupdate.php 10 years ago class.jetpack-bbpress-json-api-compat.php 10 years ago class.jetpack-cli.php 10 years ago class.jetpack-client-server.php 10 years ago class.jetpack-client.php 10 years ago class.jetpack-data.php 10 years ago class.jetpack-debugger.php 10 years ago class.jetpack-error.php 10 years ago class.jetpack-heartbeat.php 10 years ago class.jetpack-ixr-client.php 10 years ago class.jetpack-jitm.php 10 years ago class.jetpack-modules-list-table.php 10 years ago class.jetpack-network-sites-list-table.php 10 years ago class.jetpack-network.php 10 years ago class.jetpack-options.php 10 years ago class.jetpack-post-images.php 10 years ago class.jetpack-signature.php 10 years ago class.jetpack-sync.php 10 years ago class.jetpack-twitter-cards.php 10 years ago class.jetpack-user-agent.php 10 years ago class.jetpack-xmlrpc-server.php 10 years ago class.jetpack.php 10 years ago class.json-api-endpoints.php 3 years ago class.json-api.php 10 years ago class.media-extractor.php 10 years ago class.media-summary.php 10 years ago class.photon.php 10 years ago composer.json 10 years ago functions.compat.php 10 years ago functions.gallery.php 10 years ago functions.opengraph.php 10 years ago functions.photon.php 10 years ago jetpack.php 3 years ago json-api-config.php 10 years ago json-endpoints.php 10 years ago locales.php 10 years ago readme.txt 3 years ago require-lib.php 10 years ago uninstall.php 10 years ago wpml-config.xml 10 years ago
class.jetpack-heartbeat.php
155 lines
1 <?php
2
3 class Jetpack_Heartbeat {
4
5 /**
6 * Holds the singleton instance of this class
7 *
8 * @since 2.3.3
9 * @var Jetpack_Heartbeat
10 */
11 private static $instance = false;
12
13 private $cron_name = 'jetpack_v2_heartbeat';
14
15 /**
16 * Singleton
17 *
18 * @since 2.3.3
19 * @static
20 * @return Jetpack_Heartbeat
21 */
22 public static function init() {
23 if ( ! self::$instance ) {
24 self::$instance = new Jetpack_Heartbeat;
25 }
26
27 return self::$instance;
28 }
29
30 /**
31 * Constructor for singleton
32 *
33 * @since 2.3.3
34 * @return Jetpack_Heartbeat
35 */
36 private function __construct() {
37 if ( ! Jetpack::is_active() )
38 return;
39
40 // Schedule the task
41 add_action( $this->cron_name, array( $this, 'cron_exec' ) );
42
43 if ( ! wp_next_scheduled( $this->cron_name ) ) {
44 // Deal with the old pre-3.0 weekly one.
45 if ( $timestamp = wp_next_scheduled( 'jetpack_heartbeat' ) ) {
46 wp_unschedule_event( $timestamp, 'jetpack_heartbeat' );
47 }
48
49 wp_schedule_event( time(), 'daily', $this->cron_name );
50 }
51
52 add_filter( 'jetpack_xmlrpc_methods', array( __CLASS__, 'jetpack_xmlrpc_methods' ) );
53 }
54
55 /**
56 * Method that gets executed on the wp-cron call
57 *
58 * @since 2.3.3
59 * @global string $wp_version
60 */
61 public function cron_exec() {
62
63 $jetpack = Jetpack::init();
64
65 /*
66 * This should run daily. Figuring in for variances in
67 * WP_CRON, don't let it run more than every 23 hours at most.
68 *
69 * i.e. if it ran less than 23 hours ago, fail out.
70 */
71 $last = (int) Jetpack_Options::get_option( 'last_heartbeat' );
72 if ( $last && ( $last + DAY_IN_SECONDS - HOUR_IN_SECONDS > time() ) ) {
73 return;
74 }
75
76 /*
77 * Check for an identity crisis
78 *
79 * If one exists:
80 * - Bump stat for ID crisis
81 * - Email site admin about potential ID crisis
82 */
83
84 // Coming Soon!
85
86 foreach ( self::generate_stats_array( 'v2-' ) as $key => $value ) {
87 $jetpack->stat( $key, $value );
88 }
89
90 Jetpack_Options::update_option( 'last_heartbeat', time() );
91
92 $jetpack->do_stats( 'server_side' );
93
94 do_action( 'jetpack_heartbeat' );
95 }
96
97 public static function generate_stats_array( $prefix = '' ) {
98 $return = array();
99
100 $return["{$prefix}version"] = JETPACK__VERSION;
101 $return["{$prefix}wp-version"] = get_bloginfo( 'version' );
102 $return["{$prefix}php-version"] = PHP_VERSION;
103 $return["{$prefix}branch"] = floatval( JETPACK__VERSION );
104 $return["{$prefix}wp-branch"] = floatval( get_bloginfo( 'version' ) );
105 $return["{$prefix}php-branch"] = floatval( PHP_VERSION );
106 $return["{$prefix}public"] = Jetpack_Options::get_option( 'public' );
107 $return["{$prefix}ssl"] = Jetpack::permit_ssl();
108 $return["{$prefix}language"] = get_bloginfo( 'language' );
109 $return["{$prefix}charset"] = get_bloginfo( 'charset' );
110 $return["{$prefix}is-multisite"] = is_multisite() ? 'multisite' : 'singlesite';
111 $return["{$prefix}identitycrisis"] = Jetpack::check_identity_crisis( 1 ) ? 'yes' : 'no';
112 $return["{$prefix}plugins"] = implode( ',', Jetpack::get_active_plugins() );
113
114 $return["{$prefix}single-user-site"]= Jetpack::is_single_user_site();
115
116 $return["{$prefix}manage-enabled"] = Jetpack::is_module_active( 'manage' );
117
118 // is-multi-network can have three values, `single-site`, `single-network`, and `multi-network`
119 $return["{$prefix}is-multi-network"] = 'single-site';
120 if ( is_multisite() ) {
121 $return["{$prefix}is-multi-network"] = Jetpack::is_multi_network() ? 'multi-network' : 'single-network';
122 }
123
124 if ( ! empty( $_SERVER['SERVER_ADDR'] ) || ! empty( $_SERVER['LOCAL_ADDR'] ) ) {
125 $ip = ! empty( $_SERVER['SERVER_ADDR'] ) ? $_SERVER['SERVER_ADDR'] : $_SERVER['LOCAL_ADDR'];
126 $ip_arr = array_map( 'intval', explode( '.', $ip ) );
127 if ( 4 == count( $ip_arr ) ) {
128 $return["{$prefix}ip-2-octets"] = implode( '.', array_slice( $ip_arr, 0, 2 ) );
129 }
130 }
131
132 foreach ( Jetpack::get_available_modules() as $slug ) {
133 $return["{$prefix}module-{$slug}"] = Jetpack::is_module_active( $slug ) ? 'on' : 'off';
134 }
135
136 return $return;
137 }
138
139 public static function jetpack_xmlrpc_methods( $methods ) {
140 $methods['jetpack.getHeartbeatData'] = array( __CLASS__, 'generate_stats_array' );
141 return $methods;
142 }
143
144 public function deactivate() {
145 // Deal with the old pre-3.0 weekly one.
146 if ( $timestamp = wp_next_scheduled( 'jetpack_heartbeat' ) ) {
147 wp_unschedule_event( $timestamp, 'jetpack_heartbeat' );
148 }
149
150 $timestamp = wp_next_scheduled( $this->cron_name );
151 wp_unschedule_event( $timestamp, $this->cron_name );
152 }
153
154 }
155