Как отключить регистрацию и сброс пароля из панели администратора WordPress?

Вопрос или проблема

Как отключить регистрацию и сброс пароля из панели администратора WordPress?

Пожалуйста, я хочу сделать это с помощью кода, не используя плагины.

Добавьте код ниже в файл functions.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('Забыли свой пароль?', 'Забыли пароль'), '', trim($text, '?') ); 
  }
}

$pass_reset_removed = new Password_Reset_Removed();

Добавьте следующее в файл functions.php вашей темы, чтобы отключить регистрацию:

   add_action( 'login_head', 'hide_login_nav' );

function hide_login_nav()
{
    ?><style>#nav{display:none}</style><?php
}

Первая часть, удаление регистрации, не требует никакого кода. Просто снимите галочку с поля ‘Любой может зарегистрироваться‘ в ‘Настройки -> Основные -> Членство‘.

Вторая часть, удаление функции сброса пароля, состоит из двух частей: удаление
(скрытие) ссылки ‘Забыли свой пароль?‘ из формы входа и удаление (скрытие) раздела ‘Управление учетной записью‘ на странице профиля пользователя. К сожалению, удаление этих элементов нарушает как безопасность сайта (администратора), так и безопасность пользователя. Поэтому, хотя это технически возможно, я не собираюсь предоставлять решение для второй части.

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

Ответ или решение

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

Отключение регистрации пользователей

  1. Отключение функции регистрации через настройки WordPress:

Перейдите в панель управления WordPress и выполните следующие действия:

  • Зайдите в НастройкиОбщие.
  • Найдите параметр Членыство и снимите галочку с опции Любой может зарегистрироваться.

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

Отключение функции сброса пароля

  1. Для отключения функциональности сброса пароля, используйте следующий код:

Добавьте приведенный ниже код в файл functions.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();

Скрытие ссылки ‘Забыли пароль?’

Этот код удаляет ссылку "Забыли пароль?" с экрана входа в систему, что повышает безопасность вашего сайта.

  1. Скрытие навигации на странице входа:

Добавьте следующий код, чтобы скрыть навигацию на странице входа (например, ссылки на регистрацию):

add_action( 'login_head', 'hide_login_nav' );

function hide_login_nav() {
    echo '<style>#nav { display: none; }</style>';
}

Важные замечания

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

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

Оцените материал
Добавить комментарий

Капча загружается...