Cerrar sesiones de usuario basado en ID de usuario

14 abr 2015, 13:25:39
Vistas: 14.9K
Votos: 7

Quiero cerrar la sesión de un usuario específico en nuestro sistema WordPress basado en su ID de usuario, similar al botón "Cerrar todas las sesiones" en la sección de edición de usuarios de WordPress.

¿Cómo puedo hacer esto?

0
Todas las respuestas a la pregunta 1
4
19

OK, solución simple después de investigar en el código de WordPress.

// obtener todas las sesiones para el usuario con ID $user_id
$sessions = WP_Session_Tokens::get_instance($user_id);

// hemos obtenido las sesiones, ¡destrúyelas todas!
$sessions->destroy_all();

Esto cerrará la sesión del usuario con ID $user_id en WordPress.

Caso de uso: Mi caso de uso para esto es cuando un usuario es aprobado en moderación, pero luego la situación cambia y es rechazado, será 'expulsado' del sistema si tiene cualquier sesión activa iniciada.

14 abr 2015 13:36:47
Comentarios

solo una pregunta con esto. Si tuviéramos que obtener todos los usuarios en un array, luego excluirnos del array (digamos el id de usuario 1), luego recorrerlo, ¿funcionaría en el functions.php o habría un hook mejor?

markb markb
3 nov 2016 03:18:17

@Ahhhhhhhhhhhhhdfgbv ¿quieres cerrar la sesión de todos en el sitio en particular?

Chris Chris
7 nov 2016 18:28:20

funcionó perfectamente. Gracias

Debbie Kurth Debbie Kurth
5 oct 2021 08:16:10

@DebbieKurth - genial, me alegra que siga siendo apropiado, ¡la base de código de WordPress no ha cambiado demasiado! :)

Chris Chris
5 oct 2021 10:53:03