我在我的网站上有三个额外的角色。
医生、接待员、客人这些角色由以下代码添加:
* adding Doctor role */
$doctor_role = add_role(\'Doctor\', __(\'Doctor\'), array(\'read\'=>\'true\'));
/* adding Receptionist role */
$receptionist_role = add_role(\'Receptionist\', __(\'Receptionist\'), array(\'read\'=>\'true\'));
/* adding Guest role */
$guest_role = add_role(\'Guest\', __(\'Guest\'), array(\'read\'=>\'true\'));
默认情况下
Administrator
角色创建所有其他角色。但我想按用户级别限制此分配角色。我的意思是:
管理员-应该能够创建所有角色用户-默认情况下可能医生-应该能够创建Receptionist
和Guest
角色用户ONLY接待员-应该能够创建Guest
角色用户ONLY客人-Not allowed 创建任何用户如何做到这一点?如果我不使用任何插件就可以实现这一点,那就更好了。
SO网友:Anything Graphic
上述答案非常有效。但是,角色需要小写
function wpse_188863_get_allowed_roles( $user ) { }
例如:
if ( in_array( \'administrator\', $user->roles ) ) { // Admin can edit all roles
$allowed = array_keys( $GLOBALS[\'wp_roles\']->roles );
} elseif ( in_array( \'doctor\', $user->roles ) ) {
$allowed[] = \'receptionist\';
$allowed[] = \'guest\';
} elseif ( in_array( \'receptionist\', $user->roles ) ) {
$allowed[] = \'guest\';
}