7
7
* @package automattic/jetpack-mu-wpcom
8
8
*/
9
9
10
- use Automattic \Jetpack \Admin_UI \Admin_Menu as Jetpack_Admin_UI_Admin ;
11
10
use Automattic \Jetpack \Connection \Manager as Connection_Manager ;
12
11
use Automattic \Jetpack \Redirect ;
13
- use Automattic \Jetpack \Status ;
14
12
use Automattic \Jetpack \Subscribers_Dashboard \Dashboard as Subscribers_Dashboard ;
15
13
16
14
/**
@@ -200,133 +198,104 @@ function wpcom_add_hosting_menu() {
200
198
}
201
199
add_action ( 'admin_menu ' , 'wpcom_add_hosting_menu ' );
202
200
203
- /**
204
- * Register the submenu items for Jetpack menu.
205
- *
206
- * We require a separate function for this because the priority needs to be 999.
207
- *
208
- * @return void
209
- */
210
- function wpcom_add_untangled_jetpack_menu () {
211
- $ domain = wp_parse_url ( home_url (), PHP_URL_HOST );
212
-
213
- wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'calypso-scanner ' ) ) );
214
- wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'calypso-backups ' ) ) );
215
-
216
- Jetpack_Admin_UI_Admin::add_menu (
217
- esc_attr__ ( 'Scan ' , 'jetpack-mu-wpcom ' ),
218
- __ ( 'Scan ' , 'jetpack-mu-wpcom ' ),
219
- 'manage_options ' ,
220
- 'https://wordpress.com/scan/ ' . $ domain ,
221
- /**
222
- * Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
223
- */
224
- null ,
225
- 5
226
- );
227
-
228
- Jetpack_Admin_UI_Admin::add_menu (
229
- esc_attr__ ( 'Backup ' , 'jetpack-mu-wpcom ' ),
230
- __ ( 'Backup ' , 'jetpack-mu-wpcom ' ),
231
- 'manage_options ' ,
232
- 'https://wordpress.com/backup/ ' . $ domain ,
233
- /**
234
- * Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
235
- */
236
- null ,
237
- 4
238
- );
239
- }
240
-
241
- add_action ( 'admin_menu ' , 'wpcom_add_untangled_jetpack_menu ' , 999 );
242
-
243
201
/**
244
202
* Adds WordPress.com submenu items related to Jetpack under the Jetpack admin menu.
245
203
*/
246
204
function wpcom_add_jetpack_submenu () {
247
205
$ is_simple_site = defined ( 'IS_WPCOM ' ) && IS_WPCOM ;
248
- $ is_atomic_site = ! $ is_simple_site ;
249
206
$ uses_wp_admin_interface = get_option ( 'wpcom_admin_interface ' ) === 'wp-admin ' ;
250
207
251
- if ( ! $ uses_wp_admin_interface ) {
252
- return ;
253
- }
254
-
255
- if ( $ is_atomic_site && ( ( new Status () )->is_offline_mode () || ! ( new Connection_Manager ( 'jetpack ' ) )->is_user_connected () ) ) {
256
- return ;
257
- }
258
-
259
208
$ blog_id = Connection_Manager::get_site_id ();
260
209
if ( is_wp_error ( $ blog_id ) ) {
261
210
return ;
262
211
}
263
212
264
- // Hide submenu items that link to Jetpack Cloud.
265
- wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'cloud-activity-log-wp-menu ' , array ( 'site ' => $ blog_id ) ) ) );
266
- wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'cloud-scan-history-wp-menu ' ) ) );
267
- wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'jetpack-menu-jetpack-manage-subscribers ' , array ( 'site ' => $ blog_id ) ) ) );
213
+ $ domain = wp_parse_url ( home_url (), PHP_URL_HOST );
268
214
269
- $ domain = wp_parse_url ( home_url (), PHP_URL_HOST );
270
- $ activity_log_url = 'https://wordpress.com/activity-log/ ' . $ domain ;
271
- $ monetize_url = 'https://wordpress.com/earn/ ' . $ domain ;
272
- $ subscribers_url = 'https://wordpress.com/subscribers/ ' . $ domain ;
273
- $ newsletter_url = 'https://wordpress.com/settings/newsletter/ ' . $ domain ;
274
- $ podcasting_url = 'https://wordpress.com/settings/podcasting/ ' . $ domain ;
215
+ // Jetpack > Scan.
216
+ wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'cloud-scan-history-wp-menu ' ) ) );
217
+ wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'calypso-scanner ' ) ) );
218
+ add_submenu_page (
219
+ 'jetpack ' ,
220
+ esc_attr__ ( 'Scan ' , 'jetpack-mu-wpcom ' ),
221
+ __ ( 'Scan ' , 'jetpack-mu-wpcom ' ),
222
+ 'manage_options ' ,
223
+ 'https://wordpress.com/scan/ ' . $ domain ,
224
+ null // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
225
+ );
275
226
276
- // Add submenu items that link to WordPress.com.
227
+ // Jetpack > Backup.
228
+ wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'calypso-backups ' ) ) );
277
229
add_submenu_page (
278
230
'jetpack ' ,
279
- __ ( 'Activity Log ' , 'jetpack-mu-wpcom ' ),
280
- __ ( 'Activity Log ' , 'jetpack-mu-wpcom ' ),
231
+ esc_attr__ ( 'Backup ' , 'jetpack-mu-wpcom ' ),
232
+ __ ( 'Backup ' , 'jetpack-mu-wpcom ' ),
281
233
'manage_options ' ,
282
- $ activity_log_url ,
234
+ ' https://wordpress.com/backup/ ' . $ domain ,
283
235
null // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
284
236
);
285
237
238
+ // Jetpack > Monetize.
286
239
add_submenu_page (
287
240
'jetpack ' ,
288
- __ ( 'Monetize ' , 'jetpack-mu-wpcom ' ),
241
+ esc_attr__ ( 'Monetize ' , 'jetpack-mu-wpcom ' ),
289
242
__ ( 'Monetize ' , 'jetpack-mu-wpcom ' ),
290
243
'manage_options ' ,
291
- $ monetize_url ,
244
+ ' https://wordpress.com/earn/ ' . $ domain ,
292
245
null // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
293
246
);
294
247
295
- if ( ! apply_filters ( 'jetpack_wp_admin_subscriber_management_enabled ' , false ) ) {
248
+ if ( $ uses_wp_admin_interface ) {
249
+ // Jetpack > Activity Log.
250
+ wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'cloud-activity-log-wp-menu ' , array ( 'site ' => $ blog_id ) ) ) );
296
251
add_submenu_page (
297
252
'jetpack ' ,
298
- __ ( 'Subscribers ' , 'jetpack-mu-wpcom ' ),
299
- __ ( 'Subscribers ' , 'jetpack-mu-wpcom ' ),
253
+ __ ( 'Activity Log ' , 'jetpack-mu-wpcom ' ),
254
+ __ ( 'Activity Log ' , 'jetpack-mu-wpcom ' ),
300
255
'manage_options ' ,
301
- $ subscribers_url ,
256
+ ' https://wordpress.com/activity-log/ ' . $ domain ,
302
257
null // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
303
258
);
304
- } else {
305
- $ subscribers_dashboard = new Subscribers_Dashboard ();
306
- $ subscribers_dashboard ->add_wp_admin_submenu ();
307
- }
308
259
309
- if ( $ is_simple_site ) {
260
+ // Jetpack > Subscribers.
261
+ if ( ! apply_filters ( 'jetpack_wp_admin_subscriber_management_enabled ' , false ) ) {
262
+ wpcom_hide_submenu_page ( 'jetpack ' , esc_url ( Redirect::get_url ( 'jetpack-menu-jetpack-manage-subscribers ' , array ( 'site ' => $ blog_id ) ) ) );
263
+ add_submenu_page (
264
+ 'jetpack ' ,
265
+ __ ( 'Subscribers ' , 'jetpack-mu-wpcom ' ),
266
+ __ ( 'Subscribers ' , 'jetpack-mu-wpcom ' ),
267
+ 'manage_options ' ,
268
+ 'https://wordpress.com/subscribers/ ' . $ domain ,
269
+ null // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
270
+ );
271
+ } else {
272
+ $ subscribers_dashboard = new Subscribers_Dashboard ();
273
+ $ subscribers_dashboard ->add_wp_admin_submenu ();
274
+ }
275
+
276
+ // Jetpack > Newsletter.
277
+ if ( $ is_simple_site ) {
278
+ add_submenu_page (
279
+ 'jetpack ' ,
280
+ __ ( 'Newsletter ' , 'jetpack-mu-wpcom ' ),
281
+ __ ( 'Newsletter ' , 'jetpack-mu-wpcom ' ),
282
+ 'manage_options ' ,
283
+ 'https://wordpress.com/settings/newsletter/ ' . $ domain ,
284
+ null // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
285
+ );
286
+ }
287
+
288
+ // Jetpack > Podcasting
310
289
add_submenu_page (
311
290
'jetpack ' ,
312
- __ ( 'Newsletter ' , 'jetpack-mu-wpcom ' ),
313
- __ ( 'Newsletter ' , 'jetpack-mu-wpcom ' ),
291
+ __ ( 'Podcasting ' , 'jetpack-mu-wpcom ' ),
292
+ __ ( 'Podcasting ' , 'jetpack-mu-wpcom ' ),
314
293
'manage_options ' ,
315
- $ newsletter_url ,
294
+ ' https://wordpress.com/settings/podcasting/ ' . $ domain ,
316
295
null // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
317
296
);
318
297
}
319
298
320
- // Jetpack > Podcasting
321
- add_submenu_page (
322
- 'jetpack ' ,
323
- __ ( 'Podcasting ' , 'jetpack-mu-wpcom ' ),
324
- __ ( 'Podcasting ' , 'jetpack-mu-wpcom ' ),
325
- 'manage_options ' ,
326
- $ podcasting_url ,
327
- null // @phan-suppress-current-line PhanTypeMismatchArgumentProbablyReal -- Core should ideally document null for no-callback arg. https://core.trac.wordpress.org/ticket/52539.
328
- );
329
-
330
299
// Re-order menu.
331
300
global $ submenu ;
332
301
if ( ! isset ( $ submenu ['jetpack ' ] ) ) {
@@ -336,26 +305,35 @@ function wpcom_add_jetpack_submenu() {
336
305
$ desired_order = array (
337
306
'my-jetpack ' ,
338
307
'stats ' ,
339
- $ activity_log_url ,
308
+ 'boost ' ,
309
+ 'social ' ,
340
310
'akismet-key-config ' ,
341
- 'jetpack-search ' ,
342
- $ monetize_url ,
343
- $ subscribers_url ,
311
+ 'activity-log ' ,
312
+ 'scan ' ,
313
+ 'backup ' ,
314
+ 'forms ' ,
315
+ 'earn ' ,
316
+ 'search ' ,
317
+ 'subscribers ' ,
318
+ 'newsletter ' ,
319
+ 'podcasting ' ,
320
+ 'jetpack#/settings ' ,
321
+ 'jetpack#/dashboard ' ,
344
322
);
345
323
$ ordered_submenu = array ();
346
324
347
325
// Re-add submenu items in the desired order.
348
326
foreach ( $ desired_order as $ slug ) {
349
327
foreach ( $ submenu ['jetpack ' ] as $ item ) {
350
- if ( $ item [2 ] === $ slug ) {
328
+ if ( str_contains ( $ item [2 ], $ slug ) ) {
351
329
$ ordered_submenu [] = $ item ;
352
330
}
353
331
}
354
332
}
355
333
356
334
// Add any remaining submenu items.
357
335
foreach ( $ submenu ['jetpack ' ] as $ item ) {
358
- if ( ! in_array ( $ item[ 2 ] , $ desired_order , true ) ) {
336
+ if ( ! in_array ( $ item , $ ordered_submenu , true ) ) {
359
337
$ ordered_submenu [] = $ item ;
360
338
}
361
339
}
0 commit comments