WooCommerce注销终端无法正常工作

时间:2018-02-22 20:59:18

标签: php wordpress woocommerce

我一直试图将此解决约3个小时,我完全失去了。

我无法退出我的WordPress网站。我创建了一个新的测试客户,禁用所有插件接受WooCommerce,激活基本的Twenty-F​​ifteen主题,在WooCommerce中设置默认的“customer-logout”端点,但点击我的帐户页面中的注销按钮只是让我循环回来到我的帐户页面,用户仍然登录。

手动添加wp_logout();到页面会将用户注销,因此端点似乎没有触发wp_logout();.

任何人都有类似的问题,或者可以指出我正确的方向?

3 个答案:

答案 0 :(得分:0)

我在wordpress functions.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 );

答案 1 :(得分:0)

如果您无法注销 然后尝试此链接 http://yousite.com/?customer-logout=true

答案 2 :(得分:0)

就我而言,问题在于单击注销链接会将客户端带到前端客户端仪表板,在那里通知区域中的确认消息将等待客户端单击它。

我最终使用 here 中的代码绕过了此确认:

{{1}}