L'erreur suivante peut se produire si une inscription précédente reste en attente avec une adresse électronique en conflit.
Cette adresse e-mail a déjà été utilisée. Veuillez vérifier votre boîte de réception pour un email d'activation. Il ne sera disponible que dans quelques jours.
L'erreur liée au nom d'utilisateur ressemble à ce qui suit.
Ce nom d'utilisateur est actuellement réservé mais peut être disponible dans quelques jours.
Pour une erreur de nom d'utilisateur similaire, voir Comment puis-je annuler la réservation d'un enregistrement de nom d'utilisateur en attente?
Le délai d'attente est de 2 jours après un conflit et des tickets de suivi pour clarifier ce processus existent actuellement ici et ici .
Lorsque j'ajoute un nouvel utilisateur avec une adresse électronique différente, le message d'erreur suivant s'affiche: Ce nom d'utilisateur est actuellement réservé mais peut être disponible dans quelques jours.
Pour moi, j'ai supprimé la ligne de la base de données dans la table wp_signups où user_login était égal au nom d'utilisateur. Essentiellement:
delete from wp_signups where user_login = 'abc';
Ensuite, j'ai pu rajouter l'utilisateur.
Pour contourner l'erreur "cette adresse e-mail a déjà été utilisée", nous pouvons créer un plug-in qui contourne effectivement le contrôle. Le plugin fonctionnera en trois parties, en utilisant trois crochets différents.
pre_user_login
filtre un nom d'utilisateur après sa désinfection. Nous utiliserons ce crochet pour saisir l'utilisateur. L'e-mail est particulièrement intéressant.
pre_user_email
filtre le courrier électronique d’un utilisateur avant sa création ou sa mise à jour. Nous utiliserons ce crochet pour modifier l’email en quelques caractères aléatoires.
user_register
se déclenche immédiatement après l'enregistrement d'un nouvel utilisateur. Nous utiliserons ce crochet pour mettre à jour manuellement le courrier électronique de l'utilisateur une fois celui-ci enregistré.
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' ]
) );
}
//* Code slightly modified from 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 );
}
}
Il existe un plugin utile appelé "User Activation Keys" qui ajoute un élément de menu à l'interface des utilisateurs du réseau:
https://wordpress.org/plugins/user-activation-keys/
Cela permet de modifier/supprimer/approuver les demandes d'activation des utilisateurs et, par la suite, les adresses électroniques/noms d'utilisateur réservés.