从商店经理隐藏 WooCommerce 管理子菜单“主页”

问题描述 投票:0回答:1

我想向商店经理隐藏 WooCommerce 中的子菜单“主页”。

我可以使用以下代码隐藏/禁用

wc-admin

function AtoJ_remove_menus() {
    if (current_user_can( 'shop_manager' )) {
        // WooCommerce
        remove_submenu_page( 'woocommerce', 'wc-admin' );
    }
}
add_action( 'admin_menu', 'AtoJ_remove_menus', 999 );

但如果我这样做,它也会禁用商店经理访问 WooCommerce Analytics 管理部分的权限。

请帮我解决这个问题。

php wordpress woocommerce admin user-roles
1个回答
0
投票

已更新

要禁用管理员 WooCommerce“主页”页面(仅),请对用户角色使用以下内容:

add_action( 'admin_menu', 'disable_admin_woocommerce_home_for_user_role', 999 );
function disable_admin_woocommerce_home_for_user_role() {
    global $submenu;
    $targeted_role = 'shop_manager'; // Here define the user role

    if ( current_user_can( $targeted_role ) ) {
        unset($submenu['woocommerce'][0][0]);

        if ( ! isset($_GET['path']) && isset($_GET['page']) && $_GET['page'] === 'wc-admin') {
            wp_redirect( admin_url('edit.php?post_type=shop_order') );
            wp_die();
        }
    }
}

它将允许商店经理访问分析部分。

代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。

© www.soinside.com 2019 - 2024. All rights reserved.