php 隐藏WooCommerce管理子菜单“家”从商店经理

xhv8bpkk  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(86)

我想隐藏一个子菜单'家'在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管理部分的权限。
请帮我解决这个问题。

moiiocjp

moiiocjp1#

更新2

要禁用管理员WooCommerce“主页”页面(仅限)特定用户角色,我们可以隐藏WooCommerce“主页”子菜单项并将相关请求重定向到WooCommerce“订单”页面:

add_action( 'admin_head', 'disable_admin_woocommerce_home_fur_css' );
function disable_admin_woocommerce_home_fur_css() {
    $targeted_role = 'administrator'; // Here define the user role
    if ( current_user_can( $targeted_role ) ) :
    ?><style> li.toplevel_page_woocommerce ul li.wp-first-item {display:none !important;}</style><?php
    endif;
}

add_action( 'admin_menu', 'disable_admin_woocommerce_home_for_user_role', 999 );
function disable_admin_woocommerce_home_for_user_role() {
    global $submenu;
    $targeted_role = 'administrator'; // Here define the user role
    if ( current_user_can( $targeted_role ) ) {
        if ( isset($_GET['page']) && $_GET['page'] == 'wc-admin' && ! isset($_GET['path']) ) {
            wp_redirect( admin_url('edit.php?post_type=shop_order') );
            exit();
        }
    }
}

它将允许商店经理访问分析部分。
代码放在子主题的functions.php文件中(或插件中)。测试和作品。

相关问题