Comment obtenir l'ID utilisateur au crochet d'action wp_logout?

8

Je dois effectuer un nettoyage après la déconnexion d'un utilisateur, j'ai donc ajouté un hook d'action wp_logout. Le problème est que wp_get_current_user () renvoie déjà null s'il est appelé à partir du hook d'action wp_logout. Comment obtenir l'ID utilisateur de déconnexion des utilisateurs dans un hook d'action wp_logout?

Davos Seaworth
la source

Réponses:

14

Que diriez-vous d'accrocher 'clear_auth_cookie'avec le nettoyage que vous devez faire? Si vous avez besoin de plus de profondeur, vous pouvez le remplacer purement et simplement wp_clear_auth_cookie(), mais cela peut entraîner des problèmes où il entrera en conflit avec d'autres plugins, évitez donc cela si possible.

mor7ifer
la source
Merci beaucoup! Ceci est exactement ce que je cherchais.
Davos Seaworth
Cela a parfaitement fonctionné. J'ai utilisé ce hook pour un plugin d'audit personnalisé, pour enregistrer l'événement de déconnexion. Je vous remercie.
julianm
-2

Je sais que c'est un peu tard ... mais j'ai rencontré ce problème moi-même. C'est ainsi que j'ai résolu le problème.

Ajoutez ce qui suit à vos fonctions.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');

Cela stocke essentiellement l'ID utilisateur dans un paramètre d'URL lorsque l'utilisateur se déconnecte.

Ensuite, obtenez simplement le paramètre avec ce qui suit:

$_GET['userid']

J'espère que cela aidera quelqu'un à l'avenir qui trouvera ce message.

danyo
la source
-3
add_action('wp_logout', 'user_id');

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

utiliser ceci dans le fichier principal du plugin

sandeep
la source
4
Comme l'OP indique que 'wp_get_current_user () retourne déjà null s'il est appelé depuis le hook d'action wp_logout' - donc cela ne fonctionnera pas.
marfarma