PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.3-beta
16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 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 All 507 releases
← All changes | jetpack_vendor/automattic/jetpack-masterbar/src/admin-menu/class-wpcom-admin-menu.php +2 -189 13.6.2 → 16.3-beta View file →
@@ -6,9 +6,8 @@
6 6 */
7 7
8 8 namespace Automattic\Jetpack\Masterbar;
9 9
10 -use Automattic\Jetpack\Status;
11 10 use Jetpack_Custom_CSS;
12 11 use JITM;
13 12
14 13 require_once __DIR__ . '/class-admin-menu.php';
@@ -17,15 +16,8 @@
17 16 * Class WPcom_Admin_Menu.
18 17 */
19 18 class WPcom_Admin_Menu extends Admin_Menu {
20 19 /**
21 - * Holds the current plan, set by get_current_plan().
22 - *
23 - * @var array
24 - */
25 - private $current_plan = array();
26 -
27 - /**
28 20 * WPcom_Admin_Menu constructor.
29 21 */
30 22 protected function __construct() {
31 23 parent::__construct();
@@ -31,9 +23,9 @@
31 23 parent::__construct();
32 24
33 25 add_action( 'wp_ajax_sidebar_state', array( $this, 'ajax_sidebar_state' ) );
34 26 add_action( 'wp_ajax_jitm_dismiss', array( $this, 'wp_ajax_jitm_dismiss' ) );
35 - add_action( 'wp_ajax_upsell_nudge_jitm', array( $this, 'wp_ajax_upsell_nudge_jitm' ) );
27 + add_action( 'adminmenu', array( $this, 'render_upsell_nudge' ), 100 );
36 28 add_action( 'admin_init', array( $this, 'sync_sidebar_collapsed_state' ) );
37 29 add_action( 'admin_menu', array( $this, 'remove_submenus' ), 140 ); // After hookpress hook at 130.
38 30 }
39 31
@@ -42,21 +34,15 @@
42 34 */
43 35 public function reregister_menu_items() {
44 36 parent::reregister_menu_items();
45 37
46 - $this->add_my_home_menu();
47 - $this->add_my_mailboxes_menu();
48 38 $this->remove_gutenberg_menu();
49 39
50 40 // Not needed outside of wp-admin.
51 41 if ( ! $this->is_api_request ) {
52 - $this->add_browse_sites_link();
53 - $this->add_site_card_menu();
54 42 $this->add_new_site_link();
55 43 }
56 44
57 - $this->add_woocommerce_installation_menu( $this->get_current_plan() );
58 -
59 45 ksort( $GLOBALS['menu'] );
60 46 }
61 47
62 48 /**
@@ -101,22 +87,8 @@
101 87 return is_countable( $blogs ) ? count( $blogs ) : 0;
102 88 }
103 89
104 90 /**
105 - * Adds the site switcher link if user has more than one site.
106 - */
107 - public function add_browse_sites_link() {
108 - if ( $this->get_current_user_blog_count() < 2 ) {
109 - return;
110 - }
111 -
112 - // Add the menu item.
113 - // @phan-suppress-next-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
114 - add_menu_page( __( 'site-switcher', 'jetpack-masterbar' ), __( 'Browse sites', 'jetpack-masterbar' ), 'read', 'https://wordpress.com/sites', null, 'dashicons-arrow-left-alt2', 0 );
115 - add_filter( 'add_menu_classes', array( $this, 'set_browse_sites_link_class' ) );
116 - }
117 -
118 - /**
119 91 * Adds a custom element class for Site Switcher menu item.
120 92 *
121 93 * @param array $menu Associative array of administration menu items.
122 94 * @return array
@@ -147,83 +119,8 @@
147 119 add_menu_page( __( 'Add New Site', 'jetpack-masterbar' ), __( 'Add New Site', 'jetpack-masterbar' ), 'read', 'https://wordpress.com/start?ref=calypso-sidebar', null, 'dashicons-plus-alt' );
148 120 }
149 121
150 122 /**
151 - * Adds site card component.
152 - */
153 - public function add_site_card_menu() {
154 - $default = plugins_url( 'globe-icon.svg', __FILE__ );
155 - $icon = get_site_icon_url( 32, $default );
156 - $blog_name = get_option( 'blogname' ) !== '' ? get_option( 'blogname' ) : $this->domain;
157 - $status = new Status();
158 - $is_private_site = $status->is_private_site();
159 - $is_coming_soon = $status->is_coming_soon();
160 -
161 - if ( $default === $icon && blavatar_exists( $this->domain ) ) {
162 - $icon = blavatar_url( $this->domain, 'img', 32 );
163 - }
164 -
165 - $badge = '';
166 - if ( $is_private_site || $is_coming_soon ) {
167 - $badge .= sprintf(
168 - '<span class="site__badge site__badge-private">%s</span>',
169 - $is_coming_soon ? esc_html__( 'Coming Soon', 'jetpack-masterbar' ) : esc_html__( 'Private', 'jetpack-masterbar' )
170 - );
171 - }
172 -
173 - if ( function_exists( 'is_simple_site_redirect' ) && is_simple_site_redirect( $this->domain ) ) {
174 - $badge .= '<span class="site__badge site__badge-redirect">' . esc_html__( 'Redirect', 'jetpack-masterbar' ) . '</span>';
175 - }
176 -
177 - if ( ! empty( get_option( 'options' )['is_domain_only'] ) ) {
178 - $badge .= '<span class="site__badge site__badge-domain-only">' . esc_html__( 'Domain', 'jetpack-masterbar' ) . '</span>';
179 - }
180 -
181 - $site_card = '
182 -<div class="site__info">
183 - <div class="site__title">%1$s</div>
184 - <div class="site__domain">%2$s</div>
185 - %3$s
186 -</div>';
187 -
188 - $site_card = sprintf(
189 - $site_card,
190 - $blog_name,
191 - $this->domain,
192 - $badge
193 - );
194 -
195 - // @phan-suppress-next-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
196 - add_menu_page( 'site-card', $site_card, 'read', get_home_url(), null, $icon, 1 );
197 - add_filter( 'add_menu_classes', array( $this, 'set_site_card_menu_class' ) );
198 - }
199 -
200 - /**
201 - * Adds a custom element class and id for Site Card's menu item.
202 - *
203 - * @param array $menu Associative array of administration menu items.
204 - * @return array
205 - */
206 - public function set_site_card_menu_class( array $menu ) {
207 - foreach ( $menu as $key => $menu_item ) {
208 - if ( 'site-card' !== $menu_item[3] ) {
209 - continue;
210 - }
211 -
212 - $classes = ' toplevel_page_site-card';
213 - if ( blavatar_exists( $this->domain ) ) {
214 - $classes .= ' has-site-icon';
215 - }
216 -
217 - $menu[ $key ][4] = $menu_item[4] . $classes;
218 - $menu[ $key ][5] = 'toplevel_page_site_card';
219 - break;
220 - }
221 -
222 - return $menu;
223 - }
224 -
225 - /**
226 123 * Returns the first available upsell nudge.
227 124 *
228 125 * @return array
229 126 */
@@ -259,68 +156,8 @@
259 156 }
260 157 }
261 158
262 159 /**
263 - * Adds Stats menu.
264 - */
265 - public function add_stats_menu() {
266 - $menu_title = __( 'Stats', 'jetpack-masterbar' );
267 -
268 - if ( ! $this->is_api_request ) {
269 - $menu_title .= sprintf(
270 - '<img class="sidebar-unified__sparkline" width="80" height="20" src="%1$s" alt="%2$s">',
271 - esc_url( site_url( 'wp-includes/charts/admin-bar-hours-scale-2x.php?masterbar=1&s=' . get_current_blog_id() ) ),
272 - esc_attr__( 'Hourly views', 'jetpack-masterbar' )
273 - );
274 - }
275 -
276 - // @phan-suppress-next-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
277 - add_menu_page( __( 'Stats', 'jetpack-masterbar' ), $menu_title, 'read', 'https://wordpress.com/stats/day/' . $this->domain, null, 'dashicons-chart-bar', 3 );
278 - }
279 -
280 - /**
281 - * Gets the current plan and stores it in $this->current_plan so the database is only called once per request.
282 - *
283 - * @return array
284 - */
285 - private function get_current_plan() {
286 - if ( empty( $this->current_plan ) && class_exists( 'WPCOM_Store_API' ) ) {
287 - $this->current_plan = \WPCOM_Store_API::get_current_plan( get_current_blog_id() );
288 - }
289 - return $this->current_plan;
290 - }
291 -
292 - /**
293 - * Adds Upgrades menu.
294 - *
295 - * @param string $plan The current WPCOM plan of the blog.
296 - */
297 - public function add_upgrades_menu( $plan = null ) {
298 - $current_plan = $this->get_current_plan();
299 - if ( ! empty( $current_plan['product_name_short'] ) ) {
300 - $plan = $current_plan['product_name_short'];
301 - }
302 -
303 - parent::add_upgrades_menu( $plan );
304 -
305 - $last_upgrade_submenu_position = $this->get_submenu_item_count( 'paid-upgrades.php' );
306 -
307 - // @phan-suppress-next-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
308 - add_submenu_page( 'paid-upgrades.php', __( 'Domains', 'jetpack-masterbar' ), __( 'Domains', 'jetpack-masterbar' ), 'manage_options', 'https://wordpress.com/domains/manage/' . $this->domain, null, $last_upgrade_submenu_position - 1 );
309 -
310 - /** This filter is already documented in modules/masterbar/admin-menu/class-atomic-admin-menu.php */
311 - if ( apply_filters( 'jetpack_show_wpcom_upgrades_email_menu', false ) ) {
312 - // @phan-suppress-next-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
313 - add_submenu_page( 'paid-upgrades.php', __( 'Emails', 'jetpack-masterbar' ), __( 'Emails', 'jetpack-masterbar' ), 'manage_options', 'https://wordpress.com/email/' . $this->domain, null, $last_upgrade_submenu_position );
314 - }
315 -
316 - if ( defined( 'WPCOM_ENABLE_ADD_ONS_MENU_ITEM' ) && WPCOM_ENABLE_ADD_ONS_MENU_ITEM ) {
317 - // @phan-suppress-next-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
318 - add_submenu_page( 'paid-upgrades.php', __( 'Add-Ons', 'jetpack-masterbar' ), __( 'Add-Ons', 'jetpack-masterbar' ), 'manage_options', 'https://wordpress.com/add-ons/' . $this->domain, null, 1 );
319 - }
320 - }
321 -
322 - /**
323 160 * Adds Appearance menu.
324 161 *
325 162 * @return string The Customizer URL.
326 163 */
@@ -364,30 +201,11 @@
364 201 $slug = current_user_can( 'list_users' ) ? 'users.php' : 'profile.php';
365 202 $this->update_submenus( $slug, $submenus_to_update );
366 203 // @phan-suppress-next-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
367 204 add_submenu_page( 'users.php', esc_attr__( 'Add New User', 'jetpack-masterbar' ), __( 'Add New User', 'jetpack-masterbar' ), 'promote_users', 'https://wordpress.com/people/new/' . $this->domain, null, 1 );
368 - // @phan-suppress-next-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
369 - add_submenu_page( 'users.php', esc_attr__( 'Subscribers', 'jetpack-masterbar' ), __( 'Subscribers', 'jetpack-masterbar' ), 'list_users', 'https://wordpress.com/subscribers/' . $this->domain, null, 3 );
370 205 }
371 206
372 207 /**
373 - * Adds Settings menu.
374 - */
375 - public function add_options_menu() {
376 - parent::add_options_menu();
377 -
378 - // @phan-suppress-next-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
379 - add_submenu_page( 'options-general.php', esc_attr__( 'Hosting Configuration', 'jetpack-masterbar' ), __( 'Hosting Configuration', 'jetpack-masterbar' ), 'manage_options', 'https://wordpress.com/hosting-config/' . $this->domain, null, 10 );
380 - }
381 -
382 - /**
383 - * Adds My Home menu.
384 - */
385 - public function add_my_home_menu() {
386 - $this->update_menu( 'index.php', 'https://wordpress.com/home/' . $this->domain, __( 'My Home', 'jetpack-masterbar' ), 'read', 'dashicons-admin-home' );
387 - }
388 -
389 - /**
390 208 * Also remove the Gutenberg plugin menu.
391 209 */
392 210 public function remove_gutenberg_menu() {
393 211 // Always remove the Gutenberg menu.
@@ -432,9 +250,9 @@
432 250 );
433 251
434 252 update_user_attribute( $user_id, 'calypso_preferences', $value );
435 253
436 - die();
254 + die( 0 );
437 255 }
438 256
439 257 /**
440 258 * Handle ajax requests to dismiss a just-in-time-message
@@ -481,13 +299,8 @@
481 299
482 300 /* @see https://github.com/Automattic/wp-calypso/issues/49210 */
483 301 remove_submenu_page( 'index.php', 'my-blogs' );
484 302 $_registered_pages['admin_page_my-blogs'] = true; // phpcs:ignore
485 -
486 - remove_submenu_page( 'paid-upgrades.php', 'premium-themes' );
487 - remove_submenu_page( 'paid-upgrades.php', 'domains' );
488 - remove_submenu_page( 'paid-upgrades.php', 'my-upgrades' );
489 - remove_submenu_page( 'paid-upgrades.php', 'billing-history' );
490 303
491 304 remove_submenu_page( 'themes.php', 'customize.php?autofocus[panel]=amp_panel&return=' . rawurlencode( admin_url() ) );
492 305
493 306 remove_submenu_page( 'users.php', 'wpcom-invite-users' ); // Wpcom_Invite_Users::action_admin_menu.