Как изменить роль пользователя в Вордпресс

Опубликовано 4 года назад

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

Да-да — производственная необходимость, потому что заказчики иногда мудрят с доступами, и проще самому настроить себе нужную для работы роль, чем объяснять зачем мне это нужно и как это сделать. Кстати, как добавить админа в Вордпресс без доступа в админку я уже рассказывал. Эта история из той же оперы.

С правами администратора

С этим все просто.

Имея доступ к админке и соответствующие права администратора роль любого пользователя меняется привычным всем способом.

Открываем раздел «Пользователи»

Как изменить роль пользователя в Вордпресс
WordPress — Пользователи

Наводим курсор на нужного пользователя и нажимаем «Изменить», в профиле пользователя выбираем нужную роль и все.

Как изменить роль пользователя в Вордпресс
WordPress — Изменить роль пользователя

Без прав администратора

С этим сложнее.

Потому что в Вордпресс роли пользователей может редактировать только администратор. То есть, если вы подписчик, редактор или ещё кто-нибудь, у вас такой возможности нет.

Для изменения ролей я пользуюсь двумя способами: путём прямого изменения метаданных пользователя в БД или с помощью стандартной функции Вордпресс wp_update_user().

Первый способ сложнее, требует более глубоких знаний, доступа к SSH или PMA. И в целом более рискованный, потому что высока доля вероятности сломать сайт. Чтобы потом в меня не кидали камни, я на нем останавливаться не буду. А вот для второго способа потребуется только ФТП, рисков там минимум, его мы и рассмотрим.

Первое, что нужно сделать — это узнать ID пользователя, роль которого будем менять.

Для этого достаточно в списке пользователей (на скрине выше) навести курсор на нужного пользователя и в строке состояния браузера появится URL, в котором можно обнаружить user_id. В нашем примере user_id=3.

Если вы меняете свою роль, в строке состояния user_id не отобразится. В этом случае можно просто выполнить в любом исполняемом файле активной Вордпресс-темы (например, в footer.php) функцию get_current_user_id(), которая выведет user_id текущего пользователя:

echo get_current_user_id();

Имея ID пользователя таким же образом добавляем в любой исполняемый файл темы (header.php, footer.php, functions.php, etc) или плагин такой код:

wp_update_user( [ 
  'ID' => '12345', 
  'role' => 'administrator'
] );

Где ID — это полученный user_id, а role — роль, которую нужно установить пользователю.

Основные роли пользователей в Вордпресс:

  • administrator
  • editor
  • author
  • contributor
  • subscriber

После добавления кода, нужно открыть любую страницу сайта. Код исполнится, после этого его нужно обязательно удалить.

Иван Данилин
Автор Иван Данилин

Фулстек веб‑разработчик, специализируюсь на платформе WordPress

Подробнее
Добавить комментарий