Como solucionar o erro “esse endereço de e-mail já foi usado”?

4

O seguinte erro pode ocorrer se um registro anterior permanecer pendente com um endereço de e-mail conflitante.

  

Esse endereço de e-mail já foi usado. Por favor, verifique sua caixa de entrada para   um email de ativação. Ele estará disponível em alguns dias se   você não faz nada.

O erro de nome de usuário relacionado é semelhante ao seguinte.

  

Esse nome de usuário está reservado no momento, mas pode estar disponível em alguns dias.

    
por here 22.12.2015 / 21:46

4 respostas

3
  1. Faça login como administrador do WordPress
  2. Navegue para adicionar um novo usuário
  3. Marque a caixa para ignorar a confirmação por e-mail
  4. Adicione o usuário com um endereço de e-mail diferente
  5. Edite o endereço de e-mail do usuário para o resultado desejado

Para o erro de nome de usuário semelhante, consulte Como posso Cancelar a reserva de um registro de nome de usuário pendente?

O período de tempo limite é de 2 dias após um conflito, e os tickets trac para esclarecer este processo atualmente existem aqui e aqui .

    
por here 22.12.2015 / 21:46
1

Para contornar o erro "esse endereço de e-mail já foi usado", podemos criar um plug-in que efetivamente contorne a verificação. O plugin funcionará em três partes, utilizando três ganchos diferentes.

pre_user_login filtra um nome de usuário depois de ter sido limpo. Nós vamos usar esse gancho para pegar o usuário, de interesse particular é o e-mail.

pre_user_email filtra o e-mail de um usuário antes que o usuário seja criado ou atualizado. Usaremos esse gancho para modificar o email para alguns caracteres aleatórios.

user_register é acionado imediatamente depois que um novo usuário é registrado. Usaremos esse gancho para atualizar manualmente o e-mail do usuário após o registro do usuário.

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 );
  }
}
    
por Nathan Johnson 01.05.2017 / 22:48
0

Quando adiciono um novo usuário com um endereço de e-mail diferente, recebo a mensagem de erro: Esse nome de usuário está reservado no momento, mas pode estar disponível em alguns dias.

Para mim, removi a linha do banco de dados na tabela wp_signups, em que user_login era igual ao nome de usuário. Essencialmente:

delete from wp_signups where user_login = 'abc';

Depois, consegui adicionar novamente o usuário.

    
por Marty 01.05.2017 / 21:40
0

Existe um plugin útil chamado "User Activation Keys", que adiciona um item de menu à interface de usuários da rede:

enlace

Isso permite editar / excluir / aprovar solicitações de ativação do usuário e, posteriormente, endereços de e-mail / nomes de usuários reservados.

    
por jeffmcneill 15.08.2018 / 07:15

Tags