Разработка плагина Wordpress:is_user_logged_in возвращает false

Я разрабатываю плагин, который будет управлять пользовательским входом в систему. В моей пользовательской форме входа в систему, когда представляются учетные данные, я запускаю этот код:

if( isset( $_POST['login'] ) ){

    $login = wp_signon( array(
        'user_login' => $_POST['username'],
        'user_password' => $_POST['password'],
        'remember' => 'true'
    ), true);

    if( is_wp_error( $login ) ){
        echo $login->get_error_message();
    } else {

        $username = $_POST['username'];

        wp_set_current_user( $login->ID, $_POST['username'] );
        wp_set_auth_cookie( $login->ID );
        do_action( 'wp_login', $username );
    }//else

}//if


if( is_user_logged_in() ){ // is_user_logged_in()
    ?><a id="wp-submit" href="<?php echo esc_url( add_query_arg( array( 'ecofriends_logout' => true) ) ); ?>" title="Logout">Logout</a><?php


} else { 
    ecofriends_login_form(); 
}//else

Поэтому, когда учетные данные отправлены, он входит в систему. Если учетные данные не представлены, проверьте, вошел ли пользователь, чтобы показать ссылку выхода из системы, либо форму входа.

Важным фактом является то, что здесь is_user_logged_in() работает нормально.

В файле function.php я создал функцию, которая управляет выходом из системы:

function logout(){
if( is_user_logged_in() ){
    wp_logout();
}//if
}//ecofriends_logout

но когда я вызываю его, is_user_logged_in() всегда возвращает false, даже если пользователь только что вошел в систему.

PS Я работаю на localhost, и форма входа вызывается на странице с помощью шорткода.

Спасибо

1 ответ

Хорошо, из комментариев я думаю, что это то, что происходит. Ваш плагин login.php file вызывается при каждом запросе, который, как вы сказали, вызывает функцию logout(), поэтому каждый раз выходит из системы.

Вы должны ссылаться на logout() Функция запускаемых пользователем действий, таких как нажатие на кнопку выхода из системы или навязывание определенных условий.

Другие вопросы по тегам