为什么我关闭浏览器后WordPress不注销?

时间:2014-11-28 作者:Yoga

默认登录cookie的到期时间为“session”,因此假设当我关闭浏览器时,我需要在访问wp admin时再次登录。

但我发现,很多时候我都关闭了浏览器(手动关闭chrome),当我回来时,我仍然可以不用登录就登录。

原因是什么?

Update: 只有chrome有这个问题,Firefox/Safrai也可以。

我在Mac下测试,先关闭浏览器,然后Quit 确保浏览器未运行的应用程序。FF和Safrai都要求我再次登录,但在我关闭浏览器并退出应用程序后,Chrome仍保存了会话。

1 个回复
SO网友:nicolas181070

我在wordpress函数中使用了此代码。php,用于在woocommerce中付款后自动注销客户/用户或关闭浏览器

function logged_in( $expirein ) {
   return 6; // 6 in seconds
}
add_filter( \'auth_cookie_expiration\', \'logged_in\' );

function wp_logout2() {
    wp_destroy_current_session();
    wp_clear_auth_cookie();

    /**
     * Fires after a user is logged-out.
     *
     * @since 1.5.0
     */
    do_action( \'wp_logout2\' );
}

function wpse108399_change_cookie_logout( $expiration, $user_id, $remember ){
    if( $remember && user_can( $user_id, \'administrator\' ) ){
        $expiration = 604800;// yes, I know this is 1 minute
    }
    if( $remember && user_can( $user_id, \'editor\' ) ){
        $expiration = 604800;// yes, I know this is 1 minute
    }
    }
    return $expiration;
}
add_filter( \'auth_cookie_expiration\',\'wpse108399_change_cookie_logout\', 10, 3 );

/**
 * Bypass logout confirmation.
 */
function iconic_bypass_logout_confirmation() {
    global $wp;

    if ( isset( $wp->query_vars[\'customer-logout\'] ) ) {
            wp_redirect( str_replace( \'&\', \'&\', wp_logout_url( wc_get_page_permalink( \'myaccount\' ) ) ) );
        exit;
    }
}

add_action( \'template_redirect\', \'iconic_bypass_logout_confirmation\' );
这段代码的一部分是为了增加wordpress管理员或其他类型用户的过期时间

function wpse108399_change_cookie_logout( $expiration, $user_id, $remember ){
    if( $remember && user_can( $user_id, \'administrator\' ) ){
        $expiration = 604800;// yes, I know this is 1 minute
    }
    if( $remember && user_can( $user_id, \'editor\' ) ){
        $expiration = 604800;// yes, I know this is 1 minute
    }
    }
    return $expiration;
}
add_filter( \'auth_cookie_expiration\',\'wpse108399_change_cookie_logout\', 10, 3 );

结束

相关推荐

Hide a Menu Item on Login

我使用以下代码在客户未登录时隐藏菜单项,并在客户登录时显示它。.hide-item-not-login{ display: none !important; } .logged-in .hide-item-not-login{ display: block !important; } 我申请了这门课hide-item-not-login 我的菜单项,它的工作很好。我真正想要的恰恰相反。我希望该菜单项在用户登录时隐藏,在用户(woocommerce