wc_logout_url没有确认并重定向到Wordpress WooCommerce中的当前页面

时间:2018-05-29 18:32:42

标签: wordpress redirect woocommerce logout

我想将正在注销的用户重定向到同一页面。

例如:用户在类别页面上并且正在注销。注销后,我希望用户仍然在该特定类别页面(或用户所在的任何页面)上。现在它会将用户重定向到主页。

这是我使用的代码:

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( 'home' ) ) ) );
        exit;
        }
    }
    add_action( 'template_redirect', 'iconic_bypass_logout_confirmation' );

我尝试使用下面的代码更改第5行但没有结果。

wp_redirect( str_replace( '&', '&', wp_logout_url( get_permalink() ) ) );

1 个答案:

答案 0 :(得分:0)

根据wp_logout_url()上的docs,您可以指定重定向网址。在这种情况下,您应该更新Logout链接本身。因此,如果您在header.php文件中有一个注销链接作为示例,则可以更新wp_logout_url()引用以包含当前页面URL。因此,只要用户点击退出链接,它也会将当前页面作为重定向链接。

您只需要当前页面网址。引用this post您可以看到获取当前页面网址的一种方法。这与wp_logout_url()函数结合使用,您的HTML可能看起来像这样,

<?php global $wp; ?>
<a href="<?php echo wp_logout_url( home_url( $wp->request ) ) ?>">Logout</a>

现在,用户将始终从上一页重定向。如果您无法控制Logout链接本身,您唯一的选择是通过AJAX处理注销,或通过查询变量,会话,cookie等跟踪前一个URL。