Php 删除子菜单页面(';woocommerce';,';wc admin';);功能不删除仪表板

Php 删除子菜单页面(';woocommerce';,';wc admin';);功能不删除仪表板,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我在WooCommerce的WordPress中创建了一个新角色。我唯一需要这个角色看到的是: WooCommerce-->仅限订单 用户-所有子菜单 WP All Import-除设置外的所有子菜单 WP All Export-除设置外的所有子菜单 我成功地缩小到列表中,但在隔离WooCommerce仪表板子菜单时遇到问题 我使用此代码获取完整列表: if (!function_exists('debug_admin_menus')): function debug_admin_m

我在WooCommerce的WordPress中创建了一个新角色。我唯一需要这个角色看到的是:

  • WooCommerce-->仅限订单
  • 用户-所有子菜单
  • WP All Import-除设置外的所有子菜单
  • WP All Export-除设置外的所有子菜单
我成功地缩小到列表中,但在隔离WooCommerce仪表板子菜单时遇到问题

我使用此代码获取完整列表:

    if (!function_exists('debug_admin_menus')):
function debug_admin_menus() {
if ( !is_admin())
        return;
    global $submenu, $menu, $pagenow;
    if ( current_user_can('manage_options') ) { // ONLY DO THIS FOR ADMIN
        if( $pagenow == 'index.php' ) {  // PRINTS ON DASHBOARD
            echo '<pre>'; print_r( $menu ); echo '</pre>'; // TOP LEVEL MENUS
            echo '<pre>'; print_r( $submenu ); echo '</pre>'; // SUBMENUS
        }
    }
}
add_action( 'admin_notices', 'debug_admin_menus' );
endif;
但它并没有移除它。有人知道为什么吗?我也试过:

我查找的所有地方都有('woocommerce','wc admin')作为仪表板。不确定是否无法删除它,将其重定向到orders页面(可能仅针对该角色)。我知道最近有一个WooCommerce更新,所以不确定这是否与此有关


谢谢大家!

我知道好久没说话了。我也有同样的问题。我已经弄明白了,它可能会帮助人们在未来快速解决这个问题。这是解决办法


我知道好久没说话了。我也有同样的问题。我已经弄明白了,它可能会帮助人们在未来快速解决这个问题。这是解决办法


检查
$remove_submenu
值,上的文档说它是错误的,如果没有找到子菜单,因此没有删除Hanks Alex,我确实通过上面的代码这样做了,我在其中一个建议中尝试了替代方法,但它只在错误日志文件中引入了空白条目。第一种方式是通过仪表板
[woocommerce]=>Array([0]=>Array([0]=>Dashboard[1]=>view\u woocommerce\u reports[2]=>wc admin[3]=>Dashboard
也尝试过:admin.php?page=wc admin你能解决这个问题吗?我也处于同样的情况。检查
$remove_submenu
值,上的文档说它是错误的,如果没有找到子菜单,因此没有删除Hanks Alex,我实际上是通过上面的代码做到的,我在其中一个建议中尝试了替代方法,bu它只是在错误日志文件中引入了空白条目。我让它通过仪表板显示的第一种方式是
[woocommerce]=>Array([0]=>Array([0]=>Dashboard[1]=>view\u woocommerce\u reports[2]=>wc admin[3]=>Dashboard
也尝试了:admin.php?page=wc admin你能找到答案吗?我也遇到了同样的情况。
remove_submenu_page('woocommerce', 'wc-admin');
add_action( 'admin_menu', 'remove_menu_pages', 999);
function remove_menu_pages() {
  global $current_user;

  $user_roles = $current_user->roles;
  $user_role = array_shift($user_roles);
  if($user_role == "custom_shop_admin") {
    $remove_submenu = remove_submenu_page('woocommerce', 'wc-admin');
  }
}
function remove_menus_custom(){
global $current_user;
if(is_admin(){
remove_submenu_page('woocommerce','wc-admin'); 
}
}
add_action( 'admin_menu', 'remove_menus_custom', 999 );