web-dev-qa-db-fra.com

Détruire les sessions utilisateur en fonction de l'ID utilisateur

Je souhaite déconnecter par programme un utilisateur spécifique de notre système WordPress en fonction de son ID utilisateur, un peu comme le bouton "Déconnecter de toutes les sessions" de la section Éditeur de l'utilisateur WordPress.

Comment puis-je faire cela?

5
Chris

OK, solution simple après avoir fouillé dans le code WordPress.

// get all sessions for user with ID $user_id
$sessions = WP_Session_Tokens::get_instance($user_id);

// we have got the sessions, destroy them all!
$sessions->destroy_all();

Cela connectera l'utilisateur avec l'ID $user_id hors de WordPress.

Cas d'utilisation: Mon cas d'utilisation est le cas où un utilisateur est approuvé, mais la situation change et il est refusé. Ils seront alors expulsés du système s'ils ont des sessions de connexion actives.

13
Chris