Уничтожение сессий пользователя по ID

14 апр. 2015 г., 13:25:39
Просмотры: 14.9K
Голосов: 7

Мне нужно программно выйти конкретного пользователя из нашей системы WordPress по его ID, аналогично кнопке "Выйти со всех устройств" в разделе редактирования пользователя WordPress.

Как это можно сделать?

0
Все ответы на вопрос 1
4
19

Хорошо, простое решение после изучения кода WordPress.

// получаем все сессии для пользователя с ID $user_id
$sessions = WP_Session_Tokens::get_instance($user_id);

// получили сессии, уничтожаем их все!
$sessions->destroy_all();

Это приведёт к выходу пользователя с ID $user_id из WordPress.

Сценарий использования: В моём случае это нужно, когда пользователь был одобрен модерацией, но затем ситуация изменилась и он был отклонён — он будет "выгнан" из системы, если у него есть активные сессии входа.

14 апр. 2015 г. 13:36:47
Комментарии

Просто вопрос по этому поводу. Если мы получим всех пользователей в массив, затем исключим себя из массива (например, пользователя с ID 1), а затем пройдемся по нему в цикле — это будет работать в functions.php или есть лучший хук для этого?

markb markb
3 нояб. 2016 г. 03:18:17

@Ahhhhhhhhhhhhhdfgbv ты хочешь разлогинить всех на конкретном сайте?

Chris Chris
7 нояб. 2016 г. 18:28:20

сработало идеально. Спасибо

Debbie Kurth Debbie Kurth
5 окт. 2021 г. 08:16:10

@DebbieKurth - отлично, рад, что всё ещё актуально, кодовая база WordPress не слишком изменилась! :)

Chris Chris
5 окт. 2021 г. 10:53:03