Come ottenere userid all'hook dell'azione wp_logout?


8

Devo eseguire alcune operazioni di pulizia dopo che un utente si è disconnesso, quindi ho aggiunto un hook di azione wp_logout. Il problema è che wp_get_current_user () restituisce già null se chiamato dall'hook dell'azione wp_logout. Come posso ottenere lo userid di logout all'interno di un hook di azione wp_logout?

Risposte:


14

Che ne dici di collegarti 'clear_auth_cookie'con le pulizie che devi fare? Se hai bisogno di una profondità ancora maggiore, puoi sostituirlo in modo definitivo wp_clear_auth_cookie(), ma ciò può causare problemi in conflitto con altri plug-in, quindi evitalo se possibile.


Grazie mille! Questo e 'esattamente quello che stavo cercando.
Davos Seaworth,

Questo ha funzionato perfettamente. Ho usato questo hook per un plug-in di controllo personalizzato, per registrare l'evento di disconnessione. Grazie.
julianm,

-2

So che è un po 'tardi ... ma ho riscontrato questo problema da solo. Ecco come ho risolto il problema.

Aggiungi quanto segue a Functions.php

function logout_redirect765(){
  $current_user = wp_get_current_user(); 
  wp_redirect( home_url().'/?userid='.$current_user->ID ); 
  exit; 
}
add_action('wp_logout','logout_redirect765');

Questo in sostanza memorizza userid in un parametro url quando l'utente si disconnette.

Quindi basta ottenere il parametro con il seguente:

$_GET['userid']

Spero che questo aiuti qualcuno in futuro a trovare questo post.


-3
add_action('wp_logout', 'user_id');

function user_id()
{
    wp_get_current_user()->data->ID;
}

usalo nel file principale del plugin


4
Come afferma l'OP 'wp_get_current_user () restituisce già null se chiamato dall'hook dell'azione wp_logout', quindi non funzionerà.
marfarma,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.