Cómo usar el mismo correo electrónico para múltiples usuarios
Tengo un multisitio muy grande. Y recibí una solicitud para habilitar la opción de que múltiples usuarios puedan usar el mismo correo electrónico. Encontré un plugin "Allow Multiple Accounts" que no funciona correctamente. Debo encontrar alguna otra solución para esto. Sé que podría usar algo como agregar +algúntexto a cada correo, para que WordPress lo vea como diferente. ¿Tienes alguna otra solución que se pueda implementar aquí?
Puedes usar el filtro wpmu_validate_user_signup
para eliminar el error y luego definir WP_IMPORTING
para omitir la verificación email_exist()
en la función 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(__('Lo sentimos, ¡esa dirección de correo electrónico ya está en uso!'), $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;
}
ACTUALIZACIÓN: para una configuración que no sea Multi-site, prueba este código:
add_filter('pre_user_email', 'skip_email_exist');
function skip_email_exist($user_email){
define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' );
return $user_email;
}

@Guillochon No veo ningún cambio en WP 3.5 que haga que este código no funcione. Y esto es para una configuración MULTI-SITE, ¿estás probando en una configuración WP MU?

Mi error, estaba intentando una configuración para un solo sitio. El plugin "Multiple Accounts" para sitios individuales ya no funciona, así que estaba buscando alternativas.

@Guillochon Prueba mi solución actualizada de arriba para una configuración de un solo sitio.

¿Qué pasa con las notificaciones de contraseña perdida en configuraciones multisitio? ¿Cómo se manejará esto?

@Tiny Giant Studios Acabo de hacer una prueba con dos cuentas que tienen la misma dirección de correo electrónico. Solicité una contraseña perdida usando el correo y solo recibí un mensaje dirigido a la primera cuenta creada. Así que en este caso sería mejor usar el nombre de usuario para restablecer una contraseña.

Puedes utilizar la función de alias de Gmail:
- Primera cuenta de WordPress: email+1@gmail.com
- Segunda cuenta de WordPress: email+2@gmail.com
- Tercera cuenta de WordPress: email+3@gmail.com
y así sucesivamente.
Todos los correos electrónicos serán entregados en la misma dirección (email@gmail.com).
Dentro de Gmail, puedes distinguir los correos electrónicos usando un filtro o una búsqueda.
Por ejemplo, buscando to:email+1@gmail.com
mostrará solo los correos electrónicos relacionados con la primera cuenta de WordPress.
Esta solución no debería afectar el flujo de trabajo de "Restablecer contraseña" en WordPress.
