PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 8.2
Jetpack – WP Security, Backup, Speed, & Growth v8.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 14.3.1 All 501 releases
← All changes | modules/monitor.php +61 -54 13.2.48.2 View file →
@@ -1,80 +1,56 @@
1 -<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
1 +<?php
2 2 /**
3 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.
4 + * Module Description: Jetpack’s downtime monitoring will continuously watch your site, and alert you the moment that downtime is detected.
5 5 * Sort Order: 28
6 6 * Recommendation Order: 10
7 7 * First Introduced: 2.6
8 8 * Requires Connection: Yes
9 - * Requires User Connection: Yes
10 9 * Auto Activate: No
11 10 * Module Tags: Recommended
12 11 * Feature: Security
13 12 * 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 13 */
17 14
18 -use Automattic\Jetpack\Connection\Manager as Connection_Manager;
19 -
20 -/**
21 - * Class Jetpack_Monitor
22 - */
23 15 class Jetpack_Monitor {
24 16
25 - /**
26 - * Name of the module.
27 - *
28 - * @var string Name of module.
29 - */
30 17 public $module = 'monitor';
31 18
32 - /**
33 - * Constructor.
34 - */
35 - public function __construct() {
19 + function __construct() {
36 20 add_action( 'jetpack_modules_loaded', array( $this, 'jetpack_modules_loaded' ) );
37 21 add_action( 'jetpack_activate_module_monitor', array( $this, 'activate_module' ) );
38 22 }
39 23
40 - /**
41 - * Runs upon module activation.
42 - *
43 - * @return void
44 - */
45 24 public function activate_module() {
46 - if ( ( new Connection_Manager( 'jetpack' ) )->is_user_connected() ) {
25 + if ( Jetpack::is_user_connected() ) {
47 26 self::update_option_receive_jetpack_monitor_notification( true );
48 27 }
49 28 }
50 29
51 - /**
52 - * Runs on the jetpack_modules_loaded hook to enable configuation.
53 - *
54 - * @return void
55 - */
56 30 public function jetpack_modules_loaded() {
57 31 Jetpack::enable_module_configurable( $this->module );
58 32 }
59 33
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 - */
34 + public function is_active() {
35 + $xml = new Jetpack_IXR_Client( array(
36 + 'user_id' => get_current_user_id()
37 + ) );
38 + $xml->query( 'jetpack.monitor.isActive' );
39 + if ( $xml->isError() ) {
40 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
41 + }
42 + return $xml->getResponse();
43 + }
44 +
67 45 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 - );
46 + $xml = new Jetpack_IXR_Client( array(
47 + 'user_id' => get_current_user_id()
48 + ) );
73 49 $xml->query( 'jetpack.monitor.setNotifications', (bool) $value );
74 50
75 51 if ( $xml->isError() ) {
76 - wp_die( sprintf( '%s: %s', esc_html( $xml->getErrorCode() ), esc_html( $xml->getErrorMessage() ) ) );
52 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
77 53 }
78 54
79 55 // To be used only in Jetpack_Core_Json_Api_Endpoints::get_remote_value.
80 56 update_option( 'monitor_receive_notifications', (bool) $value );
@@ -91,19 +67,17 @@
91 67 * @param bool $die_on_error Whether to issue a wp_die when an error occurs or return a WP_Error object.
92 68 *
93 69 * @return boolean|WP_Error
94 70 */
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 - );
71 + static function user_receives_notifications( $die_on_error = true ) {
72 + $xml = new Jetpack_IXR_Client( array(
73 + 'user_id' => get_current_user_id()
74 + ) );
101 75 $xml->query( 'jetpack.monitor.isUserInNotifications' );
102 76
103 77 if ( $xml->isError() ) {
104 78 if ( $die_on_error ) {
105 - wp_die( sprintf( '%s: %s', esc_html( $xml->getErrorCode() ), esc_html( $xml->getErrorMessage() ) ), 400 );
79 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
106 80 } else {
107 81 return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage(), array( 'status' => 400 ) );
108 82 }
109 83 }
@@ -109,17 +83,49 @@
109 83 }
110 84 return $xml->getResponse();
111 85 }
112 86
113 - /**
87 + public function activate_monitor() {
88 + $xml = new Jetpack_IXR_Client( array(
89 + 'user_id' => get_current_user_id()
90 + ) );
91 +
92 + $xml->query( 'jetpack.monitor.activate' );
93 +
94 + if ( $xml->isError() ) {
95 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
96 + }
97 + return true;
98 + }
99 +
100 + public function deactivate_monitor() {
101 + $xml = new Jetpack_IXR_Client( array(
102 + 'user_id' => get_current_user_id()
103 + ) );
104 +
105 + $xml->query( 'jetpack.monitor.deactivate' );
106 +
107 + if ( $xml->isError() ) {
108 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
109 + }
110 + return true;
111 + }
112 +
113 + /*
114 114 * Returns date of the last downtime.
115 115 *
116 116 * @since 4.0.0
117 - * @return string date in YYYY-MM-DD HH:mm:ss format
117 + * @return date in YYYY-MM-DD HH:mm:ss format
118 118 */
119 119 public function monitor_get_last_downtime() {
120 - $xml = new Jetpack_IXR_Client();
120 +// if ( $last_down = get_transient( 'monitor_last_downtime' ) ) {
121 +// return $last_down;
122 +// }
121 123
124 + $xml = new Jetpack_IXR_Client( array(
125 + 'user_id' => get_current_user_id()
126 + ) );
127 +
122 128 $xml->query( 'jetpack.monitor.getLastDowntime' );
123 129
124 130 if ( $xml->isError() ) {
125 131 return new WP_Error( 'monitor-downtime', $xml->getErrorMessage() );
@@ -128,7 +134,8 @@
128 134 set_transient( 'monitor_last_downtime', $xml->getResponse(), 10 * MINUTE_IN_SECONDS );
129 135
130 136 return $xml->getResponse();
131 137 }
138 +
132 139 }
133 140
134 -new Jetpack_Monitor();
141 +new Jetpack_Monitor;