1

在 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;
}
4

1 回答 1

6

您不需要覆盖任何方法。正如你在网上看到wp_redirect的过滤钩。阅读更多关于apply_filters.

您可以使用 将您自己的自定义过滤器添加到标签woocommerce_registration_redirectadd_filter

下面是你如何做到这一点:

add_filter( 'woocommerce_registration_redirect', 'my_custom_redirect' );

function my_custom_redirect()
{
    return esc_url( get_permalink( wc_get_page_id( 'myaccount' ) ) );
}

将上述代码放在您的子主题functions.php文件中。

于 2014-05-14T20:20:56.377 回答