PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.3.2
Jetpack – WP Security, Backup, Speed, & Growth v12.3.2
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 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 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 / _inc / lib / debugger / debug-functions.php
jetpack / _inc / lib / debugger Last commit date
class-jetpack-cxn-test-base.php 3 years ago class-jetpack-cxn-tests.php 3 years ago class-jetpack-debug-data.php 3 years ago class-jetpack-debugger.php 3 years ago debug-functions.php 3 years ago jetpack-debugger-site-health.css 6 years ago jetpack-debugger-site-health.js 6 years ago
debug-functions.php
194 lines
1 <?php
2 /**
3 * WP Site Health functionality temporarily stored in this file until all of Jetpack is PHP 5.3+
4 *
5 * @package automattic/jetpack
6 */
7
8 use Automattic\Jetpack\Sync\Modules;
9 /**
10 * Test runner for Core's Site Health module.
11 *
12 * @since 7.3.0
13 */
14 function jetpack_debugger_ajax_local_testing_suite() {
15 check_ajax_referer( 'health-check-site-status' );
16 if ( ! current_user_can( 'jetpack_manage_modules' ) ) {
17 wp_send_json_error();
18 }
19 $tests = new Jetpack_Cxn_Tests();
20 wp_send_json_success( $tests->output_results_for_core_async_site_health() );
21 }
22 /**
23 * Adds the Jetpack Local Testing Suite to the Core Site Health system.
24 *
25 * @since 7.3.0
26 *
27 * @param array $core_tests Array of tests from Core's Site Health.
28 *
29 * @return array $core_tests Array of tests for Core's Site Health.
30 */
31 function jetpack_debugger_site_status_tests( $core_tests ) {
32 $cxn_tests = new Jetpack_Cxn_Tests();
33 $tests = $cxn_tests->list_tests( 'direct' );
34 foreach ( $tests as $test ) {
35
36 $core_tests['direct'][ $test['name'] ] = array(
37 'label' => __( 'Jetpack: ', 'jetpack' ) . $test['name'],
38 /**
39 * Callable for Core's Site Health system to execute.
40 *
41 * @param array $test A Jetpack Testing Suite test array.
42 * @param Jetpack_Cxn_Tests $cxn_tests An instance of the Jetpack Test Suite.
43 *
44 * @return array {
45 * A results array to match the format expected by WordPress Core.
46 *
47 * @type string $label Name for the test.
48 * @type string $status 'critical', 'recommended', or 'good'.
49 * @type array $badge Array for Site Health status. Keys label and color.
50 * @type string $description Description of the test result.
51 * @type string $action HTML to a link to resolve issue.
52 * @type string $test Unique test identifier.
53 * }
54 */
55 'test' => function () use ( $test, $cxn_tests ) {
56 $results = $cxn_tests->run_test( $test['name'] );
57 if ( is_wp_error( $results ) ) {
58 return;
59 }
60
61 $label = $results['label'] ?
62 $results['label'] :
63 ucwords(
64 str_replace(
65 '_',
66 ' ',
67 str_replace( 'test__', '', $test['name'] )
68 )
69 );
70 if ( $results['long_description'] ) {
71 $description = $results['long_description'];
72 } elseif ( $results['short_description'] ) {
73 $description = sprintf(
74 '<p>%s</p>',
75 $results['short_description']
76 );
77 } else {
78 $description = sprintf(
79 '<p>%s</p>',
80 __( 'This test successfully passed!', 'jetpack' )
81 );
82 }
83
84 $return = array(
85 'label' => $label,
86 'status' => 'good',
87 'badge' => array(
88 'label' => __( 'Jetpack', 'jetpack' ),
89 'color' => 'green',
90 ),
91 'description' => $description,
92 'actions' => '',
93 'test' => 'jetpack_' . $test['name'],
94 );
95
96 if ( false === $results['pass'] ) {
97 $return['status'] = $results['severity'];
98 if ( ! empty( $results['action'] ) ) {
99 $return['actions'] = sprintf(
100 '<a href="%1$s" target="_blank" rel="noopener noreferrer">%2$s <span class="screen-reader-text">%3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>',
101 esc_url( $results['action'] ),
102 $results['action_label'],
103 /* translators: accessibility text */
104 __( '(opens in a new tab)', 'jetpack' )
105 );
106 }
107 }
108
109 return $return;
110 },
111 );
112 }
113 $core_tests['async']['jetpack_test_suite'] = array(
114 'label' => __( 'Jetpack Tests', 'jetpack' ),
115 'test' => 'jetpack_local_testing_suite',
116 );
117
118 return $core_tests;
119 }
120
121 /**
122 * Loads site health scripts if we are on the site health page.
123 *
124 * @param string $hook The current admin page hook.
125 */
126 function jetpack_debugger_enqueue_site_health_scripts( $hook ) {
127 if ( 'site-health.php' === $hook ) {
128 $full_sync_module = Modules::get_module( 'full-sync' );
129 $progress_percent = $full_sync_module ? $full_sync_module->get_sync_progress_percentage() : false;
130
131 $ajax_nonce = wp_create_nonce( 'jetpack-site-health' );
132
133 $wp_scripts = wp_scripts();
134 wp_enqueue_script( 'jquery-ui-progressbar' );
135 wp_enqueue_script(
136 'jetpack_debug_site_health_script',
137 plugins_url( 'jetpack-debugger-site-health.js', __FILE__ ),
138 array( 'jquery', 'jquery-ui-progressbar' ),
139 JETPACK__VERSION,
140 false
141 );
142 wp_enqueue_style(
143 'jetpack_debug_site_health_styles',
144 plugins_url( 'jetpack-debugger-site-health.css', __FILE__ ),
145 false,
146 JETPACK__VERSION,
147 false
148 );
149 /* WordPress is not bundled with jquery UI styles - we need to grab them from the Google API. */
150 wp_enqueue_style(
151 'jetpack-jquery-ui-styles',
152 'https://code.jquery.com/ui/' . $wp_scripts->registered['jquery-ui-core']->ver . '/themes/smoothness/jquery-ui.min.css',
153 false,
154 JETPACK__VERSION,
155 false
156 );
157 wp_localize_script(
158 'jetpack_debug_site_health_script',
159 'jetpackSiteHealth',
160 array(
161 'ajaxUrl' => admin_url( 'admin-ajax.php' ),
162 'syncProgressHeading' => __( 'Jetpack is performing a sync of your site', 'jetpack' ),
163 'progressPercent' => $progress_percent,
164 'fullSyncNonce' => $ajax_nonce,
165 )
166 );
167 }
168 }
169
170 /**
171 * Responds to ajax calls from the site health page. Echos a full sync percantage to update progress bar.
172 */
173 function jetpack_debugger_sync_progress_ajax() {
174 $full_sync_module = Modules::get_module( 'full-sync' );
175 $progress_percent = $full_sync_module ? $full_sync_module->get_sync_progress_percentage() : null;
176 if ( ! $progress_percent ) {
177 echo 'done';
178 wp_die();
179 }
180 echo (int) $progress_percent;
181 wp_die();
182 }
183
184 /**
185 * Responds to ajax calls from the site health page. Triggers a Full Sync
186 */
187 function jetpack_debugger_full_sync_start() {
188 check_ajax_referer( 'jetpack-site-health', 'site-health-nonce' );
189 $full_sync_module = Modules::get_module( 'full-sync' );
190 $full_sync_module->start();
191 echo 'requested';
192 wp_die();
193 }
194