有没有一种方法可以让woococommerce_loop_add_to_cart_link不更改url地址,但仍然将产品



有没有一种方法可以在不更改页面url的情况下将产品添加/删除到我的购物车中?

我在我的自定义Wordpress主题上有自定义的添加到购物车按钮,但当我添加产品到购物车时,url更改为http://localhost/mytheme/?add-到购物车=15。有没有一种方法可以避免它,并且仍然将产品添加到购物车中?

<?php global $product;
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" class="addtocart_nupp">Add product</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( $product->get_id() ),
esc_attr( $product->get_sku() ),
$product->is_purchasable() ? 'add_to_cart_button' : '',
esc_attr( $product->get_type() ),
esc_html( $product->add_to_cart_text() )
),
$product ); ?>
WooCommerce有一个钩子woocommerce_add_to_cart_redirect,当您将产品添加到购物车时会调用它。

有两个参数,$url$product被添加到您的购物车中。

add_filter( 'woocommerce_add_to_cart_redirect', 'bks_add_to_cart_redirect', 10, 2 );
function bks_add_to_cart_redirect( $url, $product ) {
if ( $product && is_a( $product, 'WC_Product' ) ) {
// Do any change or URL you want to $url.
}
return $url;
}

如果需要,您可以更改逻辑并通过更改内部$url将其重定向回产品页面。

$url = esc_url($product->get_permalink());

你可以添加参数。

$url = esc_url( add_query_arg('name', 'value', $product->get_permalink() ) );

--或--

只需将其重定向到自定义页面即可。

$url = esc_url( home_url() . '/custom_page' );

相关内容

  • 没有找到相关文章

最新更新