Come utilizzare la stessa e-mail per più utenti


14

Ho un sito molto grande. E ho ricevuto una richiesta per abilitare l'opzione che più utenti possono utilizzare la stessa e-mail. Ho trovato un plug-in "Consenti account multipli" che non funziona correttamente. Dovrei trovare qualche altra soluzione per questo. So che potrei usare qualcosa come l'aggiunta di + sometext a ogni email, quindi mostrerà diverso a Wordpress. Hai qualche altra soluzione, che può essere fatta qui?


5
Devi stare attento con questo. Se hai funzionato e se stai cercando di utilizzare la stessa e-mail per più persone distinte, ognuna di queste persone sarebbe in grado di reimpostare la password per uno o tutti gli account che utilizzano l'e-mail condivisa. Tale indirizzo di posta elettronica fa parte del sistema di sicurezza.
s_ha_dum,

sì, lo so, ma sto ancora cercando questa soluzione
Boban,

1
La risposta di Parham è molto curata, ma vorrei anche sottolineare che gli indirizzi e-mail non devono essere reali, quindi è possibile creare account con indirizzi e-mail falsi. L'utente può accedere e modificarlo in seguito, se lo desidera. Ciò presenta vantaggi in termini di sicurezza e previene problemi con plugin e parti del core di WordPress che presuppongono l'esistenza di un nome utente per indirizzo e-mail.
wp-overwatch.com

Esattamente quello di cui avevo bisogno, Mr Me. Lo voglio solo a scopo di test.
LegendLength,

Risposte:


15

È possibile utilizzare il wpmu_validate_user_signupfiltro per rimuovere l'errore e quindi definire WP_IMPORTINGsolo per saltare la funzione di 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;
}

AGGIORNAMENTO : per un'installazione non multi-sito prova questo codice:

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

Penso che questa sia la risposta giusta. Contrassegnato come corretto. Grazie!
Boban,

1
Questo non funziona in Wordpress 3.5.
Guillochon,

@Guillochon Non vedo alcun cambiamento in WP 3.5 che potrebbe far funzionare questo codice. E questo è per una configurazione MULTI-SITE, stai testando su una configurazione MU WP?
Parham,

Errore mio, stavo provando a installare un singolo sito. Il plug-in "Account multipli" per singoli siti non funziona più, quindi stavo cercando delle alternative.
Guillochon,

1
Cosa succede con le notifiche di password perse nelle configurazioni multisito? Come sarà gestito?
Tiny Giant Studios
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.