Jak korzystać z tego samego e-maila dla wielu użytkowników

14

Mam bardzo duży multisite. Dostałem prośbę o włączenie opcji, z której wielu użytkowników może korzystać z tego samego e-maila. Znalazłem wtyczkę „Zezwalaj na wiele kont”, która nie działa poprawnie. Powinienem znaleźć inne rozwiązanie tego problemu. Wiem, że mógłbym użyć czegoś takiego jak dodanie + tekstu do każdego e-maila, więc będzie inaczej niż Wordpress. Czy masz jakieś inne rozwiązanie, które można zrobić tutaj?

Boban
źródło
5
Musisz być z tym ostrożny. Jeśli to działa i jeśli próbujesz użyć tego samego adresu e-mail dla wielu różnych osób, każda z tych osób będzie mogła zresetować hasło do dowolnego lub wszystkich kont korzystających z udostępnionego adresu e-mail. Ten adres e-mail jest częścią systemu bezpieczeństwa.
s_ha_dum,
tak, wiem o tym, ale wciąż szukam tego rozwiązania
Boban,
1
Odpowiedź Parhama jest bardzo ładna, ale chciałbym również zauważyć, że adresy e-mail nie muszą być prawdziwe, więc możesz tworzyć konta z fałszywymi adresami e-mail. Użytkownik może wejść i zmienić go później, jeśli chce. Ma to zalety pod względem bezpieczeństwa i zapobiega problemom z wtyczkami i częściami rdzenia WordPress, które zakładają, że na adres e-mail przypada jedna nazwa użytkownika.
wp-overwatch.com
Dokładnie to, czego potrzebowałem, Panie Mnie. Chcę go tylko do celów testowych.
LegendLength

Odpowiedzi:

15

Możesz użyć wpmu_validate_user_signupfiltru, aby usunąć błąd, a następnie zdefiniować WP_IMPORTINGtylko pominięcie funkcji email_exist()odprawy 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;
}

AKTUALIZACJA : w przypadku konfiguracji nieobsługującej wielu witryn wypróbuj ten kod:

add_filter('pre_user_email', 'skip_email_exist');
function skip_email_exist($user_email){
    define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' );
    return $user_email;
}
Parham
źródło
Myślę, że to właściwa odpowiedź. Oznaczone jako poprawne. Dzięki!
Boban,
1
To nie działa w Wordpress 3.5.
Guillochon
@ Guillochon Nie widzę żadnych zmian w WP 3.5, które spowodowałyby, że ten kod nie działał. Dotyczy to konfiguracji MULTI-SITE, czy testujesz na konfiguracji WP MU?
Parham
Mój błąd, próbowałem skonfigurować jedną witrynę. Wtyczka „Wiele kont” dla pojedynczych witryn już nie działa, więc szukałem alternatyw.
Guillochon
1
Co dzieje się z powiadomieniami o utracie hasła w konfiguracjach obejmujących wiele witryn? Jak sobie z tym poradzić?
Tiny Giant Studios