首页 > 解决方案 > remove_submenu_page('woocommerce', 'wc-admin'); 功能不删除仪表板

问题描述

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

我成功减少到列表,但在隔离 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;

我发现该组件是: 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');
  }
}

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

谢谢!

标签: phpwordpresswoocommerce

解决方案


我知道它已经很久没有在这里说话了。我有同样的问题。我已经想通了,它可能会帮助人们在未来快速解决问题。这是解决方案。

function remove_menus_custom(){
global $current_user;
if(is_admin(){
remove_submenu_page('woocommerce','wc-admin'); 
}
}
add_action( 'admin_menu', 'remove_menus_custom', 999 );

推荐阅读