Как использовать один email для нескольких пользователей

10 дек. 2012 г., 13:33:23
Просмотры: 18.1K
Голосов: 15

У меня очень большая мультисайтовая установка. И мне поступил запрос включить возможность, чтобы несколько пользователей могли использовать один и тот же email. Я нашел плагин "Allow Multiple Accounts", который не работает должным образом. Мне нужно найти какое-то другое решение для этой задачи. Я знаю, что можно использовать что-то вроде добавления +текст к каждому email, чтобы WordPress воспринимал их как разные. Есть ли у вас другие решения, которые можно здесь применить?

4
Комментарии

С этим нужно быть осторожным. Если у вас это работает и вы пытаетесь использовать один и тот же email для нескольких разных пользователей, то любой из этих пользователей сможет сбросить пароль для любого или всех аккаунтов, использующих этот общий email. Этот email является частью системы безопасности.

s_ha_dum s_ha_dum
10 дек. 2012 г. 18:18:10

Да, я знаю это, но всё ещё ищу решение

Bob Bob
10 дек. 2012 г. 21:19:18

Ответ Parham довольно изящный, но я также хотел бы отметить, что email-адреса не обязательно должны быть настоящими, поэтому вы можете создавать аккаунты с поддельными email-адресами. Пользователь может позже зайти и изменить его, если захочет. Это имеет преимущества с точки зрения безопасности и предотвращает проблемы с плагинами и частями ядра WordPress, которые предполагают, что на один email приходится одно имя пользователя.

wp-overwatch.com wp-overwatch.com
1 сент. 2017 г. 01:12:36

Именно то, что мне было нужно, Mr Me. Я просто хочу использовать это для тестирования.

LegendLength LegendLength
22 сент. 2018 г. 19:44:23
Все ответы на вопрос 2
8
16

Вы можете использовать фильтр wpmu_validate_user_signup для удаления ошибки и затем определить константу WP_IMPORTING, чтобы пропустить проверку email_exist() в функции 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(__('Извините, этот email уже используется!'), $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;
}

ОБНОВЛЕНИЕ: для настройки без Multi-site попробуйте этот код:

add_filter('pre_user_email', 'skip_email_exist');
function skip_email_exist($user_email){
    define( 'WP_IMPORTING', 'SKIP_EMAIL_EXIST' );
    return $user_email;
}
11 дек. 2012 г. 10:59:18
Комментарии

Думаю, это правильный ответ. Помечено как верное. Спасибо!

Bob Bob
11 дек. 2012 г. 15:23:24

Это не работает в WordPress 3.5.

Guillochon Guillochon
29 янв. 2013 г. 20:37:16

@Guillochon Я не вижу изменений в WP 3.5, которые могли бы привести к неработоспособности этого кода. И это для MULTI-SITE настройки, вы тестируете на WP MU установке?

Parham Parham
29 янв. 2013 г. 21:38:35

Моя ошибка, я пытался настроить для одного сайта. Плагин "Multiple Accounts" для одиночных сайтов больше не работает, поэтому я искал альтернативы.

Guillochon Guillochon
30 янв. 2013 г. 01:46:18

@Guillochon Попробуйте мое обновленное решение выше для настройки одиночного сайта.

Parham Parham
30 янв. 2013 г. 08:09:58

Что происходит с уведомлениями о сбросе пароля в мультисайтовых настройках? Как это будет обрабатываться?

Tiny Giant Studios Tiny Giant Studios
2 мая 2013 г. 15:06:55

@Tiny Giant Studios Я только что провел тест с двумя аккаунтами, использующими один и тот же email. Когда я запросил восстановление пароля по email, пришло только одно сообщение для первого созданного аккаунта. В этом случае лучше использовать имя пользователя для сброса пароля.

mike23 mike23
6 нояб. 2013 г. 16:46:27

Это не позволяет создать более 2 аккаунтов с одним и тем же email-адресом.

Steve Steve
20 янв. 2017 г. 03:55:10
Показать остальные 3 комментариев
0

Вы можете использовать функцию псевдонимов в Gmail:

  • Первая учетная запись WordPress: email+1@gmail.com
  • Вторая учетная запись WordPress: email+2@gmail.com
  • Третья учетная запись WordPress: email+3@gmail.com

и так далее.

Все письма будут приходить на один адрес (email@gmail.com).

В Gmail вы можете различать письма с помощью фильтров или поиска. Например, поиск по запросу to:email+1@gmail.com покажет только письма, связанные с первой учетной записью WordPress.

Это решение не должно нарушать процесс "Сброса пароля" в WordPress.

30 апр. 2020 г. 14:32:37