it-swarm.com.de

Wie kann ich die Benutzerregistrierung auf eine bestimmte Gruppe von Domains beschränken?

Ich möchte die Registrierung auf einige meiner Websites beschränken, basierend auf der E-Mail-Domäne des Benutzers. Ich möchte zum Beispiel nur, dass sich Personen mit @ gmail.com-E-Mails registrieren.

Irgendwelche Ideen? Plugin möglich?

5
BentCircle

Sie können dies einfach tun, indem Sie einen Code in die Datei functions.php Ihres Themas schreiben. Hier ist der Code:

    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 );

Quelle: https://www.eyeswift.com/allow-registration-from-certain-email-domain-wordpress/

Schwere Aufgabe...

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' );

Gerade ohne Prüfung direkt aus meinem Kopf geschrieben. Probieren Sie es aus und lassen Sie es uns wissen ...

3
kaiser