WP_DESTROY_OTHER_SESSIONS() │ WP 4.0.0
Функция WP_DESTROY_OTHER_SESSIONS() отвечает за удаление всех сессий пользователя, кроме текущей. Эта функция может быть полезна, если вы хотите ограничить вход пользователя в систему с разных устройств.
Использование функции
Функция задействует метод WP_Session_Tokens::destroy_others(), но не имеет хуков.
Возвращаемое значение
Функция ничего не возвращает (null).
Как использовать
Для удаления других сессий воспользуйтесь следующей командой:
wp_destroy_other_sessions();
Примеры использования
Пример 1: Принудительное ограничение до одной сессии
Этот пример показывает, как проверить все активные сессии пользователя. Если найдена сессия с другим токеном, все остальные сессии будут завершены.
if ( is_user_logged_in() ) {
$current_token = wp_get_session_token(); // Получаем токен текущей сессии
$all_sessions = wp_get_all_sessions( get_current_user_id() ); // Получаем все сессии
foreach ( $all_sessions as $token => $session_data ) {
// Если найдена другая сессия, завершаем её
if ( $token !== $current_token ) {
wp_destroy_other_sessions(); // Удаляем все другие сессии
break; // Выходим из цикла
}
}
}
Возможность вставить свой пример
Вы можете добавить свой собственный пример использования функции, если это необходимо.
История изменений
Функция была добавлена в версии 4.0.0.
Код функции
Вот как выглядит код функции wp_destroy_other_sessions() в версии WP 6.7.2:
function wp_destroy_other_sessions() {
$token = wp_get_session_token(); // Получаем токен текущей сессии
if ( $token ) {
$manager = WP_Session_Tokens::get_instance( get_current_user_id() ); // Инициализируем управление сессиями
$manager->destroy_others( $token ); // Удаляем все другие сессии
}
}
Связанные функции
Функция wp_destroy_other_sessions() связана с несколькими другими функциями, которые также работают с пользователями. Вот некоторые из них:
Функции для работы с пользователями
clean_user_cache()— обновляет кэш данных пользователя.current_user_can()— проверяет возможности текущего пользователя.get_current_user_id()— возвращает ID текущего пользователя.is_user_logged_in()— проверяет, авторизован ли пользователь.
Функции для авторизации
wp_login()— обрабатывает процесс входа пользователя.wp_logout()— завершает сессию пользователя и выводит его из системы.wp_authenticate()— проверяет данные для входа пользователя.
Используя эти функции, вы можете управлять сессиями пользователей и обеспечивать безопасность своего сайта на WordPress.