如何通过将WordPress中的所有菜单隐藏到自定义用户角色来显示Wocommerce订单?

时间:2018-02-24 17:55:06

标签: php wordpress woocommerce menu orders

我如何隐藏Wordpress中的所有菜单,但特定自定义用户角色即代理商的Woocommerce订单除外。这是我的代码:

$role           =   'agent';
$display_name   =   'Agent';
$capabilities   =   array(
                        'read'              => true, // Allows a user to read
                        'create_posts'      => true, // Allows user to create new posts
                        'edit_posts'        => true, // Allows user to edit their own posts
                        'edit_others_posts' => true, // Allows user to edit others posts too
                        'publish_posts'     => true, // Allows the user to publish posts
                        'manage_categories' => true,
                    );

add_role( $role, $display_name, $capabilities );

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作,如果用户没有,则会隐藏与页面ID 7 关联的菜单项和菜单名称“ main ”权限 publish_posts

add_filter( 'wp_get_nav_menu_items', 'hide_nav_menu_items', 10, 2 );

function hide_nav_menu_items( $menu_items, $menu ) {

    $menu_name = 'main';
    $page_id_to_hide = 7;

    if ( $menu->slug == $menu_name ) {
        if( ! current_user_can('publish_posts') ) {
            foreach( $menu_items as $key => $menu_item ) {
                if( $menu_item->object_id == $page_id_to_hide )
                    unset( $menu_items[$key] );
            }
        }
    }

    return $menu_items;
}