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?

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.


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.


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

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

utiliser ceci dans le fichier principal du plugin


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.