PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 7.5.1
Jetpack – WP Security, Backup, Speed, & Growth v7.5.1
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 14.4.2 All 500 releases
← All changes | modules/monitor.php +67 -54 14.4.27.5.1 View file →
@@ -1,80 +1,58 @@
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 + Jetpack::load_xml_rpc_client();
36 + $xml = new Jetpack_IXR_Client( array(
37 + 'user_id' => get_current_user_id()
38 + ) );
39 + $xml->query( 'jetpack.monitor.isActive' );
40 + if ( $xml->isError() ) {
41 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
42 + }
43 + return $xml->getResponse();
44 + }
45 +
67 46 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 - );
47 + Jetpack::load_xml_rpc_client();
48 + $xml = new Jetpack_IXR_Client( array(
49 + 'user_id' => get_current_user_id()
50 + ) );
73 51 $xml->query( 'jetpack.monitor.setNotifications', (bool) $value );
74 52
75 53 if ( $xml->isError() ) {
76 - wp_die( sprintf( '%s: %s', esc_html( $xml->getErrorCode() ), esc_html( $xml->getErrorMessage() ) ) );
54 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
77 55 }
78 56
79 57 // To be used only in Jetpack_Core_Json_Api_Endpoints::get_remote_value.
80 58 update_option( 'monitor_receive_notifications', (bool) $value );
@@ -91,19 +69,18 @@
91 69 * @param bool $die_on_error Whether to issue a wp_die when an error occurs or return a WP_Error object.
92 70 *
93 71 * @return boolean|WP_Error
94 72 */
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 - );
73 + static function user_receives_notifications( $die_on_error = true ) {
74 + Jetpack::load_xml_rpc_client();
75 + $xml = new Jetpack_IXR_Client( array(
76 + 'user_id' => get_current_user_id()
77 + ) );
101 78 $xml->query( 'jetpack.monitor.isUserInNotifications' );
102 79
103 80 if ( $xml->isError() ) {
104 81 if ( $die_on_error ) {
105 - wp_die( sprintf( '%s: %s', esc_html( $xml->getErrorCode() ), esc_html( $xml->getErrorMessage() ) ), 400 );
82 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
106 83 } else {
107 84 return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage(), array( 'status' => 400 ) );
108 85 }
109 86 }
@@ -109,17 +86,52 @@
109 86 }
110 87 return $xml->getResponse();
111 88 }
112 89
113 - /**
90 + public function activate_monitor() {
91 + Jetpack::load_xml_rpc_client();
92 + $xml = new Jetpack_IXR_Client( array(
93 + 'user_id' => get_current_user_id()
94 + ) );
95 +
96 + $xml->query( 'jetpack.monitor.activate' );
97 +
98 + if ( $xml->isError() ) {
99 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
100 + }
101 + return true;
102 + }
103 +
104 + public function deactivate_monitor() {
105 + Jetpack::load_xml_rpc_client();
106 + $xml = new Jetpack_IXR_Client( array(
107 + 'user_id' => get_current_user_id()
108 + ) );
109 +
110 + $xml->query( 'jetpack.monitor.deactivate' );
111 +
112 + if ( $xml->isError() ) {
113 + wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
114 + }
115 + return true;
116 + }
117 +
118 + /*
114 119 * Returns date of the last downtime.
115 120 *
116 121 * @since 4.0.0
117 - * @return string date in YYYY-MM-DD HH:mm:ss format
122 + * @return date in YYYY-MM-DD HH:mm:ss format
118 123 */
119 124 public function monitor_get_last_downtime() {
120 - $xml = new Jetpack_IXR_Client();
125 +// if ( $last_down = get_transient( 'monitor_last_downtime' ) ) {
126 +// return $last_down;
127 +// }
121 128
129 + Jetpack::load_xml_rpc_client();
130 + $xml = new Jetpack_IXR_Client( array(
131 + 'user_id' => get_current_user_id()
132 + ) );
133 +
122 134 $xml->query( 'jetpack.monitor.getLastDowntime' );
123 135
124 136 if ( $xml->isError() ) {
125 137 return new WP_Error( 'monitor-downtime', $xml->getErrorMessage() );
@@ -128,7 +140,8 @@
128 140 set_transient( 'monitor_last_downtime', $xml->getResponse(), 10 * MINUTE_IN_SECONDS );
129 141
130 142 return $xml->getResponse();
131 143 }
144 +
132 145 }
133 146
134 -new Jetpack_Monitor();
147 +new Jetpack_Monitor;