首页 > 解决方案 > 如何在注册时添加多个角色?

问题描述

我正在尝试在注册时向用户添加 2 个角色。角色 1- 2 个默认的已预设角色之一。角色 2- 在注册时为每个用户单独生成。

仅分配默认角色时 - 分配没有问题。当我添加动态生成的角色时,它仅分配此角色,缺少默认角色。

    $user = wp_insert_user( $userdata );
    $getuser = new WP_User($user); 
    $getuser->set_role('profile_1');
    add_role( 
    'user-ID'.$user, 
    __( 'user-ID'.$user, 'wordpress-66604-809452.cloudwaysapps.com' ), 
    array(
        'read' => true,
        'edit_posts' => true,
    ));
    $getuser->set_role('user-ID'.$user);

标签: phpwordpress

解决方案


从我正在阅读的内容中,set_role 删除了角色并仅分配新角色,看起来就像您所描述的那样

https://codex.wordpress.org/Class_Reference/WP_User#set_role.28.24role.29

设置角色

set_role($role) 设置用户的角色。

这将删除用户以前的角色并为用户分配新角色。您可以将角色设置为空字符串,它将删除用户的所有角色。

参数 role (string) - 角色名称。自 2.0.0 起不返回任何内容

添加角色

add_role( $role ) 为用户添加角色。

使用功能和角色更新用户的元数据选项。

参数 role (string) - 角色名称。


推荐阅读