clear_auth_cookie
est ce dont j'avais besoin pour intercepter l'action de déconnexion, mais je ne peux pas le faire retourner.
https://core.trac.wordpress.org/browser/tags/4.9/src/wp-includes/pluggable.php#L940
Selon le Codex, il ne donne aucune information.
Idéalement j'aimerais faire:
add_action( 'clear_auth_cookie', 'return_user_data_on_logout');
function return_user_data_on_logout( $user ) {
$id = $user->ID; //Assuming it returns a WP_User object.
//Do some logic here, mostly to check if the user if is of certain type /
has certain meta attached to them.
}
Des idées?
Cette action ne transmet pas ces données:
function return_user_data_on_logout( $user ) {
Ici, $user
sera toujours indéfini. De plus, vous devez indiquer à add_action
le nombre de paramètres requis par la fonction.
Mais..
do_action( 'clear_auth_cookie' );
Aucune information n'est transmise pour commencer, ce n'est pas comme ça que cet événement/cette action fonctionne.
Alors, comment pouvons-nous déconnecter l'utilisateur actuel? La réponse est que nous supprimons les mots "se déconnecter" de cette question, ce qui nous donne une question beaucoup plus facile et beaucoup plus interrogeable:
Comment obtenons-nous l'utilisateur actuel?
$user = wp_get_current_user();
Il est possible que ce crochet soit trop tôt et qu’il ne soit pas non plus le meilleur.
Par exemple, wp_logout
est un crochet bien meilleur à utiliser, comme il est indiqué sur l'étain, ce qu'il fait
Alors:
add_action( 'wp_logout', function() {
$user = wp_get_current_user();
// ...
});