wc_logout_url 未经确认并重定向到 Wordpress WooCommerce 中的当前页面
wc_logout_url without confirmation AND redirect to current page in Wordpress WooCommerce
我想将正在注销的用户重定向到同一页面。
例如:用户在类别页面上,正在注销。注销后,我希望用户仍在该特定类别页面(或用户所在的任何页面)。现在它将把用户重定向到主页。
这是我正在使用的代码:
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() ) ) );
根据 wp_logout_url()
上的 docs,您可以指定重定向 url。在这种情况下,您应该更新 Logout link 本身。因此,如果您在 header.php 文件中有注销 link 作为示例,您可以更新 wp_logout_url()
引用以包含当前页面 url。因此,无论何时用户单击注销 link,它也会将当前页面作为重定向 link。
您只需要当前页面 url。参考 this post,您可以看到一种获取当前页面的方法 url。这与 wp_logout_url()
功能相结合,您的 HTML 可能看起来像这样,
<?php global $wp; ?>
<a href="<?php echo wp_logout_url( home_url( $wp->request ) ) ?>">Logout</a>
现在,用户将始终从上一页重定向。如果您无法控制注销 link 本身,您唯一的选择是通过 AJAX 处理注销,或者通过查询变量、会话、自己跟踪之前的 url,饼干等
您可以试试这个并设置您自己的重定向 url
<?php
//wordpress logout
add_action('check_admin_referer', 'logout_without_confirm', 10, 2);
function logout_without_confirm($action, $result)
{
/**
* Allow logout without confirmation
*/
if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
$redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] :
"https://example.com";
$location = str_replace('&', '&', wp_logout_url($redirect_to));
header("Location: $location");
die;
}
}
我想将正在注销的用户重定向到同一页面。
例如:用户在类别页面上,正在注销。注销后,我希望用户仍在该特定类别页面(或用户所在的任何页面)。现在它将把用户重定向到主页。
这是我正在使用的代码:
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() ) ) );
根据 wp_logout_url()
上的 docs,您可以指定重定向 url。在这种情况下,您应该更新 Logout link 本身。因此,如果您在 header.php 文件中有注销 link 作为示例,您可以更新 wp_logout_url()
引用以包含当前页面 url。因此,无论何时用户单击注销 link,它也会将当前页面作为重定向 link。
您只需要当前页面 url。参考 this post,您可以看到一种获取当前页面的方法 url。这与 wp_logout_url()
功能相结合,您的 HTML 可能看起来像这样,
<?php global $wp; ?>
<a href="<?php echo wp_logout_url( home_url( $wp->request ) ) ?>">Logout</a>
现在,用户将始终从上一页重定向。如果您无法控制注销 link 本身,您唯一的选择是通过 AJAX 处理注销,或者通过查询变量、会话、自己跟踪之前的 url,饼干等
您可以试试这个并设置您自己的重定向 url
<?php
//wordpress logout
add_action('check_admin_referer', 'logout_without_confirm', 10, 2);
function logout_without_confirm($action, $result)
{
/**
* Allow logout without confirmation
*/
if ($action == "log-out" && !isset($_GET['_wpnonce'])) {
$redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] :
"https://example.com";
$location = str_replace('&', '&', wp_logout_url($redirect_to));
header("Location: $location");
die;
}
}