WooCommerce添加到购物车重定向挂钩并传递了查询参数

时间:2020-10-25 10:24:52

标签: woocommerce hook-woocommerce

我正在尝试使用woocommerce_add_to_cart_redirect将用户重定向到产品页面,并添加自定义查询数据。

function my_custom_add_to_cart_redirect( $url ) {
  $currentProductUrl = "";
  $redirectUrl = esc_url( add_query_arg('cart', true, $currentProductUrl ));
  return $redirectUrl;
}

add_filter( 'woocommerce_add_to_cart_redirect', __NAMESPACE__ .'\\my_custom_add_to_cart_redirect' );

我如何获得$currentProductUrl

1 个答案:

答案 0 :(得分:2)

woocommerce_add_to_cart_redirect钩子中,仅在普通添加到购物车(而不是Ajax添加到购物车)上有一个附加参数,即WC_Product对象实例。

通过这种方式,您可以获取产品永久链接,并仅在将其添加到购物车时将其查询参数添加到其中。

add_filter( 'woocommerce_add_to_cart_redirect', 'my_custom_add_to_cart_redirect', 10, 2 );
function my_custom_add_to_cart_redirect( $url, $product ) {
    if ( $product && is_a( $product, 'WC_Product' ) ) {
        $url = esc_url( add_query_arg('cart', true, $product->get_permalink() ) );
    }
    return $url;
}

对于Ajax,将添加到购物车的参数为空(请参见here中的内容)