您可以使用register_post
钩子以检查电子邮件域是否在您的白名单中,如果不只是添加一个错误,它将告诉用户使用您白名单中的电子邮件,例如:
function is_valid_email_domain($login, $email, $errors ){
$valid_email_domains = array("gmail.com","yahoo.com");// whitelist
$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
if( $valid === false ){
$errors->add(\'domain_whitelist_error\',__( \'<strong>ERROR</strong>: you can only register using gmail or yahoo emails\' ));
}
}
add_action(\'register_post\', \'is_valid_email_domain\',10,3 );