【问题标题】:How to show just Woocommerce Orders by hiding all menus in WordPress to custom user role?如何通过将 WordPress 中的所有菜单隐藏到自定义用户角色来仅显示 Woocommerce 订单?
【发布时间】:2018-02-24 17:55:05
【问题描述】:

如何隐藏 Wordpress 中的所有菜单,除了 Woocommerce Orders 用于特定自定义用户角色(即代理)。这是我的代码:

$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 );

【问题讨论】:

    标签: php wordpress woocommerce menu orders


    【解决方案1】:

    您可以这样做,如果用户没有权限 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      • 2018-09-20
      • 2021-05-22
      • 1970-01-01
      • 2021-02-02
      相关资源
      最近更新 更多