dongzituo5530 2015-07-13 19:39
浏览 27
已采纳

WooCommerce检查购物车内容添加到购物车

I only have one product to display, but I offer two options for it: A payment plan (handled through a subscription plugin) and a single payment. I have them displayed on my site as a grouped and both options have an "Add to Cart" Button. I don't want either option to be in the cart at the same time as the other. What I would like to do is either,

A) Empty the cart before each time the add to cart is clicked.

or

B) Check if the cart contains a product already (via productid), and remove the payment plan if the full pay is selected, or vice versa. Here is something I've come up with for this option, but I'm a bit lost and it's not functioning quite right.

        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);
                 }
            }
        }

I'm thinking of adding this to the add_to_cart method before the try/catch to throw any errors. Can anyone help me figure a better solution?

  • 写回答

1条回答 默认 最新

  • douxing7101 2015-07-14 16:54
    关注

    Emptying the cart would be very easy

    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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?