PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.1-beta.3
Jetpack – WP Security, Backup, Speed, & Growth v16.1-beta.3
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 / jetpack_vendor / automattic / jetpack-masterbar / src / admin-menu / load.php
jetpack / jetpack_vendor / automattic / jetpack-masterbar / src / admin-menu Last commit date
class-admin-menu.php 5 months ago class-atomic-admin-menu.php 3 weeks ago class-base-admin-menu.php 2 months ago class-dashboard-switcher-tracking.php 2 years ago class-domain-only-admin-menu.php 9 months ago class-wpcom-admin-menu.php 5 months ago class-wpcom-email-subscription-checker.php 2 years ago dashicon-set.php 2 years ago globe-icon.svg 2 years ago load.php 9 months ago menu-mappings.php 9 months ago
load.php
130 lines
1 <?php
2 /**
3 * Admin Menu loader.
4 *
5 * @package automattic/jetpack-masterbar
6 */
7
8 namespace Automattic\Jetpack\Masterbar;
9
10 use Automattic\Jetpack\Modules;
11 use Automattic\Jetpack\Status\Host;
12 use Automattic\Jetpack\Tracking;
13
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit( 0 );
16 }
17
18 /**
19 * Checks whether the navigation customizations should be performed for the given class.
20 *
21 * @param string $admin_menu_class Class name.
22 *
23 * @return bool
24 */
25 function should_customize_nav( $admin_menu_class ) {
26 // Make sure the class extends the base admin menu class.
27 if ( ! is_subclass_of( $admin_menu_class, Base_Admin_Menu::class ) ) {
28 return false;
29 }
30
31 $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' );
32
33 // No nav customizations on WP Admin of Atomic sites when SSO is disabled.
34 if ( is_a( $admin_menu_class, Atomic_Admin_Menu::class, true ) && ! $is_api_request && ! ( new Modules() )->is_active( 'sso' ) ) {
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 // Rest of simple sites.
85 require_once __DIR__ . '/class-wpcom-admin-menu.php';
86 return WPcom_Admin_Menu::class;
87 }
88
89 // Default menu class.
90 require_once __DIR__ . '/class-admin-menu.php';
91 return Admin_Menu::class;
92 }
93
94 /**
95 * Filters the name of the class that customizes the admin menu. It should extends the `Base_Admin_Menu` class.
96 *
97 * @module masterbar
98 *
99 * @since jetpack-9.6.0
100 *
101 * @param string $admin_menu_class Class name.
102 */
103 $admin_menu_class = apply_filters( 'jetpack_admin_menu_class', get_admin_menu_class() );
104 if ( should_customize_nav( $admin_menu_class ) ) {
105 /** The admin menu singleton instance. @var Base_Admin_Menu $instance */
106 $admin_menu_class::get_instance();
107
108 /**
109 * Trigger an event when the user uses the dashboard quick switcher.
110 *
111 * @param string $screen The current screen.
112 * @param string $view The view the user choosed to go to.
113 */
114 function dashboard_quick_switcher_record_usage( $screen, $view ) {
115 require_once __DIR__ . '/class-dashboard-switcher-tracking.php';
116
117 $tracking = new Dashboard_Switcher_Tracking(
118 new Tracking( Dashboard_Switcher_Tracking::get_jetpack_tracking_product() ),
119 array( Dashboard_Switcher_Tracking::class, 'wpcom_tracks_record_event' ),
120 Dashboard_Switcher_Tracking::get_plan()
121 );
122
123 $tracking->record_switch_event( $screen, $view );
124 }
125
126 \add_action( 'jetpack_dashboard_switcher_changed_view', __NAMESPACE__ . '\dashboard_quick_switcher_record_usage', 10, 2 );
127 } else {
128 \add_filter( 'jetpack_load_admin_menu_class', '__return_false' );
129 }
130