PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.5
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.5
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.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 All 506 releases
← All changes | _inc/lib/admin-pages/class.jetpack-admin-page.php +44 -18 16.3-a.3 → 16.3-a.5 View file →
@@ -6,8 +6,9 @@
6 6 */
7 7
8 8 use Automattic\Jetpack\Current_Plan as Jetpack_Plan;
9 9 use Automattic\Jetpack\Identity_Crisis;
10 +use Automattic\Jetpack\Plugin\Admin_Chrome_Logo;
10 11 use Automattic\Jetpack\Plugin\Footer_Links;
11 12 use Automattic\Jetpack\Redirect;
12 13 use Automattic\Jetpack\Status;
13 14 use Automattic\Jetpack\Status\Host;
@@ -106,10 +107,10 @@
106 107 if ( $this->block_page_rendering_for_idc() ) {
107 108 return;
108 109 }
109 110
110 - // Check if we are looking at the main dashboard.
111 - if ( isset( $_GET['page'] ) && 'jetpack' === $_GET['page'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- View logic.
111 + // The Settings app draws its own header and footer.
112 + if ( isset( $_GET['page'] ) && 'jetpack-settings' === $_GET['page'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- View logic.
112 113 $this->page_render();
113 114 return;
114 115 }
115 116
@@ -164,8 +165,28 @@
164 165 apply_filters( 'rest_authentication_errors', true );
165 166 }
166 167
167 168 /**
169 + * Fallback redirect meta tag if the REST API is disabled.
170 + *
171 + * @return void
172 + */
173 + public function add_fallback_head_meta() {
174 + echo '<meta http-equiv="refresh" content="0; url=?page=jetpack_modules">';
175 + }
176 +
177 + /**
178 + * Fallback meta tag wrapped in noscript tags for all browsers in case they have JavaScript disabled.
179 + *
180 + * @return void
181 + */
182 + public function add_noscript_head_meta() {
183 + echo '<noscript>';
184 + $this->add_fallback_head_meta();
185 + echo '</noscript>';
186 + }
187 +
188 + /**
168 189 * Checks the site plan and deactivates modules that were active but are no longer included in the plan.
169 190 *
170 191 * @since 4.4.0
171 192 *
@@ -179,8 +200,9 @@
179 200 || ! in_array(
180 201 $page->base,
181 202 array(
182 203 'toplevel_page_jetpack',
204 + 'jetpack_page_jetpack-settings',
183 205 'admin_page_jetpack_modules',
184 206 'jetpack_page_vaultpress',
185 207 'jetpack_page_stats',
186 208 'jetpack_page_akismet-key-config',
@@ -255,9 +277,12 @@
255 277 // True means that Jetpack is NOT connected and NOT in offline mode.
256 278 // If Jetpack is connected OR in offline mode, this will be false.
257 279 $connectable = ! Jetpack::is_connection_ready() && ! ( new Status() )->is_offline_mode();
258 280
259 - $jetpack_admin_url = admin_url( 'admin.php?page=jetpack' );
281 + $my_jetpack_available = Footer_Links::is_my_jetpack_available();
282 + $my_jetpack_url = admin_url( 'admin.php?page=my-jetpack#/overview' );
283 + $jetpack_logo = Admin_Chrome_Logo::render( 20, '', __( 'Jetpack logo', 'jetpack' ) );
284 +
260 285 $jetpack_about_url = ! $connectable
261 286 ? admin_url( 'admin.php?page=jetpack_about' )
262 287 : Redirect::get_url( 'jetpack' );
263 288
@@ -271,11 +296,13 @@
271 296
272 297 <header class="jp-masthead">
273 298 <div class="jp-masthead__inside-container">
274 299 <div class="jp-masthead__title-container">
275 - <a class="jp-masthead__logo-link" href="<?php echo esc_url( admin_url( 'admin.php?page=my-jetpack#/overview' ) ); ?>">
276 - <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" height="20" aria-label="<?php esc_attr_e( 'Jetpack logo', 'jetpack' ); ?>"><path fill="#069e08" d="M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M15,19H7l8-16V19z M17,29V13h8L17,29z"></path></svg>
277 - </a>
300 + <?php if ( $my_jetpack_available ) : ?>
301 + <a class="jp-masthead__logo-link" href="<?php echo esc_url( $my_jetpack_url ); ?>"><?php echo $jetpack_logo; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Static SVG built above. ?></a>
302 + <?php else : ?>
303 + <span class="jp-masthead__logo-link"><?php echo $jetpack_logo; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Static SVG built above. ?></span>
304 + <?php endif; ?>
278 305 <h2 class="jp-masthead__title">
279 306 <?php
280 307 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- View logic only.
281 308 $page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';
@@ -287,11 +314,17 @@
287 314 $current_label = __( 'About', 'jetpack' );
288 315 } elseif ( 'jetpack-debugger' === $page ) {
289 316 $current_label = __( 'Debug', 'jetpack' );
290 317 }
318 +
319 + // "Jetpack" is a product name, do not translate.
291 320 ?>
292 321 <?php if ( $current_label ) : ?>
293 - <a class="jp-masthead__title-link" href="<?php echo esc_url( admin_url( 'admin.php?page=my-jetpack#/overview' ) ); ?>">Jetpack</a><?php // "Jetpack" is a product name, do not translate. ?>
322 + <?php if ( $my_jetpack_available ) : ?>
323 + <a class="jp-masthead__title-link" href="<?php echo esc_url( $my_jetpack_url ); ?>">Jetpack</a>
324 + <?php else : ?>
325 + Jetpack
326 + <?php endif; ?>
294 327 <span class="jp-masthead__title-separator" aria-hidden="true">/</span>
295 328 <?php if ( $is_offline_mode ) : ?>
296 329 <span class="jp-masthead__title-offline"><?php esc_html_e( 'Offline Mode', 'jetpack' ); ?></span>
297 330 <span class="jp-masthead__title-separator" aria-hidden="true">/</span>
@@ -297,9 +330,9 @@
297 330 <span class="jp-masthead__title-separator" aria-hidden="true">/</span>
298 331 <?php endif; ?>
299 332 <span class="jp-masthead__title-current"><?php echo esc_html( $current_label ); ?></span>
300 333 <?php else : ?>
301 - Jetpack<?php // "Jetpack" is a product name, do not translate. ?>
334 + Jetpack
302 335 <?php endif; ?>
303 336 </h2>
304 337 </div>
305 338 <?php
@@ -325,18 +358,11 @@
325 358 <?php
326 359 }
327 360 ?>
328 361 </span>
329 - <?php } else { ?>
362 + <?php } elseif ( current_user_can( 'jetpack_manage_modules' ) ) { ?>
330 363 <span class="dops-button-group">
331 - <a href="<?php echo esc_url( $jetpack_admin_url ); ?>" type="button" class="dops-button is-compact"><?php esc_html_e( 'Dashboard', 'jetpack' ); ?></a>
332 - <?php
333 - if ( current_user_can( 'jetpack_manage_modules' ) ) {
334 - ?>
335 - <a href="<?php echo esc_url( $jetpack_admin_url . '#/settings' ); ?>" type="button" class="dops-button is-compact"><?php esc_html_e( 'Settings', 'jetpack' ); ?></a>
336 - <?php
337 - }
338 - ?>
364 + <a href="<?php echo esc_url( admin_url( 'admin.php?page=jetpack-settings#/settings' ) ); ?>" type="button" class="dops-button is-compact"><?php esc_html_e( 'Settings', 'jetpack' ); ?></a>
339 365 </span>
340 366 <?php } ?>
341 367 </div>
342 368 <?php endif; ?>
@@ -379,9 +405,9 @@
379 405 <path fill="#000" d="M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M15,19H7l8-16V19z M17,29V13h8L17,29z"></path>
380 406 </svg>
381 407 <span class="jp-footer__module-name"><?php esc_html_e( 'Jetpack', 'jetpack' ); ?></span>
382 408 </div>
383 - <?php if ( ! ( new Host() )->is_wpcom_platform() ) : ?>
409 + <?php if ( ! ( new Host() )->is_wpcom_platform() && $my_jetpack_available ) : ?>
384 410 <?php $products_section = Footer_Links::get_my_jetpack_products_section(); ?>
385 411 <div class="jp-footer__menu">
386 412 <a href="<?php echo esc_url( admin_url( 'admin.php?page=my-jetpack#/' . $products_section['slug'] ) ); ?>" class="jp-footer__menu-item"><?php echo esc_html( $products_section['label'] ); ?></a>
387 413 <a href="<?php echo esc_url( admin_url( 'admin.php?page=my-jetpack#/help' ) ); ?>" class="jp-footer__menu-item"><?php echo esc_html_x( 'Help', 'Navigation item', 'jetpack' ); ?></a>