PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 13.3.3
Jetpack – WP Security, Backup, Speed, & Growth v13.3.3
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 / modules / masterbar / admin-menu / load.php
jetpack / modules / masterbar / admin-menu Last commit date
admin-menu-nav-unification-rtl.css 2 years ago admin-menu-nav-unification-rtl.min.css 2 years ago admin-menu-nav-unification.css 2 years ago admin-menu-nav-unification.min.css 2 years ago admin-menu-rtl.css 2 years ago admin-menu-rtl.min.css 2 years ago admin-menu.css 2 years ago admin-menu.js 2 years ago admin-menu.min.css 2 years ago class-admin-menu.php 2 years ago class-atomic-admin-menu.php 2 years ago class-base-admin-menu.php 2 years ago class-dashboard-switcher-tracking.php 3 years ago class-domain-only-admin-menu.php 2 years ago class-jetpack-admin-menu.php 2 years ago class-p2-admin-menu.php 4 years ago class-wpcom-admin-menu.php 2 years ago class-wpcom-email-subscription-checker.php 3 years ago dashicon-set.php 4 years ago globe-icon.svg 3 years ago load.php 2 years ago menu-mappings.php 3 years ago
load.php
170 lines
1 <?php
2 /**
3 * Admin Menu loader.
4 *
5 * @package Jetpack
6 */
7
8 namespace Automattic\Jetpack\Dashboard_Customizations;
9
10 use Automattic\Jetpack\Status\Host;
11 use Automattic\Jetpack\Tracking;
12
13 /**
14 * Checks whether the navigation customizations should be performed for the given class.
15 *
16 * @param string $admin_menu_class Class name.
17 *
18 * @return bool
19 */
20 function should_customize_nav( $admin_menu_class ) {
21 // Make sure the class extends the base admin menu class.
22 if ( ! is_subclass_of( $admin_menu_class, Base_Admin_Menu::class ) ) {
23 return false;
24 }
25
26 $is_api_request = defined( 'REST_REQUEST' ) && REST_REQUEST || isset( $_SERVER['REQUEST_URI'] ) && str_starts_with( filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ) ), '/?rest_route=%2Fwpcom%2Fv2%2Fadmin-menu' );
27
28 // No nav customizations on WP Admin of Atomic sites when SSO is disabled.
29 if ( is_a( $admin_menu_class, Atomic_Admin_Menu::class, true ) && ! $is_api_request && ! \Jetpack::is_module_active( 'sso' ) ) {
30 return false;
31 }
32
33 // No nav customizations on WP Admin of Jetpack sites.
34 if ( is_a( $admin_menu_class, Jetpack_Admin_Menu::class, true ) && ! $is_api_request ) {
35 return false;
36 }
37
38 return true;
39 }
40
41 /**
42 * Hides the Customizer menu items when the block theme is active by removing the dotcom-specific actions.
43 * They are not needed for block themes.
44 *
45 * @see https://github.com/Automattic/jetpack/pull/36017
46 */
47 function hide_customizer_menu_on_block_theme() {
48 add_action(
49 'init',
50 function () {
51 if ( wp_is_block_theme() && ! is_customize_preview() ) {
52 remove_action( 'customize_register', 'add_logotool_button', 20 );
53 remove_action( 'customize_register', 'footercredits_register', 99 );
54 remove_action( 'customize_register', 'wpcom_disable_customizer_site_icon', 20 );
55
56 if ( class_exists( '\Jetpack_Fonts' ) ) {
57 $jetpack_fonts_instance = \Jetpack_Fonts::get_instance();
58 remove_action( 'customize_register', array( $jetpack_fonts_instance, 'register_controls' ) );
59 remove_action( 'customize_register', array( $jetpack_fonts_instance, 'maybe_prepopulate_option' ), 0 );
60 }
61
62 remove_action( 'customize_register', array( 'Jetpack_Fonts_Typekit', 'maybe_override_for_advanced_mode' ), 20 );
63
64 remove_action( 'customize_register', 'Automattic\Jetpack\Dashboard_Customizations\register_css_nudge_control' );
65
66 remove_action( 'customize_register', array( 'Jetpack_Custom_CSS_Enhancements', 'customize_register' ) );
67 }
68 }
69 );
70 }
71
72 /**
73 * Gets the name of the class that customizes the admin menu.
74 *
75 * @return string Class name.
76 */
77 function get_admin_menu_class() {
78 hide_customizer_menu_on_block_theme();
79
80 // WordPress.com Atomic sites.
81 if ( ( new Host() )->is_woa_site() ) {
82
83 // DIFM Lite In Progress Atomic Sites. Uses the same menu used for domain-only sites.
84 // Ignore this check if we are in a support session.
85 $is_difm_lite_in_progress = wpcomsh_is_site_sticker_active( 'difm-lite-in-progress' );
86 $is_support_session = defined( 'WPCOM_SUPPORT_SESSION' ) && WPCOM_SUPPORT_SESSION;
87 if ( $is_difm_lite_in_progress && ! $is_support_session ) {
88 require_once __DIR__ . '/class-domain-only-admin-menu.php';
89 return Domain_Only_Admin_Menu::class;
90 }
91
92 require_once __DIR__ . '/class-atomic-admin-menu.php';
93 return Atomic_Admin_Menu::class;
94 }
95
96 // WordPress.com Simple sites.
97 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
98 $blog_id = get_current_blog_id();
99
100 // Domain-only sites.
101 $blog_options = get_blog_option( $blog_id, 'options' );
102 $is_domain_only = ! empty( $blog_options['is_domain_only'] );
103 if ( $is_domain_only ) {
104 require_once __DIR__ . '/class-domain-only-admin-menu.php';
105 return Domain_Only_Admin_Menu::class;
106 }
107
108 // DIFM Lite In Progress Sites. Uses the same menu used for domain-only sites.
109 // Ignore this check if we are in a support session.
110 $is_difm_lite_in_progress = has_blog_sticker( 'difm-lite-in-progress' );
111 $is_support_session = defined( 'WPCOM_SUPPORT_SESSION' ) && WPCOM_SUPPORT_SESSION;
112 if ( $is_difm_lite_in_progress && ! $is_support_session ) {
113 require_once __DIR__ . '/class-domain-only-admin-menu.php';
114 return Domain_Only_Admin_Menu::class;
115 }
116
117 // P2 sites.
118 require_once WP_CONTENT_DIR . '/lib/wpforteams/functions.php';
119 if ( \WPForTeams\is_wpforteams_site( $blog_id ) ) {
120 require_once __DIR__ . '/class-p2-admin-menu.php';
121 return P2_Admin_Menu::class;
122 }
123
124 // Rest of simple sites.
125 require_once __DIR__ . '/class-wpcom-admin-menu.php';
126 return WPcom_Admin_Menu::class;
127 }
128
129 // Jetpack sites.
130 require_once __DIR__ . '/class-jetpack-admin-menu.php';
131 return Jetpack_Admin_Menu::class;
132 }
133
134 /**
135 * Filters the name of the class that customizes the admin menu. It should extends the `Base_Admin_Menu` class.
136 *
137 * @module masterbar
138 *
139 * @since 9.6.0
140 *
141 * @param string $admin_menu_class Class name.
142 */
143 $admin_menu_class = apply_filters( 'jetpack_admin_menu_class', get_admin_menu_class() );
144 if ( should_customize_nav( $admin_menu_class ) ) {
145 /** The admin menu singleton instance. @var Base_Admin_Menu $instance */
146 $admin_menu_class::get_instance();
147
148 /**
149 * Trigger an event when the user uses the dashboard quick switcher.
150 *
151 * @param string $screen The current screen.
152 * @param string $view The view the user choosed to go to.
153 */
154 function dashboard_quick_switcher_record_usage( $screen, $view ) {
155 require_once __DIR__ . '/class-dashboard-switcher-tracking.php';
156
157 $tracking = new Dashboard_Switcher_Tracking(
158 new Tracking( Dashboard_Switcher_Tracking::get_jetpack_tracking_product() ),
159 array( Dashboard_Switcher_Tracking::class, 'wpcom_tracks_record_event' ),
160 Dashboard_Switcher_Tracking::get_plan()
161 );
162
163 $tracking->record_switch_event( $screen, $view );
164 }
165
166 \add_action( 'jetpack_dashboard_switcher_changed_view', __NAMESPACE__ . '\dashboard_quick_switcher_record_usage', 10, 2 );
167 } else {
168 \add_filter( 'jetpack_load_admin_menu_class', '__return_false' );
169 }
170