仅允许某些电子邮件地址创建帐户

时间:2019-03-06 作者:Afonso de Sousa

我正在创建一个只需要允许某些特定电子邮件地址注册的网站(例如“[email protected]你们知道有什么wordpress电子邮件确认插件可以让我这样做吗?

为了澄清一些困惑:我要找的是只允许使用一些电子邮件地址(例如所有以@unimail.co.uk结尾的电子邮件),我不想单独写下所有这些地址。我真的不知道如何编写php代码,所以如果有人能提供帮助,这将非常有用。再次对第一个问题造成的混乱表示抱歉。

非常感谢。

4 个回复
SO网友:Tanmay Patel

只是copy the above code and paste it into your theme’s functions.php file. 在这里,我将向您展示will reject registration from all others email addressesOnly allowing some email addresses to create an account. 请参见下面的代码

function is_valid_emails($login, $email, $errors ){
     $valid_emails = array("[email protected]");
     $valid = false;
     foreach( $valid_emails as $valid_email ){
         $valid_emails_list = strtolower($valid_email);
         $current_email = strtolower($email);
         if( $current_email == $valid_emails_list ){
         $valid = true;
            break;
         }
     }
     if( $valid === false ){
        $errors->add(\'domain_whitelist_error\',__( "<strong>ERROR</strong>: you can\'t register email because only allow some specific email addresses" ));
     }
    }
    add_action(\'register_post\', \'is_valid_emails\',10,3 );
你可以add more email addresses 通过在代码中添加更多内容:

$valid_emails = array("[email protected]","[email protected]");

SO网友:HU ist Sebastian

不应使用register\\u post操作,而应使用如下registration\\u errors筛选器(从codex复制,然后修改):

function my_awesome_email_validation_filter( $errors, $sanitized_user_login, $user_email ) {
     $allowed_email_addresses = array(\'[email protected]\',\'[email protected]\');    //be sure to write all the allowed addresses in lowercase
     if(!in_array(mb_strotolower($user_email),$allowed_email_addresses)){
          $errors->add( \'email_not_allowed\', __( \'<strong>ERROR</strong>: Sorry, but you are not allowed to register.\', \'my_textdomain\' ) );
     }
    return $errors;
}

add_filter( \'registration_errors\', \'my_awesome_email_validation_filter\', 10, 3 );
快乐的编码!

SO网友:bjornredemption

https://wordpress.org/plugins/wp-approve-user/ 是一个插件,允许您在允许用户登录您的网站之前批准用户注册。在管理员用户批准之前,所有用户注册基本上都处于挂起状态。

SO网友:Debbie Kurth

插件woocommerce成员身份可以做到这一点。但仅此功能就很昂贵。最好使用上面建议的代码。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。