summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php')
-rw-r--r--plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php186
1 files changed, 147 insertions, 39 deletions
diff --git a/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php b/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php
index a6822678..9baa3edb 100644
--- a/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php
+++ b/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php
@@ -1,5 +1,7 @@
<?php
+use Automattic\Jetpack\Status;
+
// Shared logic between Jetpack admin pages
abstract class Jetpack_Admin_Page {
// Add page specific actions given the page hook
@@ -38,13 +40,14 @@ abstract class Jetpack_Admin_Page {
function add_actions() {
global $pagenow;
- // If user is not an admin and site is in Dev Mode, don't do anything
- if ( ! current_user_can( 'manage_options' ) && Jetpack::is_development_mode() ) {
+ $is_development_mode = ( new Status() )->is_development_mode();
+ // If user is not an admin and site is in Dev Mode or not connected yet then don't do anything.
+ if ( ! current_user_can( 'manage_options' ) && ( $is_development_mode || ! Jetpack::is_active() ) ) {
return;
}
// Don't add in the modules page unless modules are available!
- if ( $this->dont_show_if_not_active && ! Jetpack::is_active() && ! Jetpack::is_development_mode() ) {
+ if ( $this->dont_show_if_not_active && ! Jetpack::is_active() && ! $is_development_mode ) {
return;
}
@@ -66,14 +69,25 @@ abstract class Jetpack_Admin_Page {
( 'admin.php' === $pagenow && isset( $_GET['page'] ) && 'jetpack' === $_GET['page'] )
&& ! Jetpack::is_active()
&& current_user_can( 'jetpack_connect' )
- && ! Jetpack::is_development_mode()
+ && ! $is_development_mode
) {
add_action( 'admin_enqueue_scripts', array( 'Jetpack_Connection_Banner', 'enqueue_banner_scripts' ) );
+ add_action( 'admin_enqueue_scripts', array( 'Jetpack_Connection_Banner', 'enqueue_connect_button_scripts' ) );
add_action( 'admin_print_styles', array( Jetpack::init(), 'admin_banner_styles' ) );
add_action( 'admin_notices', array( 'Jetpack_Connection_Banner', 'render_connect_prompt_full_screen' ) );
delete_transient( 'activated_jetpack' );
}
+ // If Jetpack not yet connected, but user is viewing one of the pages with a Jetpack connection banner.
+ if (
+ ( 'index.php' === $pagenow || 'plugins.php' === $pagenow )
+ && ! Jetpack::is_active()
+ && current_user_can( 'jetpack_connect' )
+ && ! $is_development_mode
+ ) {
+ add_action( 'admin_enqueue_scripts', array( 'Jetpack_Connection_Banner', 'enqueue_connect_button_scripts' ) );
+ }
+
// Check if the site plan changed and deactivate modules accordingly.
add_action( 'current_screen', array( $this, 'check_plan_deactivate_modules' ) );
@@ -147,7 +161,7 @@ abstract class Jetpack_Admin_Page {
*/
function check_plan_deactivate_modules( $page ) {
if (
- Jetpack::is_development_mode()
+ ( new Status() )->is_development_mode()
|| ! in_array(
$page->base,
array(
@@ -202,7 +216,7 @@ abstract class Jetpack_Admin_Page {
static function load_wrapper_styles() {
$rtl = is_rtl() ? '.rtl' : '';
- wp_enqueue_style( 'dops-css', plugins_url( "_inc/build/admin.dops-style{$rtl}.css", JETPACK__PLUGIN_FILE ), array(), JETPACK__VERSION );
+ wp_enqueue_style( 'dops-css', plugins_url( "_inc/build/admin{$rtl}.css", JETPACK__PLUGIN_FILE ), array(), JETPACK__VERSION );
wp_enqueue_style( 'components-css', plugins_url( "_inc/build/style.min{$rtl}.css", JETPACK__PLUGIN_FILE ), array(), JETPACK__VERSION );
$custom_css = '
#wpcontent {
@@ -271,7 +285,6 @@ abstract class Jetpack_Admin_Page {
<?php
if ( is_network_admin() ) {
$current_screen = get_current_screen();
-
$highlight_current_sites = ( 'toplevel_page_jetpack-network' === $current_screen->id ? 'is-primary' : '' );
$highlight_current_settings = ( 'jetpack_page_jetpack-settings-network' === $current_screen->id ? 'is-primary' : '' );
?>
@@ -314,40 +327,135 @@ abstract class Jetpack_Admin_Page {
echo $callback_ui;
?>
<!-- END OF CALLBACK -->
- <div class="jp-footer">
- <div class="jp-footer__a8c-attr-container"><a href="https://automattic.com" target="_blank" rel="noopener noreferrer"><svg role="img" class="jp-footer__a8c-attr" x="0" y="0" viewBox="0 0 935 38.2" enable-background="new 0 0 935 38.2" aria-labelledby="a8c-svg-title"><title id="a8c-svg-title">An Automattic Airline</title><path d="M317.1 38.2c-12.6 0-20.7-9.1-20.7-18.5v-1.2c0-9.6 8.2-18.5 20.7-18.5 12.6 0 20.8 8.9 20.8 18.5v1.2C337.9 29.1 329.7 38.2 317.1 38.2zM331.2 18.6c0-6.9-5-13-14.1-13s-14 6.1-14 13v0.9c0 6.9 5 13.1 14 13.1s14.1-6.2 14.1-13.1V18.6zM175 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7L157 1.3h5.5L182 36.8H175zM159.7 8.2L152 23.1h15.7L159.7 8.2zM212.4 38.2c-12.7 0-18.7-6.9-18.7-16.2V1.3h6.6v20.9c0 6.6 4.3 10.5 12.5 10.5 8.4 0 11.9-3.9 11.9-10.5V1.3h6.7V22C231.4 30.8 225.8 38.2 212.4 38.2zM268.6 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H268.6zM397.3 36.8V8.7l-1.8 3.1 -14.9 25h-3.3l-14.7-25 -1.8-3.1v28.1h-6.5V1.3h9.2l14 24.4 1.7 3 1.7-3 13.9-24.4h9.1v35.5H397.3zM454.4 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7l19.2-35.5h5.5l19.5 35.5H454.4zM439.1 8.2l-7.7 14.9h15.7L439.1 8.2zM488.4 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H488.4zM537.3 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H537.3zM569.3 36.8V4.6c2.7 0 3.7-1.4 3.7-3.4h2.8v35.5L569.3 36.8 569.3 36.8zM628 11.3c-3.2-2.9-7.9-5.7-14.2-5.7 -9.5 0-14.8 6.5-14.8 13.3v0.7c0 6.7 5.4 13 15.3 13 5.9 0 10.8-2.8 13.9-5.7l4 4.2c-3.9 3.8-10.5 7.1-18.3 7.1 -13.4 0-21.6-8.7-21.6-18.3v-1.2c0-9.6 8.9-18.7 21.9-18.7 7.5 0 14.3 3.1 18 7.1L628 11.3zM321.5 12.4c1.2 0.8 1.5 2.4 0.8 3.6l-6.1 9.4c-0.8 1.2-2.4 1.6-3.6 0.8l0 0c-1.2-0.8-1.5-2.4-0.8-3.6l6.1-9.4C318.7 11.9 320.3 11.6 321.5 12.4L321.5 12.4z"></path><path d="M37.5 36.7l-4.7-8.9H11.7l-4.6 8.9H0L19.4 0.8H25l19.7 35.9H37.5zM22 7.8l-7.8 15.1h15.9L22 7.8zM82.8 36.7l-23.3-24 -2.3-2.5v26.6h-6.7v-36H57l22.6 24 2.3 2.6V0.8h6.7v35.9H82.8z"></path><path d="M719.9 37l-4.8-8.9H694l-4.6 8.9h-7.1l19.5-36h5.6l19.8 36H719.9zM704.4 8l-7.8 15.1h15.9L704.4 8zM733 37V1h6.8v36H733zM781 37c-1.8 0-2.6-2.5-2.9-5.8l-0.2-3.7c-0.2-3.6-1.7-5.1-8.4-5.1h-12.8V37H750V1h19.6c10.8 0 15.7 4.3 15.7 9.9 0 3.9-2 7.7-9 9 7 0.5 8.5 3.7 8.6 7.9l0.1 3c0.1 2.5 0.5 4.3 2.2 6.1V37H781zM778.5 11.8c0-2.6-2.1-5.1-7.9-5.1h-13.8v10.8h14.4c5 0 7.3-2.4 7.3-5.2V11.8zM794.8 37V1h6.8v30.4h28.2V37H794.8zM836.7 37V1h6.8v36H836.7zM886.2 37l-23.4-24.1 -2.3-2.5V37h-6.8V1h6.5l22.7 24.1 2.3 2.6V1h6.8v36H886.2zM902.3 37V1H935v5.6h-26v9.2h20v5.5h-20v10.1h26V37H902.3z"></path></svg></a></div>
- <ul class="jp-footer__links">
- <li class="jp-footer__link-item">
- <a href="https://jetpack.com" target="_blank" rel="noopener noreferrer" class="jp-footer__link" title="<?php esc_html_e( 'Jetpack version', 'jetpack' ); ?>">Jetpack <?php echo JETPACK__VERSION; ?></a>
- </li>
- <li class="jp-footer__link-item">
- <a href="https://wordpress.com/tos/" target="_blank" rel="noopener noreferrer" title="<?php esc_html__( 'WordPress.com Terms of Service', 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Terms', 'Navigation item', 'jetpack' ); ?></a>
- </li>
- <li class="jp-footer__link-item">
- <a href="<?php echo esc_url( $jetpack_admin_url . '#/privacy' ); ?>" rel="noopener noreferrer" title="<?php esc_html_e( "Automattic's Privacy Policy", 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Privacy', 'Navigation item', 'jetpack' ); ?></a>
- </li>
- <?php if ( is_multisite() && current_user_can( 'jetpack_network_sites_page' ) ) { ?>
- <li class="jp-footer__link-item">
- <a href="<?php echo esc_url( network_admin_url( 'admin.php?page=jetpack' ) ); ?>" title="<?php esc_html_e( "Manage your network's Jetpack Sites.", 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Network Sites', 'Navigation item', 'jetpack' ); ?></a>
- </li>
- <?php } ?>
- <?php if ( is_multisite() && current_user_can( 'jetpack_network_settings_page' ) ) { ?>
- <li class="jp-footer__link-item">
- <a href="<?php echo esc_url( network_admin_url( 'admin.php?page=jetpack-settings' ) ); ?>" title="<?php esc_html_e( "Manage your network's Jetpack Sites.", 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Network Settings', 'Navigation item', 'jetpack' ); ?></a>
- </li>
- <?php } ?>
- <?php if ( current_user_can( 'manage_options' ) ) { ?>
- <li class="jp-footer__link-item">
- <a href="<?php echo esc_url( admin_url() . 'admin.php?page=jetpack_modules' ); ?>" title="<?php esc_html_e( "Access the full list of Jetpack modules available on your site.", 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Modules', 'Navigation item', 'jetpack' ); ?></a>
- </li>
- <li class="jp-footer__link-item">
- <a href="<?php echo esc_url( admin_url() . 'admin.php?page=jetpack-debugger' ); ?>" title="<?php esc_html_e( "Test your site's compatibility with Jetpack.", 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Debug', 'Navigation item', 'jetpack' ); ?></a>
- </li>
- <?php } ?>
- </ul>
- </div>
+ <?php self::render_footer(); ?>
</div>
<?php
return;
}
+
+ /**
+ * Output a list item with a link.
+ *
+ * @param string $url URL.
+ * @param string $title Link title attribute.
+ * @param string $text Link text.
+ * @param bool $is_internal Is the link linking to an internal or external domain.
+ */
+ public static function the_footer_link( $url, $title, $text, $is_internal = true ) {
+ printf(
+ '<li class="jp-footer__link-item"><a class="jp-footer__link" href="%1$s" title="%2$s" %4$s>%3$s</a></li>',
+ esc_url( $url ),
+ esc_attr( $title ),
+ esc_html( $text ),
+ ( $is_internal ? '' : 'target="_blank" rel="noopener noreferrer"' )
+ );
+ }
+
+ /**
+ * Render the footer of the jetpack dashboard. For admin pages.
+ *
+ * Note that the Jetpack Dashboard may append additional links to that list.
+ */
+ public static function render_footer() {
+ $admin_url = admin_url( 'admin.php?page=jetpack' );
+
+ $is_dev_mode_or_connected = Jetpack::is_active() || ( new Status() )->is_development_mode();
+
+ $privacy_url = ( $is_dev_mode_or_connected )
+ ? $admin_url . '#/privacy'
+ : 'https://automattic.com/privacy/';
+
+ $about_url = ( $is_dev_mode_or_connected )
+ ? admin_url( 'admin.php?page=jetpack_about' )
+ : 'https://jetpack.com';
+
+ ?>
+ <div class="jp-footer">
+ <div class="jp-footer__a8c-attr-container">
+ <a href="<?php echo esc_url( $about_url ); ?>">
+ <svg role="img" class="jp-footer__a8c-attr" x="0" y="0" viewBox="0 0 935 38.2" enable-background="new 0 0 935 38.2" aria-labelledby="a8c-svg-title"><title id="a8c-svg-title">An Automattic Airline</title><path d="M317.1 38.2c-12.6 0-20.7-9.1-20.7-18.5v-1.2c0-9.6 8.2-18.5 20.7-18.5 12.6 0 20.8 8.9 20.8 18.5v1.2C337.9 29.1 329.7 38.2 317.1 38.2zM331.2 18.6c0-6.9-5-13-14.1-13s-14 6.1-14 13v0.9c0 6.9 5 13.1 14 13.1s14.1-6.2 14.1-13.1V18.6zM175 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7L157 1.3h5.5L182 36.8H175zM159.7 8.2L152 23.1h15.7L159.7 8.2zM212.4 38.2c-12.7 0-18.7-6.9-18.7-16.2V1.3h6.6v20.9c0 6.6 4.3 10.5 12.5 10.5 8.4 0 11.9-3.9 11.9-10.5V1.3h6.7V22C231.4 30.8 225.8 38.2 212.4 38.2zM268.6 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H268.6zM397.3 36.8V8.7l-1.8 3.1 -14.9 25h-3.3l-14.7-25 -1.8-3.1v28.1h-6.5V1.3h9.2l14 24.4 1.7 3 1.7-3 13.9-24.4h9.1v35.5H397.3zM454.4 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7l19.2-35.5h5.5l19.5 35.5H454.4zM439.1 8.2l-7.7 14.9h15.7L439.1 8.2zM488.4 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H488.4zM537.3 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H537.3zM569.3 36.8V4.6c2.7 0 3.7-1.4 3.7-3.4h2.8v35.5L569.3 36.8 569.3 36.8zM628 11.3c-3.2-2.9-7.9-5.7-14.2-5.7 -9.5 0-14.8 6.5-14.8 13.3v0.7c0 6.7 5.4 13 15.3 13 5.9 0 10.8-2.8 13.9-5.7l4 4.2c-3.9 3.8-10.5 7.1-18.3 7.1 -13.4 0-21.6-8.7-21.6-18.3v-1.2c0-9.6 8.9-18.7 21.9-18.7 7.5 0 14.3 3.1 18 7.1L628 11.3zM321.5 12.4c1.2 0.8 1.5 2.4 0.8 3.6l-6.1 9.4c-0.8 1.2-2.4 1.6-3.6 0.8l0 0c-1.2-0.8-1.5-2.4-0.8-3.6l6.1-9.4C318.7 11.9 320.3 11.6 321.5 12.4L321.5 12.4z"></path><path d="M37.5 36.7l-4.7-8.9H11.7l-4.6 8.9H0L19.4 0.8H25l19.7 35.9H37.5zM22 7.8l-7.8 15.1h15.9L22 7.8zM82.8 36.7l-23.3-24 -2.3-2.5v26.6h-6.7v-36H57l22.6 24 2.3 2.6V0.8h6.7v35.9H82.8z"></path><path d="M719.9 37l-4.8-8.9H694l-4.6 8.9h-7.1l19.5-36h5.6l19.8 36H719.9zM704.4 8l-7.8 15.1h15.9L704.4 8zM733 37V1h6.8v36H733zM781 37c-1.8 0-2.6-2.5-2.9-5.8l-0.2-3.7c-0.2-3.6-1.7-5.1-8.4-5.1h-12.8V37H750V1h19.6c10.8 0 15.7 4.3 15.7 9.9 0 3.9-2 7.7-9 9 7 0.5 8.5 3.7 8.6 7.9l0.1 3c0.1 2.5 0.5 4.3 2.2 6.1V37H781zM778.5 11.8c0-2.6-2.1-5.1-7.9-5.1h-13.8v10.8h14.4c5 0 7.3-2.4 7.3-5.2V11.8zM794.8 37V1h6.8v30.4h28.2V37H794.8zM836.7 37V1h6.8v36H836.7zM886.2 37l-23.4-24.1 -2.3-2.5V37h-6.8V1h6.5l22.7 24.1 2.3 2.6V1h6.8v36H886.2zM902.3 37V1H935v5.6h-26v9.2h20v5.5h-20v10.1h26V37H902.3z"></path></svg>
+ </a>
+ </div>
+ <ul class="jp-footer__links" id="jp-footer__links-id">
+ <?php
+ // Version number.
+ self::the_footer_link(
+ 'https://jetpack.com',
+ __( 'Jetpack version', 'jetpack' ),
+ sprintf(
+ /* Translators: placeholder is a number. */
+ __( 'Jetpack version %s', 'jetpack' ),
+ JETPACK__VERSION
+ ),
+ false
+ );
+
+ // About page.
+ self::the_footer_link(
+ $about_url,
+ __( 'About Jetpack', 'jetpack' ),
+ __( 'About', 'jetpack' ),
+ $is_dev_mode_or_connected
+ );
+
+ // TOS.
+ self::the_footer_link(
+ 'https://wordpress.com/tos/',
+ __( 'WordPress.com Terms of Service', 'jetpack' ),
+ _x( 'Terms', 'Navigation item', 'jetpack' ),
+ false
+ );
+
+ // Privacy policy.
+ self::the_footer_link(
+ $privacy_url,
+ __( "Automattic's Privacy Policy", 'jetpack' ),
+ _x( 'Privacy', 'Navigation item', 'jetpack' ),
+ $is_dev_mode_or_connected
+ );
+
+ // Network Admin Jetpack dashboard.
+ if ( is_multisite() && current_user_can( 'jetpack_network_sites_page' ) ) {
+ self::the_footer_link(
+ network_admin_url( 'admin.php?page=jetpack' ),
+ __( "Manage your network's Jetpack Sites", 'jetpack' ),
+ _x( 'Network Sites', 'Navigation item', 'jetpack' ),
+ true
+ );
+ }
+
+ // Network Admin Jetpack settings.
+ if ( is_multisite() && current_user_can( 'jetpack_network_settings_page' ) ) {
+ self::the_footer_link(
+ network_admin_url( 'admin.php?page=jetpack-settings' ),
+ __( "Manage your network's Jetpack settings", 'jetpack' ),
+ _x( 'Network Settings', 'Navigation item', 'jetpack' ),
+ true
+ );
+ }
+
+ // Legacy Modules page.
+ if ( current_user_can( 'manage_options' ) && $is_dev_mode_or_connected ) {
+ self::the_footer_link(
+ admin_url( 'admin.php?page=jetpack_modules' ),
+ __( 'Access the full list of Jetpack modules available on your site', 'jetpack' ),
+ _x( 'Modules', 'Navigation item', 'jetpack' ),
+ true
+ );
+ }
+
+ // Debugger.
+ if ( current_user_can( 'manage_options' ) ) {
+ self::the_footer_link(
+ admin_url( 'admin.php?page=jetpack-debugger' ),
+ __( "Test your site's compatibility with Jetpack", 'jetpack' ),
+ _x( 'Debug', 'Navigation item', 'jetpack' ),
+ true
+ );
+ }
+ ?>
+ </ul>
+ </div>
+ <?php
+ }
}