Distruggi le sessioni utente basate sull'ID utente

14 apr 2015, 13:25:39
Visualizzazioni: 14.9K
Voti: 7

Vorrei disconnettere programmaticamente un utente specifico dal nostro sistema WordPress basandomi sul suo ID utente, simile al pulsante "Disconnetti da tutte le sessioni" presente nella sezione di modifica utente di WordPress.

Come posso fare questo?

0
Tutte le risposte alla domanda 1
4
19

OK, soluzione semplice dopo aver analizzato il codice di WordPress.

// ottieni tutte le sessioni per l'utente con ID $user_id
$sessions = WP_Session_Tokens::get_instance($user_id);

// abbiamo ottenuto le sessioni, distruggile tutte!
$sessions->destroy_all();

Questo farà sloggare l'utente con ID $user_id da WordPress.

Caso d'uso: Il mio caso d'uso per questo è quando un utente viene approvato dalla moderazione, ma poi la situazione cambia e viene rifiutato, verrà "espulso" dal sistema se ha delle sessioni di login attive.

14 apr 2015 13:36:47
Commenti

solo una domanda su questo. Se dovessimo ottenere tutti gli utenti in un array, poi escludere noi stessi dall'array (diciamo user id 1), quindi fare un loop attraverso l'array, funzionerebbe nel functions.php o ci sarebbe un hook migliore?

markb markb
3 nov 2016 03:18:17

@Ahhhhhhhhhhhhhdfgbv vuoi disconnettere tutti da questo sito specifico?

Chris Chris
7 nov 2016 18:28:20

ha funzionato perfettamente. Grazie

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

@DebbieKurth - fantastico, sono felice che sia ancora appropriato, la codebase di WordPress non è cambiata troppo! :)

Chris Chris
5 ott 2021 10:53:03