Вы взяли глобальный $menu
вместо $submenu
.Тогда вы получите список всех submenus
зарегистрированных.Вы можете добавить следующий код.Также лучше проверить, является ли пользователь администратором внутри вызова функции
function remove_admin_menus(){
global $submenu;
if(current_user_can('administrator')){
unset($submenu['woocommerce']['1']);
}
}
add_action('admin_menu', 'remove_admin_menus');
ОБНОВЛЕНИЕ
Даже если меню скрыто, доступ к странице можно получить, если онзнает URL.Для того чтобы заблокировать доступ к URL, добавьте следующее
function restrict_woo_submenu_userrole(){
$current_screen = get_current_screen();
$p_id = $current_screen->id;
if($p_id == 'edit-shop_order' && current_user_can('administrator')){
wp_die('Restricted Access.');
}
}
add_filter( 'current_screen', 'restrict_woo_submenu_userrole' );