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

3 февраля 2021

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

Кворк — Заказать разработку лендинга

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

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

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

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

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

Как изменить роль пользователя в Вордпресс
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

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

Подпишитесь на мой телеграм и первыми получайте новые материалы, в том числе которых нет на сайте.

Иван Данилин

Делаю сайты на Вордпресс с 2008 года, занимаюсь их оптимизацией, беру на поддержку, делюсь опытом в своём блоге.

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