基于 WordPress 现有角色新建用户角色并修改新建角色的权限


在本站之前发布的文章中,介绍过不用插件定制修改 WordPress 角色的权限的方法,如果想针对某种需求的用户新建一个角色,而不是修改默认角色的权限,可以用 WordPress 的add_role方法添加角色,添加角色的时候,直接继承现有角色的权限,然后再根据需求添加或减少权限就可以了。

下面的代码是我在WooCommerce的 shop_manager 权限的基础上,新建了一个合作者的角色,此角色只能访问WooCommerce的订单和商品页面,文章、页面、评论和导出权限都没有。我们来看一下代码。

// Remove unnecessary caps for shop manager
add_action( 'admin_init', 'remove_shop_caps');
function remove_shop_caps() {

    // 首先获取WooCommerce的‘shop_manager’角色。
    $shop_manager = get_role('shop_manager');

    // 然后基于‘shop_manager’角色的权限新建一个角色。
    $partner = add_role('partner','Partner',$shop_manager->capabilities);

    $partner = get_role('partner');

    // 移除新角色的一些不需要的权限
    $partner->remove_cap( 'edit_comment' );
    $partner->remove_cap( 'edit_users' );
    $partner->remove_cap( 'edit_pages' );
    $partner->remove_cap( 'edit_posts' );
    $partner->remove_cap( 'manage_categories' );
    $partner->remove_cap( 'export' );
}

把上面的代码粘贴到 functions.php 文件或插件文件中,新建用户的时候,就有了 “Partner” 这个角色,为新用户分配 “Partner” 角色,新用户就只能访问WooCommerce的订单和商品了,其他内容都访问不了。

  • 分享:
评论
还没有评论
    发表评论 说点什么