注册新用户,分配自定义角色,然后发送电子邮件

时间:2016-11-14 作者:MavBzh

我有一个非常具体的用户注册流程要在网站上实现。当用户通过前端表单注册时,我需要遵循以下步骤:

检查电子邮件域

如果是白名单域:常规wordpress工作流(用户注册,发送电子邮件通知,然后用户可以在第一次身份验证过程中选择is密码)

  • 如果是黑名单域

    在DB中创建用户为该用户分配一个自定义WP角色(例如“temp\\u帐户”),不要定期发送wordpress邮件通知,具有“temp\\u帐户”角色的用户无法登录,我找不到检查电子邮件所需的正确操作/筛选器,然后阻止wordpress发送默认通知。。。

    如有任何建议,将不胜感激;)

1 个回复
SO网友:Benoti

为了真正满足您的需要,我认为最好重写wp_insert_user() 函数,某些部分可以询问您

   $user_email = apply_filters( \'pre_user_email\', $raw_user_email );
以及:

   $illegal_logins = (array) apply_filters( \'illegal_user_logins\', array() );

if ( in_array( strtolower( $user_login ), array_map( \'strtolower\', $illegal_logins ) ) ) {
    return new WP_Error( \'invalid_username\', __( \'Sorry, that username is not allowed.\' ) );
}
以及:

     if ( isset( $userdata[\'role\'] ) ) {
         $user->set_role( $userdata[\'role\'] );
     } elseif ( ! $update ) {
         $user->set_role(get_option(\'default_role\'));
     }
我认为您可以将所有这些部分结合起来进行自己的用户注册。

希望有帮助!

相关推荐

How to apply these filters

我买了woocommerce比较插件。不幸的是,我不知道如何应用一些过滤器。例如,我想将比较限制增加到10。ı如何使用下方过滤器?apply\\u filters(\'woocommerce\\u products\\u compare\\u max\\u products\',int)–设置一次可以比较的产品数量。默认值为5。我试过但没用的东西; function comparelimit($location){ $location = 10; }