购物车中仅允许1数量的特定产品WooCommerce

时间:2019-10-05 12:48:31

标签: php wordpress woocommerce cart

我有一个变量产品X,该产品具有两个变体,变体A和变体B。

如果客户在购物车中添加了变体A,那么我想阻止客户在购物车中添加变体B。一次,客户只订购该产品的变体之一。

我已经添加了以下代码,但效果不佳,因为如果我在购物车中添加了商品X的一种变体,那么我试图在购物车中添加另一种商品Y,则不会添加到购物车中。

我的代码当前代码如下。

function wph_add_the_cart_validation_for_zoomarine_e_ticket( $passed ) { 
    // The product id of variable product X     
    $product_id = 44050;
    $in_cart = false;

    foreach( WC()->cart->get_cart() as $cart_item ) {
        $product_in_cart = $cart_item['product_id'];
       if ( $product_in_cart === $product_id ) $in_cart = true;
    }

   if ( $in_cart )  { ?>
       <script type="text/javascript">
           alert("The product is already in cart. You can only add one E ticket per order");
        </script>
   <?php
       $passed = false;
   }
   return $passed;
}

add_filter( 'woocommerce_add_to_cart_validation', 'wph_add_the_cart_validation_for_zoomarine_e_ticket', 10, 5 );

1 个答案:

答案 0 :(得分:0)

以下代码解决了我的问题。我从这里https://wordpress.stackexchange.com/questions/349916/allow-only-1-quantity-of-particular-product-in-cart-woocommerce/349929#349929得到了答案

#include <iostream>
using namespace std;
int main()
{
    int i, j, s[4][4] = { 0 };
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4; j++)
        {
            cout << s[i][j] << " ";
        }
        cout << endl;
    }
}