jarred
  • 0
Новичок

Wp_logout не выходит из системы

  • 0

Вот что я делаю:

wp_logout();
var_dump(is_user_logged_in());

var_dump возвращает:

bool(true)

Почему wp_logout() не выходит из системы?

Share
  1. wp_logout() вызывает clear_auth_cookie(), который удаляет все установленные файлы cookie авторизации. Это не изменяет значение глобальной переменной $current_user. Так что технически вы все еще находитесь в системе на время работы скрипта.

    Если вы используете wp_logout в своем собственном коде, вероятно, лучше сразу exit или wp_redirect сразу после этого.

    Вы можете вызвать wp_set_current_user(0) after wp_logout(), чтобы вручную немедленно выйти из системы, если вам нужно продолжить выполнение PHP, но вы не хотите, чтобы пользователь входил в систему.

    • 0
  2. У меня была такая же проблема с моим кодом. Я пытался выйти из системы с помощью wp_logout(), но он не работал идеально в соответствии с моими потребностями из-за некоторых изменений кода, поэтому я использовал wp_destroy_current_session(); а затем wp_redirect(); и выйти();

        wp_destroy_current_session();
        wp_logout();
        wp_redirect(site_url()); 
        exit();
    

    И это проснулось для меня. вы также можете использовать auth_redirect(); вместо wp_redirect(site_url()); а также в моем случае wp_set_current_user(0); также не работал, если использовался до перенаправления, поскольку он устанавливал пользователя 0 активным

    • 0

Оставить ответ

You must login to add an answer.