如果特定角色创建了用户,则设置用户角色

时间:2021-03-16 作者:d3mi

我正在尝试设置用户角色。如果特定用户角色(销售代理)创建用户。

创建的用户应具有b2b角色,而不是customer角色

以下是我的尝试:

add_action( \'init\', \'b2b_set_user_role\' );
    function b2b_set_user_role() { 
   if ( is_user_logged_in() && wcb2bsa_has_role( get_current_user_id(), \'sales_agent\' ) ) 
   { 
        $user->remove_role( ‘customer’ );
        $user->add_role( ‘b2b’ );
   }
}
我希望有人能帮助我

1 个回复
SO网友:nmr

您可以使用user_register action, 注册新用户后调用
要添加或删除角色/大写,请WP_User 类提供了方法:

您的代码可能如下所示:

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

function se385135_user_register( $user_id )
{
    $user = wp_get_current_user();
    if ( !isset( $user->ID ) || $user->ID == 0 )
        return;
    if ( !in_array( \'sales_agent\', $user->roles ) )
        return;

    $created_user = get_user_by( \'ID\', $user_id );
    if ( $created_user === false )
        return;

    $created_user->add_role( \'b2b\' );
    $created_user->remove_role( \'customer\' );
}