如何修改WooCommerce注册重定向代码实现返回来源页?
实现WooCommerce注册成功后跳转至来源页
你可以参照登录功能的实现逻辑,通过两步修改完成注册后返回来源页的需求:
1. 在注册表单中添加来源页隐藏字段
和登录表单的处理逻辑一致,先在注册表单末尾插入隐藏字段存储用户的来源页地址:
add_action( 'woocommerce_register_form_end', 'register_actual_referrer' ); function register_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' ) ) . '" />'; }
这段代码会在注册表单末尾添加名为redirect的隐藏字段,值为经过安全验证的用户来源页地址,若来源页无效则默认 fallback 到「我的账户」页面。
2. 修改注册重定向逻辑
替换原有跳转首页的代码,读取表单提交的redirect参数完成跳转:
add_filter( 'woocommerce_registration_redirect', 'customer_register_redirect_to_referrer' ); function customer_register_redirect_to_referrer( $redirect_url ) { // 检查并使用合法的redirect参数 if ( isset( $_POST['redirect'] ) ) { $redirect_url = wp_validate_redirect( $_POST['redirect'], wc_get_page_permalink( 'myaccount' ) ); } return $redirect_url; }
这段代码会优先采用表单提交的来源页地址(自动过滤不安全地址),无有效参数时默认跳转至「我的账户」页面。
注意事项
- 将两段代码添加到主题的
functions.php文件或自定义插件中即可生效 wp_validate_redirect函数会自动拦截恶意跳转地址,保障站点安全
内容的提问来源于stack exchange,提问作者php
相关产品推荐
相关产品推荐

