Как настроить вход в админку WordPress по email адресу

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

Мы будем использовать действие wp_authenticate, которое выполняет прежде, чем WordPress аутентифицирует пользователя, и здесь мы сможем изменить имя пользователя и пароль, отправленный пользователем.

Внутри этой функции, когда мы возьмем $username (имя пользователя, отправленное нам формой логина), мы затем обработаем это значение и выполним поиск email пользователя. Если вернется пользователь как объект, мы подменим логин на имя пользователя из найденного объекта пользователя.

Важно отметить, что это срабатывает по-другому с другими WordPress действиями путем отправки параметров в качестве ссылки. Что означает, что это действие лучше сработает в коде ядра в виде фильтра, так как оно требует передачи параметров, изменения значений и их возврата.

Так как это — действие, оно обрабатывает параметры, определенные амперсандом в списке параметров функций. Это означает, что вам не нужно возвращать какие-либо значения из этой функции, а просто нужно изменить значения переменных и они автоматически будут возвращены функцией.

Вы можете посмотреть, как это работает в WordPress, заглянув в код ядра в месте выполнения wp_authenticate.

Внутри файла /wp-includes/user.php в строке 54 вы увидите следующий код:

Обычно, когда вызывается действие, оно использует функцию do_action(), однако наше — использует функцию do_action_ref_array() и обрабатывает значения в качестве ссылки.

Мы надеемся, что эта статья помогла вам настроить для ваших пользователей возможность входа на сайт WordPress по email адресу.

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

Источник

Written by: