web-dev-qa-db-fra.com

Comment utiliser le même email pour plusieurs utilisateurs

J'ai un très grand multisite. Et j'ai reçu une requête pour activer l'option permettant à plusieurs utilisateurs d'utiliser le même courrier électronique. J'ai trouvé un plugin "Autoriser plusieurs comptes" qui ne fonctionne pas correctement. Je devrais trouver une autre solution pour cela. Je sais que je pourrais utiliser quelque chose comme ajouter + sometext à chaque e-mail, de sorte qu'il sera différent de Wordpress. Avez-vous une autre solution, cela peut être fait ici?

12
Boban

Vous pouvez utiliser le filtre wpmu_validate_user_signup pour supprimer l'erreur, puis définir WP_IMPORTING pour ignorer la fonction email_exist() check in wp_insert_user():

add_filter('wpmu_validate_user_signup', 'skip_email_exist');
function skip_email_exist($result){
    if(isset($result['errors']->errors['user_email']) && ($key = array_search(__('Sorry, that email address is already used!'), $result['errors']->errors['user_email'])) !== false) {
        unset($result['errors']->errors['user_email'][$key]);
        if (empty($result['errors']->errors['user_email'])) unset($result['errors']->errors['user_email']);
    }
    define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' );
    return $result;
}

UPDATE: pour une configuration non multi-site, essayez le code suivant:

add_filter('pre_user_email', 'skip_email_exist');
function skip_email_exist($user_email){
    define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' );
    return $user_email;
}
13
Parham