Come risolvere l'errore "questo indirizzo email è già stato utilizzato"?
Il seguente errore può verificarsi se una registrazione precedente rimane in sospeso con un indirizzo email in conflitto.
Questo indirizzo email è già stato utilizzato. Controlla la tua casella di posta per l'email di attivazione. Diventerà disponibile tra qualche giorno se non fai nulla.
L'errore correlato per il nome utente appare come segue.
Questo nome utente è attualmente riservato ma potrebbe essere disponibile tra qualche giorno.
Quando aggiungo un nuovo utente con un indirizzo email diverso, ricevo il messaggio di errore: Questo nome utente è attualmente riservato ma potrebbe essere disponibile tra un paio di giorni.
Nel mio caso, ho rimosso la riga dal database nella tabella wp_signups dove user_login corrispondeva al nome utente. In sostanza:
delete from wp_signups where user_login = 'abc';
Dopodiché sono stato in grado di riaggiungere l'utente.
Suggerimento di modifica di @aubreypwd: Inoltre, gli amministratori (solo amministratori di rete in un'installazione MU o di rete) hanno la possibilità di aggiungere utenti senza inviare un'email. Se selezioni questa opzione, eviti questo processo.

- Accedi come amministratore WordPress
- Vai alla sezione per aggiungere un nuovo utente
- Seleziona la casella per bypassare la conferma via email
- Aggiungi l'utente con un indirizzo email diverso
- Modifica l'indirizzo email dell'utente con quello desiderato
Per l'errore di nome utente simile, consulta Come posso annullare la prenotazione di un nome utente in attesa di registrazione?
Il periodo di timeout è di 2 giorni dopo un conflitto, e i ticket trac per chiarire questo processo esistono attualmente qui e qui.

Per aggirare l'errore "quell'indirizzo email è già stato utilizzato", possiamo creare un plugin che bypassi efficacemente il controllo. Il plugin funzionerà in tre parti, utilizzando tre diversi hook.
pre_user_login
filtra un nome utente dopo che è stato sanificato. Utilizzeremo questo hook per ottenere l'utente, con particolare interesse per l'email.
pre_user_email
filtra l'email di un utente prima che venga creato o aggiornato. Utilizzeremo questo hook per modificare l'email in alcuni caratteri casuali.
user_register
viene attivato immediatamente dopo la registrazione di un nuovo utente. Utilizzeremo questo hook per aggiornare manualmente l'email dell'utente dopo la registrazione.
add_filter( 'pre_user_email', [ new wpse_212671(), 'pre_user_login' ] );
class wpse_212671 {
protected $user;
public function pre_user_login( $user ) {
$this->user = $user;
if( isset( $user[ 'ID' ] ) || ! get_user_by( 'email', $user[ 'user_email' ] ) {
return $user;
}
add_filter( 'pre_user_email', [ $this, 'pre_user_email' ] );
add_action( 'user_register', [ $this, 'user_register' ] );
}
public function pre_user_email( $email ) {
return $this->generate_random_string();
}
public function user_register( $user_id ) {
global $wpdb;
$table = $wpdb->prefix . 'users';
$wpdb->query( $wpdb->prepare(
"UPDATE %s
SET user_email = %s
WHERE user_login = %s",
$table,
$this->user[ 'user_email' ],
$this->user[ 'user_login' ]
) );
}
//* Codice leggermente modificato da http://stackoverflow.com/a/13212994/6077935
protected function generate_random_string( $length = 40 ) {
return substr( str_shuffle( str_repeat(
$x='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
ceil( $length / strlen( $x ) )
) ), 1, $length );
}
}

Esiste un plugin utile chiamato "User Activation Keys" che aggiunge una voce di menu all'interfaccia degli Utenti della Rete:
https://wordpress.org/plugins/user-activation-keys/
Questo permette di modificare/eliminare/approvare le richieste di attivazione degli utenti e successivamente gli indirizzi email/nomi utente riservati.

Se ti trovi a tuo agio lavorando direttamente con MySQL e preferisci non scrivere codice o installare un plugin solo per questo compito, puoi risolvere questo problema in modo piuttosto semplice.
All'interno del database MySQL del tuo sito, troverai una tabella chiamata { $wpdb->prefix }_signups
, dove $wpdb->prefix
è il prefisso che hai configurato per WordPress da utilizzare per le tabelle del database. (Per impostazione predefinita, questo è wp_
.)
Interroga quella tabella usando l'indirizzo email bloccato per trovare il record di registrazione:
SELECT * FROM {$wpdb->prefix}_signups WHERE user_email = '{ indirizzo email }';
Questo dovrebbe restituire il record del tentativo di registrazione per quell'indirizzo email. Successivamente, elimina semplicemente quel record dalla tabella e il gioco è fatto.

Utilizza il plugin Unconfirmed.
Unconfirmed crea un pannello nella Dashboard sotto il menu Utenti (Amministrazione di Rete > Utenti su Multisite) che mostra un elenco di registrazioni di utenti non attivati. Per ogni registrazione, hai la possibilità di reinviare l'email di attivazione originale o di attivare manualmente l'utente.
