簡體   English   中英

WooCommerce檢查購物車中的內容添加到購物車

[英]WooCommerce check cart contents on add to cart

我只有一種產品要顯示,但是我提供了兩種選擇:付款計划(通過訂閱插件處理)和單筆付款。 我將它們分組顯示在我的網站上,並且兩個選項都有一個“添加到購物車”按鈕。 我不希望任何一個選項與另一個選項同時出現在購物車中。 我想做的就是

A)每次單擊添加到購物車之前,清空購物車。

要么

B)檢查購物車是否已包含商品(通過productid),如果選擇了全額付款,則刪除付款計划,反之亦然。 這是我為該選項准備的,但是我有點迷茫,並且運行不正常。

        global $woocommerce;
        if ($product_id = 66){
            foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $cart_item ) {
                 echo $cart_item_key;
                 if($cart_item['product_id'] == '69'){
                    //remove single product
                    $woocommerce->cart->remove_cart_item($cart_item_key);
                 }
            }
        }
        elseif ($product_id = 69){
            foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $cart_item ) {
                 echo $cart_item_key;
                 if($cart_item['product_id'] == '66'){
                    //remove single product
                    $woocommerce->cart->remove_cart_item($cart_item_key);
                 }
            }
        }

我正在考慮在try / catch引發任何錯誤之前將其添加到add_to_cart方法中。 誰能幫我找到更好的解決方案?

清空購物車非常容易

add_filter( 'woocommerce_add_to_cart_validation', 'so_31392001_empty_cart', 10, 3 );

function so_31392001_empty_cart( $valid, $product_id, $quantity ) {

    WC()->cart->empty_cart();

    return $valid;
}

暫無
暫無

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

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