Вот что я делаю:
wp_logout();
var_dump(is_user_logged_in());
var_dump возвращает:
bool(true)
Почему wp_logout() не выходит из системы?
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
wp_logout() вызывает clear_auth_cookie(), который удаляет все установленные файлы cookie авторизации. Это не изменяет значение глобальной переменной $current_user. Так что технически вы все еще находитесь в системе на время работы скрипта.
Если вы используете
wp_logout
в своем собственном коде, вероятно, лучше сразуexit
илиwp_redirect
сразу после этого.Вы можете вызвать
wp_set_current_user(0)
afterwp_logout()
, чтобы вручную немедленно выйти из системы, если вам нужно продолжить выполнение PHP, но вы не хотите, чтобы пользователь входил в систему.Ничего из этого не работает. После wp_logout() я пробовал unset($current_user) и wp_redirect(get_bloginfo(«url»));
Вы можете вызвать
wp_set_current_user(0);
afterwp_logout()
, чтобы вручную немедленно выйти из системы, если вам нужно продолжить выполнение PHP, но вы не хотите, чтобы пользователь входил в систему…Не удалось заставить wp_redirect() работать, поэтому вместо этого я использую:
wp_logout(); auth_redirect();
который отлично сработал для меняПервый wp_logout(); затем wp_set_current_user(0);.. Работают отлично!
У меня была такая же проблема с моим кодом. Я пытался выйти из системы с помощью wp_logout(), но он не работал идеально в соответствии с моими потребностями из-за некоторых изменений кода, поэтому я использовал wp_destroy_current_session(); а затем wp_redirect(); и выйти();
И это проснулось для меня. вы также можете использовать auth_redirect(); вместо wp_redirect(site_url()); а также в моем случае wp_set_current_user(0); также не работал, если использовался до перенаправления, поскольку он устанавливал пользователя 0 активным