PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.1.3
Jetpack – WP Security, Backup, Speed, & Growth v12.1.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-rtl.css 3 years ago admin-menu-rtl.min.css 3 years ago admin-menu.css 3 years ago admin-menu.js 3 years ago admin-menu.min.css 3 years ago class-admin-menu.php 3 years ago class-atomic-admin-menu.php 3 years ago class-base-admin-menu.php 3 years ago class-dashboard-switcher-tracking.php 3 years ago class-domain-only-admin-menu.php 3 years ago class-jetpack-admin-menu.php 3 years ago class-p2-admin-menu.php 4 years ago class-wpcom-admin-menu.php 3 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 3 years ago menu-mappings.php 3 years ago
load.php
137 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'] ) && 0 === strpos( 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 * Gets the name of the class that customizes the admin menu.
43 *
44 * @return string Class name.
45 */
46 function get_admin_menu_class() {
47 // WordPress.com Atomic sites.
48 if ( ( new Host() )->is_woa_site() ) {
49
50 // DIFM Lite In Progress Atomic Sites. Uses the same menu used for domain-only sites.
51 // Ignore this check if we are in a support session.
52 $is_difm_lite_in_progress = wpcomsh_is_site_sticker_active( 'difm-lite-in-progress' );
53 $is_support_session = defined( 'WPCOM_SUPPORT_SESSION' ) && WPCOM_SUPPORT_SESSION;
54 if ( $is_difm_lite_in_progress && ! $is_support_session ) {
55 require_once __DIR__ . '/class-domain-only-admin-menu.php';
56 return Domain_Only_Admin_Menu::class;
57 }
58
59 require_once __DIR__ . '/class-atomic-admin-menu.php';
60 return Atomic_Admin_Menu::class;
61 }
62
63 // WordPress.com Simple sites.
64 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
65 $blog_id = get_current_blog_id();
66
67 // Domain-only sites.
68 $blog_options = get_blog_option( $blog_id, 'options' );
69 $is_domain_only = ! empty( $blog_options['is_domain_only'] );
70 if ( $is_domain_only ) {
71 require_once __DIR__ . '/class-domain-only-admin-menu.php';
72 return Domain_Only_Admin_Menu::class;
73 }
74
75 // DIFM Lite In Progress Sites. Uses the same menu used for domain-only sites.
76 // Ignore this check if we are in a support session.
77 $is_difm_lite_in_progress = has_blog_sticker( 'difm-lite-in-progress' );
78 $is_support_session = defined( 'WPCOM_SUPPORT_SESSION' ) && WPCOM_SUPPORT_SESSION;
79 if ( $is_difm_lite_in_progress && ! $is_support_session ) {
80 require_once __DIR__ . '/class-domain-only-admin-menu.php';
81 return Domain_Only_Admin_Menu::class;
82 }
83
84 // P2 sites.
85 require_once WP_CONTENT_DIR . '/lib/wpforteams/functions.php';
86 if ( \WPForTeams\is_wpforteams_site( $blog_id ) ) {
87 require_once __DIR__ . '/class-p2-admin-menu.php';
88 return P2_Admin_Menu::class;
89 }
90
91 // Rest of simple sites.
92 require_once __DIR__ . '/class-wpcom-admin-menu.php';
93 return WPcom_Admin_Menu::class;
94 }
95
96 // Jetpack sites.
97 require_once __DIR__ . '/class-jetpack-admin-menu.php';
98 return Jetpack_Admin_Menu::class;
99 }
100
101 /**
102 * Filters the name of the class that customizes the admin menu. It should extends the `Base_Admin_Menu` class.
103 *
104 * @module masterbar
105 *
106 * @since 9.6.0
107 *
108 * @param string $admin_menu_class Class name.
109 */
110 $admin_menu_class = apply_filters( 'jetpack_admin_menu_class', get_admin_menu_class() );
111 if ( should_customize_nav( $admin_menu_class ) ) {
112 /** The admin menu singleton instance. @var Base_Admin_Menu $instance */
113 $admin_menu_class::get_instance();
114
115 /**
116 * Trigger an event when the user uses the dashboard quick switcher.
117 *
118 * @param string $screen The current screen.
119 * @param string $view The view the user choosed to go to.
120 */
121 function dashboard_quick_switcher_record_usage( $screen, $view ) {
122 require_once __DIR__ . '/class-dashboard-switcher-tracking.php';
123
124 $tracking = new Dashboard_Switcher_Tracking(
125 new Tracking( Dashboard_Switcher_Tracking::get_jetpack_tracking_product() ),
126 array( Dashboard_Switcher_Tracking::class, 'wpcom_tracks_record_event' ),
127 Dashboard_Switcher_Tracking::get_plan()
128 );
129
130 $tracking->record_switch_event( $screen, $view );
131 }
132
133 \add_action( 'jetpack_dashboard_switcher_changed_view', __NAMESPACE__ . '\dashboard_quick_switcher_record_usage', 10, 2 );
134 } else {
135 \add_filter( 'jetpack_load_admin_menu_class', '__return_false' );
136 }
137