如何将用户注册限制在一组特定的域中?

时间:2011-09-05 作者:BentCircle

我想根据用户的电子邮件域限制注册到我的一些网站。例如,我只想要@gmail.com 要注册的电子邮件。

我该怎么做?

2 个回复
SO网友:kaiser

艰巨的任务。。。

function wpse27756_restrict_register_email( $user_email ) {
    $errors = new WP_Error();

    if ( ! preg_match( "/gmail/i", $user_email ) {
        $errors->add( \'invalid_email\', __( \'<strong>ERROR</strong>: You are not allowed to use other mail accounts than Gmail.\' ) );
    }
    return $errors;
}

function wpse27756_add_register_email_filter( $user_email ) {
    add_filter( \'user_registration_email\', \'wpse27756_restrict_register_email\' );
}
add_action( \'init\', \'wpse27756_add_register_email_filter\' );
我没有经过测试就直接写了出来。试试看,让我们知道。。。

SO网友:Faruque Ahamed Mollick

通过在主题函数中编写代码,可以轻松完成这一任务。php文件。代码如下:

    function is_valid_email_domain($login, $email, $errors ){
 $valid_email_domains = array("gmail.com","yahoo.com");// whitelist email domain lists
 $valid = false;
 foreach( $valid_email_domains as $d ){
 $d_length = strlen( $d );
 $current_email_domain = strtolower( substr( $email, -($d_length), $d_length));
 if( $current_email_domain == strtolower($d) ){
 $valid = true;
 break;
 }
 }
 // if invalid, return error message
 if( $valid === false ){
 $errors->add(\'domain_whitelist_error\',__( \'<strong>ERROR</strong>: you can only register using @gmail.com or @yahoo.com emails\' ));
 }
}
add_action(\'register_post\', \'is_valid_email_domain\',10,3 );
资料来源:https://www.eyeswift.com/allow-registration-from-certain-email-domain-wordpress/

结束

相关推荐

MySQL查询两个数据库表:USERS和USERMETA,并按自定义元整数值排序

我试图获得一个按自定义元值(int)排序的站点用户数组。我可以很好地查询用户,并将其返回到foreach中使用。目前,我已经按照用户表中的display\\u name对查询结果进行了排序。我希望它按自定义usermeta值排序。有没有关于如何修改此查询以完成此操作的想法?function get_all_top_members() { global $wpdb; $gather_users = \"SELECT * FROM \".$wpdb->prefix.\"us