你可能不希望用户使用“临时邮箱”注册,就可以在主题文件下的 functions.php 文件中加入如下代码限制可以注册的邮箱:
// 限制注册邮箱
function is_valid_email_domain($login, $email, $errors ){
$valid_email_domains = array("qq.com","edu.cn","163.com","126.com","yeah.net","88.com","189.com","139.com","wo.com","microsoft.com","onmicrosoft.com","outlook.com","foxmail.com","sina.com","sohu.com","111.com","email.cn","icloud.com","gmail.com");
$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( $valid === false ){
$errors->add('domain_whitelist_error',__( '<strong>错误</strong>: 这个邮箱不在我们的白名单内。' ));
}
}
add_action('register_post', 'is_valid_email_domain',10,3 );
这里已经添加了常用的邮箱,包括 QQ 邮箱、Gmail 邮箱、网易邮箱、完美邮箱和微软邮箱等等,如有需要请自行添加。
这里采用的是域名后缀的方式,支持“qq.com”的同时也支持“vip.qq.com”,因此添加“edu.cn”之后就支持国内所有的 edu 邮箱(比如 sjtu.edu.cn)。