PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.4.2
Jetpack – WP Security, Backup, Speed, & Growth v12.4.2
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 / class-p2-admin-menu.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
class-p2-admin-menu.php
201 lines
1 <?php
2 /**
3 * P2 Admin Menu file.
4 *
5 * @package Jetpack
6 */
7
8 namespace Automattic\Jetpack\Dashboard_Customizations;
9
10 require_once __DIR__ . '/class-wpcom-admin-menu.php';
11
12 /**
13 * Class P2_Admin_Menu.
14 */
15 class P2_Admin_Menu extends WPcom_Admin_Menu {
16
17 /**
18 * Slug for the "Appearance" menu item.
19 *
20 * @var string
21 */
22 private $appearance_slug = 'themes.php';
23
24 /**
25 * Slug for the "Jetpack" menu item.
26 *
27 * @var string
28 */
29 private $jetpack_slug = 'jetpack';
30
31 /**
32 * Slug for the "Upgrades" menu item.
33 *
34 * @var string
35 */
36 private $upgrades_slug = 'paid-upgrades.php';
37
38 /**
39 * Slug for the "Plugins" menu item.
40 *
41 * @var string
42 */
43 private $plugins_slug = 'plugins.php';
44
45 /**
46 * Slug for the "Tools" menu item.
47 *
48 * @var string
49 */
50 private $tools_slug = 'tools.php';
51
52 /**
53 * Whether or not the P2 is a hub.
54 *
55 * @var bool
56 */
57 private $is_hub = false;
58
59 /**
60 * Whether or not the P2 has a paid plan.
61 *
62 * @var bool
63 */
64 private $is_paid = false;
65
66 /**
67 * P2_Admin_Menu constructor.
68 */
69 protected function __construct() {
70 parent::__construct();
71
72 if (
73 defined( 'IS_WPCOM' ) && IS_WPCOM &&
74 function_exists( 'require_lib' )
75 ) {
76 require_lib( 'wpforteams' );
77
78 $current_blog_id = get_current_blog_id();
79 $this->is_hub = \WPForTeams\Workspace\is_workspace_hub( $current_blog_id );
80 $this->is_paid = \WPForTeams\has_p2_plus_plan( \WPForTeams\Workspace\get_hub_blog_id_from_blog_id( $current_blog_id ) );
81 }
82 // Appearance -> AMP. This needs to be called here in the constructor.
83 // Running it from reregister_menu_items is not early enough.
84 remove_action( 'admin_menu', 'amp_add_customizer_link' );
85 }
86
87 /**
88 * Create the desired menu output.
89 */
90 public function reregister_menu_items() {
91 parent::reregister_menu_items();
92
93 if ( ! $this->is_hub ) {
94 $this->remove_menus_for_p2_space();
95 } else {
96 $this->remove_menus_for_hub();
97 }
98
99 $this->remove_menus_for_all_p2s();
100 }
101
102 /**
103 * Remove menu items that are not applicable for P2 workspace sites.
104 */
105 private function remove_menus_for_p2_space() {
106 // Non-hub P2s can't have plans at all.
107 remove_menu_page( $this->upgrades_slug );
108 // Jetpack -> Backup.
109 remove_submenu_page( $this->jetpack_slug, 'https://wordpress.com/backup/' . $this->domain );
110 // Appearance -> Themes.
111 remove_submenu_page( $this->appearance_slug, 'https://wordpress.com/themes/' . $this->domain );
112 // Appearance -> Additional CSS.
113 $customize_custom_css_url = add_query_arg(
114 array( 'autofocus' => array( 'section' => 'css_nudge' ) ),
115 'https://wordpress.com/customize/' . $this->domain
116 );
117 remove_submenu_page( $this->appearance_slug, $customize_custom_css_url );
118
119 // Tools
120 remove_submenu_page( $this->tools_slug, 'https://wordpress.com/marketing/tools/' . $this->domain );
121 remove_submenu_page( $this->tools_slug, 'https://wordpress.com/earn/' . $this->domain );
122 }
123
124 /**
125 * Remove menu items that are not applicable for P2 hubs.
126 */
127 private function remove_menus_for_hub() {
128 // Hubs can have plans, but not domain and email products.
129 remove_submenu_page( $this->upgrades_slug, 'https://wordpress.com/domains/manage/' . $this->domain );
130 remove_submenu_page( $this->upgrades_slug, 'https://wordpress.com/email/' . $this->domain );
131 // Stats.
132 remove_menu_page( 'https://wordpress.com/stats/day/' . $this->domain );
133 // Hide posts.
134 remove_menu_page( 'edit.php' );
135 // Hide pages.
136 remove_menu_page( 'edit.php?post_type=page' );
137 // Hide media.
138 remove_menu_page( 'https://wordpress.com/media/' . $this->domain );
139 // Hide comments.
140 remove_menu_page( 'https://wordpress.com/comments/all/' . $this->domain );
141 // Hide appearance.
142 remove_menu_page( $this->appearance_slug );
143 // Tools.
144 remove_submenu_page( $this->tools_slug, 'https://wordpress.com/marketing/tools/' . $this->domain );
145 remove_submenu_page( $this->tools_slug, 'https://wordpress.com/earn/' . $this->domain );
146 remove_submenu_page( $this->tools_slug, 'https://wordpress.com/import/' . $this->domain );
147 remove_submenu_page( $this->tools_slug, 'https://wordpress.com/export/' . $this->domain );
148 add_submenu_page( $this->tools_slug, __( 'Integrations', 'jetpack' ), __( 'Integrations', 'jetpack' ), 'manage_options', 'https://wordpress.com/marketing/connections/' . $this->domain, null, 0 );
149 // Hide settings.
150 remove_submenu_page( 'options-general.php', 'options-reading.php' );
151 remove_submenu_page( 'options-general.php', 'options-writing.php' );
152 remove_submenu_page( 'options-general.php', 'options-discussion.php' );
153 }
154
155 /**
156 * Remove menu items that are not applicable for all P2s.
157 */
158 private function remove_menus_for_all_p2s() {
159 // Remove Jetpack menu item.
160 remove_menu_page( $this->jetpack_slug );
161
162 // The following menu items are hidden for both hubs and P2 sites.
163 remove_menu_page( 'link-manager.php' );
164 remove_menu_page( 'feedback' );
165 remove_menu_page( $this->plugins_slug );
166 remove_menu_page( 'https://wordpress.com/plugins/' . $this->domain );
167 remove_menu_page( 'https://wordpress.com/inbox/' . $this->domain );
168
169 remove_submenu_page( 'https://wordpress.com/settings/general/' . $this->domain, 'sharing' );
170 remove_submenu_page( 'https://wordpress.com/settings/general/' . $this->domain, 'polls&action=options' );
171 remove_submenu_page( 'https://wordpress.com/settings/general/' . $this->domain, 'ratings&action=options' );
172 remove_submenu_page(
173 'options-general.php',
174 'https://wordpress.com/hosting-config/' . $this->domain
175 );
176 remove_submenu_page(
177 'https://wordpress.com/settings/general/' . $this->domain,
178 'https://wordpress.com/marketing/sharing-buttons/' . $this->domain
179 );
180
181 /** This action is documented in `wp-content/plugins/p2-editor/classes/p2-editor-admin.php` */
182 if ( apply_filters( 'p2tenberg_admin_patterns', apply_filters( 'p2editor_admin_patterns', true ) ) !== true ) {
183 remove_menu_page( 'edit.php?post_type=p2_pattern' );
184 }
185 remove_submenu_page(
186 'edit.php?post_type=p2_pattern',
187 'edit-tags.php?taxonomy=post_tag&amp;post_type=p2_pattern'
188 );
189
190 // Hide performance settings.
191 remove_submenu_page( 'options-general.php', 'https://wordpress.com/settings/performance/' . $this->domain );
192 }
193
194 /**
195 * Override, don't add the woocommerce installation menu on any p2s.
196 *
197 * @param array|null $current_plan The site's plan.
198 */
199 public function add_woocommerce_installation_menu( $current_plan = null ) {} // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
200 }
201