ユーザーの電子メールドメインに基づいて、登録を一部のサイトに制限したいのですが。例えば、私は@ gmail.comのEメールを持っている人にだけ登録してほしいです。
何か案は?可能なプラグイン?
あなたのテーマのfunctions.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/
大変な作業...
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' );
テストせずに私の頭から直接書いた。試してみて、私たちに知らせてください...