Как на сайте WordPress запретить восстановление пароля?

WordPress, по умолчанию, дает возможность всем зарегистрированным пользователям сбрасывать или изменять пароль, введя имя пользователя или адрес электронной почты. Иногда владельцу сайта, в силу тех или иных причин, требуется отключить эту возможность.

Как в WordPress запретить восстановление пароля?

Стандартные инструменты “движка” не позволяют как-либо повлиять на ход восстановления пароля. Поэтому для решения задачи воспользуемся сторонними методами.

Метод 1. Плагин Plainview Protect Passwords

Наиболее простым для пользователя решением является установка специального плагина Plainview Protect Passwords. После его установки и активации в админ-панели необходимо перейти в раздел Настройки -> Protect Passwords.

Страница настроек плагина Plainview Protect Passwords

Плагин позволит запретить восстановление пароля как для отдельного, так и для всех пользователей. Для этого на странице настроек плагина присутствуют несколько блоков. В разделе Protected Roles Вы сможете выбрать одну или несколько зарегистрированных на сайте ролей, для которых будет запрещено восстановление пароля. Также можно запретить одному или нескольким конкретным пользователям изменять пароль (блок Protected users). Отключим эту возможность, например, для отдельного пользователя IvanIvanov.

Страница настроек плагина Plainview Protect Passwords

Теперь, когда вышеуказанный пользователь захочет “вспомнить” свой пароль, то увидит следующее:

Страница входа

Метод 2. Ручное отключение восстановления пароля

Существует еще один метод, позволяющий отключить эту функцию. Он предусматривает вставку специального PHP-кода в файл functions.php Вашей активной WordPress-темы.

Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

Итак, в указанный файл нужно добавить следующие строки:

class WPSchool_Password_Reset_Removed {

function __construct() {
    add_filter( 'show_password_fields', array( $this, 'disable' ) );
    add_filter( 'allow_password_reset', array( $this, 'disable' ) );
    add_filter( 'gettext', array( $this, 'remove' ) );
}

function disable() {
    if ( is_admin() ) {
        $userdata = wp_get_current_user();
        $user = new WP_User($userdata->ID);
        if ( !empty( $user->roles ) && is_array( $user->roles ) && $user->roles[0] == 'administrator' )
        return true;
     }
     return false;
}

function remove( $text ) {
    return str_replace( array( 'Lost your password?', 'Lost your password' ), '', trim( $text, '?' ) );
}

}

$pass_reset_removed = new WPSchool_Password_Reset_Removed();

Код отключит возможность восстановления пароля для всех зарегистрированных на сайте пользователей, включая администраторов.

Курс WordPress-разработчик
Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров
Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.