在WooComerce文件中 class-wc-form-handler.php
我想在我的子主题中覆盖变量$redirect
。
在这种情况下,最佳做法是什么?
类-WC-形式处理程序
public function process_registration() {
if ( ! empty( $_POST['register'] ) ) {
...
// Redirect
if ( wp_get_referer() ) {
$redirect = esc_url( wp_get_referer() );
} else {
//$redirect = esc_url( get_permalink( wc_get_page_id( 'myaccount' ) ) );
$redirect = home_url() . $_SERVER["REQUEST_URI"];
}
wp_redirect( apply_filters( 'woocommerce_registration_redirect', $redirect ) );
exit;
}
答案 0 :(得分:5)
您不需要覆盖任何方法。正如您在wp_redirect
处可以看到的那样,有过滤器挂钩。详细了解apply_filters
。
您可以使用add_filter
将自己的自定义过滤器添加到代码woocommerce_registration_redirect
。
以下是如何做到的:
add_filter( 'woocommerce_registration_redirect', 'my_custom_redirect' );
function my_custom_redirect()
{
return esc_url( get_permalink( wc_get_page_id( 'myaccount' ) ) );
}
将上述代码放在您的子主题functions.php
文件中。