Here is what I’m doing:
wp_logout();
var_dump(is_user_logged_in());
var_dump returns:
bool(true)
Why is wp_logout() not logging me out?
Here is what I’m doing:
wp_logout();
var_dump(is_user_logged_in());
var_dump returns:
bool(true)
Why is wp_logout() not logging me out?
You must be logged in to post a comment.
wp_logout() calls clear_auth_cookie(), which expires all authorization cookies set. It doesn’t change the value of the global $current_user variable. So technically you’re still logged in for the duration of the script.
If you’re using
wp_logout
in your own code, its probably best toexit
orwp_redirect
immediately afterwards.You can call
wp_set_current_user(0)
afterwp_logout()
to manually log the user out instantly, if you need to continue executing PHP but don’t want the user to be logged inI had same problem with my code. I was trying to logout by using wp_logout() but It wasn’t working perfectly as per my need because of some code changes so I used wp_destroy_current_session(); and then wp_redirect(); and exit();
And it woked for me.
you can also use
auth_redirect();
instead of wp_redirect(site_url()); and also in my case wp_set_current_user(0); was also not working if used before redirect as it was setting user 0 active