wp_destroy_other_sessions()
Удаляет все активные сессии, кроме текущей из БД, у текущего пользователя.
Это может пригодится для управления безопасностью, когда например мы хотим запретить вход одному пользователю одновременно с нескольких устройств.
-
Используйте wp_destroy_all_sessions(), когда нужно удалить все сессии текущего пользователя.
- Используйте wp_destroy_current_session(), когда нужно удалить текущую сессию пользователя.
Хуков нет.
Возвращает
null. Ничего (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 destroy other sessions WP 6.9.1
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 );
}
}