注册成功后将用户引导至他来自的页面
P粉107991030
P粉107991030 2023-09-07 12:38:06
0
1
501

我使用以下代码将用户重定向到成功登录后来自的页面。此代码已经过测试并且可以正常工作:

add_action( 'woocommerce_login_form_end', 'actual_referrer' );
 
function actual_referrer() {
   if ( ! wc_get_raw_referer() ) return;
   echo '<input type="hidden" name="redirect" value="' . wp_validate_redirect( wc_get_raw_referer(), wc_get_page_permalink( 'myaccount' ) ) . '" />';
}

现在,当用户从注册页面进入my-account进行注册时,注册成功后,我想返回到他原来的页面,如上面的代码。

为此,我找到了一个代码,可以在注册成功后将用户重定向到主页:

add_filter( 'woocommerce_registration_redirect', 'customer_register_redirect' );
 
function customer_register_redirect( $redirect_url ) {
   $redirect_url = get_home_url();  
   return $redirect_url;
}

有没有办法像登录代码一样编辑此代码,以将用户重定向到他们来自的页面?

P粉107991030
P粉107991030

全部回复(1)
P粉476475551

您可以使用wp_registration_url( urlencode( get_permalink() ) );,注册成功后将重定向到上一页。

在您的情况下,由于它是 woocommerce,指向您页面的链接应该是:

<a href="<?php echo wc_get_page_permalink( 'myaccount' ) . '?redirect_to=' . urlencode( get_permalink() ); ?>">Register</a>

其中 wp_registration_url 是注册页面的 URL,并添加 ?redirect_to 参数(包括当前页面)。

根据您的情况,您可以将过滤器中的代码更改为:

add_filter( 'woocommerce_registration_redirect', 'customer_register_redirect' );
function customer_register_redirect() {
    $redirect_url = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : home_url();
    return $redirect_url;
}

如果没有设置redirect_to,我们将重定向到主页或您喜欢的其他页面。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板