Como usar o mesmo email para vários usuários

14

Eu tenho um multisite muito grande. E recebi uma solicitação para ativar a opção de que vários usuários possam usar o mesmo email. Encontrei um plug-in "Permitir várias contas" que não funciona corretamente. Eu deveria descobrir alguma outra solução para isso. Eu sei que eu poderia usar algo como adicionar + algum texto a cada e-mail, para que seja diferente do Wordpress. Você tem alguma outra solução que pode ser feita aqui?

Boban
fonte
5
Você precisa ter cuidado com isso. Se você conseguiu esse trabalho e está tentando usar o mesmo email para vários indivíduos distintos, qualquer um desses indivíduos poderá redefinir a senha para qualquer uma ou todas as contas que usam o email compartilhado. Esse endereço de email faz parte do sistema de segurança.
s_ha_dum
sim, eu sei disso, mas eu ainda estou procurando por esta solução
Boban
1
A resposta de Parham é bonita, mas eu também gostaria de destacar que os endereços de email não precisam ser reais, para que você possa criar contas com endereços de email falsos. O usuário pode alterá-lo mais tarde, se desejar. Isso tem vantagens em termos de segurança e evita problemas com plugins e partes do núcleo do WordPress que pressupõem que haja um nome de usuário por endereço de email.
wp-overwatch.com
Exatamente o que eu precisava, Sr. Me. Eu só quero isso para fins de teste.
precisa saber é o seguinte

Respostas:

15

Você pode usar o wpmu_validate_user_signupfiltro para remover o erro e depois definir WP_IMPORTINGapenas para ignorar a função de email_exist()check-in 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;
}

UPDATE : para uma configuração que não seja de vários sites, tente 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
fonte
Eu acho que esta é a resposta certa. Marcado como correto. Obrigado!
Boban
1
Isso não funciona no Wordpress 3.5.
Guillochon
@ Guillochon Não vejo nenhuma alteração no WP 3.5 que faça esse código não funcionar. E isso é para uma configuração MULTI-SITE, você está testando uma configuração WP MU?
Parham
Meu erro, eu estava tentando uma configuração de site único. O plug-in "Múltiplas contas" para sites únicos não funciona mais, então eu estava procurando alternativas.
Guillochon
1
O que acontece com as notificações de senha perdida em configurações de vários sites? Como isso será tratado?
Tiny Giant Studios