Cómo usar el mismo correo electrónico para múltiples usuarios

14

Tengo una gran multisitio. Y recibí una solicitud para habilitar la opción de que varios usuarios puedan usar el mismo correo electrónico. Encontré un complemento "Permitir varias cuentas" que no funciona correctamente. Debería encontrar alguna otra solución para eso. Sé que podría usar algo como agregar + sometext a cada correo electrónico, por lo que se mostrará diferente a Wordpress. ¿Tiene alguna otra solución, que se puede hacer aquí?

Boban
fuente
55
Tienes que tener cuidado con esto. Si esto funciona y está intentando usar el mismo correo electrónico para varias personas distintas, cualquiera de esas personas podrá restablecer la contraseña para cualquiera o todas las cuentas que usan el correo electrónico compartido. Esa dirección de correo electrónico es parte del sistema de seguridad.
s_ha_dum
Sí, lo sé, pero todavía estoy buscando esta solución
Boban
1
La respuesta de Parham es bastante bonita, pero también me gustaría señalar que las direcciones de correo electrónico no tienen que ser reales, por lo que puede crear cuentas con direcciones de correo electrónico falsas. El usuario puede entrar y cambiarlo más tarde si lo desea. Esto tiene ventajas en términos de seguridad y evita problemas con los complementos y partes del núcleo de WordPress que suponen que hay un nombre de usuario por dirección de correo electrónico.
wp-overwatch.com
Exactamente lo que necesitaba, señor Me. Solo lo quiero con fines de prueba.
LegendLength

Respuestas:

15

Puede usar el wpmu_validate_user_signupfiltro para eliminar el error y luego definirlo WP_IMPORTINGsolo para omitir la función de email_exist()registro 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(__('Sorry, that email address is already used!'), $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 de varios sitios, intente 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;
}
Parham
fuente
Creo que esta es la respuesta correcta. Marcado como correcto. ¡Gracias!
Boban
1
Esto no funciona en Wordpress 3.5.
Guillochon
@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á probando en una configuración WP MU?
Parham el
Mi error, estaba tratando de configurar un solo sitio. El complemento "Cuentas múltiples" para sitios individuales ya no funciona, así que estaba buscando alternativas.
Guillochon
1
¿Qué sucede con las notificaciones de contraseña perdida en configuraciones de múltiples sitios? ¿Cómo se manejará esto?
Tiny Giant Studios