PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 11.1.1
Jetpack – WP Security, Backup, Speed, & Growth v11.1.1
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 / modules / monitor.php
jetpack / modules Last commit date
calypsoify 4 years ago carousel 4 years ago cloudflare-analytics 4 years ago comment-likes 5 years ago comments 4 years ago contact-form 3 years ago custom-css 4 years ago custom-post-types 4 years ago geo-location 4 years ago google-analytics 4 years ago gravatar 5 years ago infinite-scroll 4 years ago likes 4 years ago markdown 4 years ago masterbar 3 years ago memberships 3 years ago photon 5 years ago photon-cdn 3 years ago plugin-search 4 years ago post-by-email 4 years ago protect 4 years ago publicize 3 years ago related-posts 3 years ago scan 4 years ago seo-tools 3 years ago sharedaddy 3 years ago shortcodes 4 years ago simple-payments 3 years ago site-icon 4 years ago sitemaps 3 years ago sso 4 years ago stats 4 years ago subscriptions 4 years ago theme-tools 4 years ago tiled-gallery 3 years ago verification-tools 4 years ago videopress 3 years ago widget-visibility 3 years ago widgets 3 years ago woocommerce-analytics 4 years ago wordads 4 years ago wpcom-block-editor 4 years ago wpcom-tos 5 years ago carousel.php 4 years ago comment-likes.php 4 years ago comments.php 4 years ago contact-form.php 3 years ago copy-post.php 4 years ago custom-content-types.php 4 years ago custom-css.php 4 years ago enhanced-distribution.php 4 years ago geo-location.php 4 years ago google-analytics.php 4 years ago google-fonts.php 4 years ago gravatar-hovercards.php 4 years ago infinite-scroll.php 4 years ago json-api.php 5 years ago latex.php 4 years ago lazy-images.php 4 years ago likes.php 4 years ago markdown.php 4 years ago masterbar.php 4 years ago module-extras.php 4 years ago module-headings.php 4 years ago module-info.php 3 years ago monitor.php 4 years ago notes.php 4 years ago photon-cdn.php 4 years ago photon.php 4 years ago plugin-search.php 5 years ago post-by-email.php 5 years ago protect.php 4 years ago publicize.php 3 years ago related-posts.php 4 years ago search.php 4 years ago seo-tools.php 4 years ago sharedaddy.php 4 years ago shortcodes.php 4 years ago shortlinks.php 4 years ago sitemaps.php 4 years ago sso.php 4 years ago stats.php 4 years ago subscriptions.php 4 years ago theme-tools.php 4 years ago tiled-gallery.php 4 years ago vaultpress.php 4 years ago verification-tools.php 5 years ago videopress.php 4 years ago waf.php 4 years ago widget-visibility.php 4 years ago widgets.php 4 years ago woocommerce-analytics.php 5 years ago wordads.php 5 years ago wpgroho.js 5 years ago
monitor.php
136 lines
1 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * Module Name: Monitor
4 * Module Description: Jetpack’s downtime monitoring will continuously watch your site and alert you the moment that downtime is detected.
5 * Sort Order: 28
6 * Recommendation Order: 10
7 * First Introduced: 2.6
8 * Requires Connection: Yes
9 * Requires User Connection: Yes
10 * Auto Activate: No
11 * Module Tags: Recommended
12 * Feature: Security
13 * Additional Search Queries: monitor, uptime, downtime, monitoring, maintenance, maintenance mode, offline, site is down, site down, down, repair, error
14 *
15 * @package automattic/jetpack
16 */
17
18 use Automattic\Jetpack\Connection\Manager as Connection_Manager;
19
20 /**
21 * Class Jetpack_Monitor
22 */
23 class Jetpack_Monitor {
24
25 /**
26 * Name of the module.
27 *
28 * @var string Name of module.
29 */
30 public $module = 'monitor';
31
32 /**
33 * Constructor.
34 */
35 public function __construct() {
36 add_action( 'jetpack_modules_loaded', array( $this, 'jetpack_modules_loaded' ) );
37 add_action( 'jetpack_activate_module_monitor', array( $this, 'activate_module' ) );
38 }
39
40 /**
41 * Runs upon module activation.
42 *
43 * @return void
44 */
45 public function activate_module() {
46 if ( ( new Connection_Manager( 'jetpack' ) )->is_user_connected() ) {
47 self::update_option_receive_jetpack_monitor_notification( true );
48 }
49 }
50
51 /**
52 * Runs on the jetpack_modules_loaded hook to enable configuation.
53 *
54 * @return void
55 */
56 public function jetpack_modules_loaded() {
57 Jetpack::enable_module_configurable( $this->module );
58 }
59
60 /**
61 * Whether to receive the notifications.
62 *
63 * @param bool $value `true` to enable notifications, `false` to disable them.
64 *
65 * @return bool
66 */
67 public function update_option_receive_jetpack_monitor_notification( $value ) {
68 $xml = new Jetpack_IXR_Client(
69 array(
70 'user_id' => get_current_user_id(),
71 )
72 );
73 $xml->query( 'jetpack.monitor.setNotifications', (bool) $value );
74
75 if ( $xml->isError() ) {
76 wp_die( sprintf( '%s: %s', esc_html( $xml->getErrorCode() ), esc_html( $xml->getErrorMessage() ) ) );
77 }
78
79 // To be used only in Jetpack_Core_Json_Api_Endpoints::get_remote_value.
80 update_option( 'monitor_receive_notifications', (bool) $value );
81
82 return true;
83 }
84
85 /**
86 * Checks the status of notifications for current Jetpack site user.
87 *
88 * @since 2.8
89 * @since 4.1.0 New parameter $die_on_error.
90 *
91 * @param bool $die_on_error Whether to issue a wp_die when an error occurs or return a WP_Error object.
92 *
93 * @return boolean|WP_Error
94 */
95 public static function user_receives_notifications( $die_on_error = true ) {
96 $xml = new Jetpack_IXR_Client(
97 array(
98 'user_id' => get_current_user_id(),
99 )
100 );
101 $xml->query( 'jetpack.monitor.isUserInNotifications' );
102
103 if ( $xml->isError() ) {
104 if ( $die_on_error ) {
105 wp_die( sprintf( '%s: %s', esc_html( $xml->getErrorCode() ), esc_html( $xml->getErrorMessage() ) ), 400 );
106 } else {
107 return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage(), array( 'status' => 400 ) );
108 }
109 }
110 return $xml->getResponse();
111 }
112
113 /**
114 * Returns date of the last downtime.
115 *
116 * @since 4.0.0
117 * @return string date in YYYY-MM-DD HH:mm:ss format
118 */
119 public function monitor_get_last_downtime() {
120 $xml = new Jetpack_IXR_Client();
121
122 $xml->query( 'jetpack.monitor.getLastDowntime' );
123
124 if ( $xml->isError() ) {
125 return new WP_Error( 'monitor-downtime', $xml->getErrorMessage() );
126 }
127
128 set_transient( 'monitor_last_downtime', $xml->getResponse(), 10 * MINUTE_IN_SECONDS );
129
130 return $xml->getResponse();
131 }
132
133 }
134
135 new Jetpack_Monitor();
136