我想将正在注销的用户重定向到同一页面。
例如:用户在类别页面上并且正在注销。注销后,我希望用户仍然在该特定类别页面(或用户所在的任何页面)上。现在它会将用户重定向到主页。
这是我使用的代码:
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() ) ) );
答案 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。