簡體   English   中英

有沒有辦法讓 woocommerce_loop_add_to_cart_link 不更改網址地址但仍將產品添加到購物車?

[英]Is there a way I can make woocommerce_loop_add_to_cart_link not change url address but still add product to cart?

有沒有一種方法可以在不更改頁面 url 的情況下將產品添加/刪除到我的購物車?

我在我的自定義 Wordpress 主題上自定義了添加到購物車按鈕,但是當我將產品添加到購物車時,url 更改為 http://localhost/mytheme/?add-to-cart=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 ,當您將產品添加到購物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' );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM