coffee

Как убрать возможность восстановления и смены пароля из WordPress

Зачем убирать восстановление или смену пароля в WordPress

Если вы включили регистрацию у себя на сайте, то возможность восстановления пароля позволяет восстановить утерянные пароли. Однако в некоторых случаях вы можете захотеть убрать эту опцию для определенных пользователей. Например, если вы создали для кого-то временный аккаунт или если вы создали демосайт, на который пользователи могут зайти с демо-именем и демо-паролем. Самым простым способом в данном случае будет просто убрать ссылку на восстановление пароля. Однако у некоторых пользователей может сохраниться адрес формы восстановления пароля.

Способ первый: убираем опцию восстановления пароля через плагин

Способ с плагином проще и удобнее. Он позволяет вам настроить отмену восстановления пароля для определенных пользователей и их групп. Вам надо установить и активировать плагин Plainview Protect Passwords, после чего зайти на страницу Settings > Protect Passwords, чтобы все настроить.

WordPress

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

WordPress

Способ второй: вручную убираем функцию восстановления пароля в WordPress

Откройте Блокнот и вставьте следующий код

<?php class 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 Password_Reset_Removed();
?>

Сохраните этот файл под названием disable-password-reset.php. Затем соединитесь со своим сайтом по FTP и зайдите в папку плагинов. Она находится в директории wp-content.

WordPress

Загрузите созданный вами файл в эту папку. Теперь вам надо зайти в админку на страницу плагинов, где вы должны увидеть новый плагин под названием Disable Password Reset в списке установленных плагинов. Активируйте его.

WordPress

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


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520