在注册时添加其他角色

时间:2019-04-07 作者:osakagreg

如果用户注册为特定角色,我会尝试在他们注册时为其添加其他角色。

以下是我的功能:

function add_secondary_role( $user_id ) {
    $current_user = wp_get_current_user();
    if ( in_array( \'um_dueling-pianist\', (array) $current_user->roles ) ) {
        $user = get_user_by(\'id\', $user_id);
        $user->add_role(\'pianist\');
    } 
}
它不起作用。我已经注册了一个角色为“um\\u dueling-pianist”的测试帐户,它没有添加其他角色“pianist”这些都是用户角色的元值,而不是用户角色的显示名称。

知道我的功能有什么问题吗?

1 个回复
最合适的回答,由SO网友:nmr 整理而成

您检查的角色不是创建的用户,而是当前登录的用户。请尝试以下方法:

add_action( \'user_register\', \'se333727_additional_roles\' );

function se333727_additional_roles( $user_id )
{
    $new_user = get_user_by( \'ID\', $user_id );
    if ( in_array( \'um_dueling-pianist\', (array)$new_user->roles ) ) {
        $new_user->add_role(\'pianist\');
    } 
}

相关推荐

functions php file

好的,我正在编辑我的函数。Wordpress中的php文件(关于我的子主题),我删除了一行代码(在删除之前我复制了代码)。这导致了白色的死亡屏幕,所以我简单地粘贴回我删除的代码(是的,我将它粘贴回我删除它的位置),但我仍然有白色的死亡屏幕。我已经完成了这些功能。我上周完成的一个备份中的php文件(功能齐全),并通过FTP将其上载到正确的文件夹,但没有任何效果。我已经尝试再次激活父主题,并创建了另一个子主题,以便比较这两个功能。php文件(将全新的、有效的子主题与不再工作的原始子主题进行比较),代码看起来是