我正在尝试将 woocommerce 配置为在注册后返回上一页
我用它来“登录重定向”并且它有效。但不在注册中:
function start_session() {
if(!session_id()) {
session_start();
}
}
add_action('init', 'start_session', 1);
function redirect_url() {
if (! is_user_logged_in()) {
$_SESSION['referer_url'] = wp_get_referer();
} else {
session_destroy();
}
}
add_action( 'template_redirect', 'redirect_url' );
function login_redirect() {
if (isset($_SESSION['referer_url'])) {
wp_redirect($_SESSION['referer_url']);
} else {
wp_redirect(home_url());
}
}
add_filter('woocommerce_login_redirect', 'login_redirect', 1100, 2);
任何人都可以让这个代码也用于注册吗?
问候!
您可以使用
woocommerce_registration_redirect
过滤器。此过滤器允许您在用户注册后修改重定向 URL。所以你的代码将被修改为这样的
function start_session() {
if(!session_id()) {
session_start();
}
}
add_action('init', 'start_session', 1);
function redirect_url() {
if (! is_user_logged_in() && ! is_admin()) {
$_SESSION['referer_url'] = wp_get_referer();
} else {
session_destroy();
}
}
add_action( 'template_redirect', 'redirect_url' );
function login_redirect() {
if (isset($_SESSION['referer_url'])) {
$redirect_url = $_SESSION['referer_url'];
} else {
$redirect_url = home_url();
}
return $redirect_url;
}
add_filter('woocommerce_login_redirect', 'login_redirect', 1100, 2);
add_filter('woocommerce_registration_redirect', 'login_redirect', 1100, 2);