¿Cómo solucionar el error "esa dirección de correo electrónico ya ha sido utilizada"?

22 dic 2015, 22:46:46
Vistas: 20.7K
Votos: 6

El siguiente error puede ocurrir si existe un registro previo pendiente con una dirección de correo electrónico en conflicto.

Esa dirección de correo electrónico ya ha sido utilizada. Por favor, revisa tu bandeja de entrada buscando un correo de activación. Estará disponible en un par de días si no realizas ninguna acción.

El error relacionado con el nombre de usuario se muestra de la siguiente manera.

Ese nombre de usuario está actualmente reservado pero podría estar disponible en un par de días.

0
Todas las respuestas a la pregunta 6
1

Cuando agrego un nuevo usuario con una dirección de correo electrónico diferente, recibo el mensaje de error: Ese nombre de usuario está actualmente reservado pero puede estar disponible en un par de días.

En mi caso, eliminé la fila de la base de datos en la tabla wp_signups donde user_login era igual al nombre de usuario. Básicamente:

delete from wp_signups where user_login = 'abc';

Luego pude volver a agregar al usuario.

Sugerencia de edición por @aubreypwd: Adicionalmente, los administradores (solo administradores de red en una instalación MU o de red) tienen la opción de agregar usuarios sin enviar un correo electrónico. Si marcas esa opción, evitas este proceso.

1 may 2017 22:40:30
Comentarios

También agregaría detalles para asegurarme y la próxima vez que intentes agregar al usuario, hacer clic en "bypass email confirmation" para completar esta respuesta. Esta es una muy buena respuesta técnica y la ruta que yo uso.

aubreypwd aubreypwd
26 oct 2019 00:21:23
0
  1. Iniciar sesión como administrador de WordPress
  2. Navegar para agregar un nuevo usuario
  3. Marcar la casilla para omitir la confirmación por correo electrónico
  4. Agregar el usuario con una dirección de correo electrónico diferente
  5. Editar la dirección de correo electrónico del usuario al resultado deseado

Para el error de nombre de usuario similar, consulta ¿Cómo puedo liberar un registro de nombre de usuario pendiente?

El período de espera es de 2 días después de un conflicto, y los tickets de trac para aclarar este proceso existen actualmente aquí y aquí.

22 dic 2015 22:46:46
1

Para evitar el error "esa dirección de correo electrónico ya ha sido utilizada", podemos crear un plugin que eluda efectivamente la verificación. El plugin funcionará en tres partes, utilizando tres ganchos diferentes.

pre_user_login filtra un nombre de usuario después de que ha sido saneado. Usaremos este gancho para capturar al usuario, siendo de especial interés el correo electrónico.

pre_user_email filtra el correo electrónico de un usuario antes de que el usuario sea creado o actualizado. Usaremos este gancho para modificar el correo electrónico a algunos caracteres aleatorios.

user_register se dispara inmediatamente después de que un nuevo usuario se registra. Usaremos este gancho para actualizar manualmente el correo electrónico del usuario después de que se haya registrado.

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' ]
    ) );
  }
  //* Código ligeramente modificado de 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 );
  }
}
1 may 2017 23:48:51
Comentarios

¿Esto me permitirá eliminar un usuario por completo sin tener que entrar en la base de datos y eliminar manualmente los usuarios de wp_signups?

Chef Mike Chef Mike
4 jun 2017 23:46:21
1

Existe un complemento útil llamado "User Activation Keys" que añade un elemento al menú de la interfaz de Usuarios de la Red:

https://wordpress.org/plugins/user-activation-keys/

Permite editar/eliminar/aprobar solicitudes de activación de usuarios y posteriormente direcciones de correo electrónico/nombres de usuario reservados.

15 ago 2018 08:15:39
Comentarios

Trabajó con mi versión muy antigua de WordPress 4.8, con PHP 5.4

aldemarcalazans aldemarcalazans
28 feb 2024 20:25:06
0

Si te sientes cómodo trabajando directamente en MySQL y prefieres no escribir código o instalar un plugin solo para esta tarea, puedes solucionar este problema de manera bastante sencilla.

Dentro de la base de datos MySQL de tu sitio, habrá una tabla llamada { $wpdb->prefix }_signups, donde $wpdb->prefix es el prefijo que hayas configurado para que WordPress use en sus tablas de base de datos. (Por defecto, este es wp_.)

Consulta esa tabla por la dirección de correo electrónico que está bloqueada para encontrar el registro de inscripción:

SELECT * FROM {$wpdb->prefix}_signups WHERE user_email = '{ dirección de correo electrónico }';

Eso debería devolver el registro del intento de inscripción para esa dirección de correo. Luego simplemente BORRA ese registro de la tabla, y listo.

6 jun 2022 23:01:56
0

Utiliza el plugin Unconfirmed.

Unconfirmed crea un panel en el Escritorio dentro del menú Usuarios (Administrador de red > Usuarios en Multisitio) que muestra una lista de registros de usuarios no activados. Para cada registro, tienes la opción de reenviar el correo electrónico de activación original o activar manualmente al usuario.

3 dic 2023 10:07:43