对于蛋糕店中的产品,可以在同一订单中订购不同订单日期(订单属性)的蛋糕。
只有在第二天订购蛋糕时才应考虑库存。对于未来的订单,该股票无关紧要。
所以我想修改get_cart_item_quantities()
中的商品数量只为第二天订购的蛋糕分组。
到目前为止,我设法编写了一个扩展原始购物车的插件overriding get_cart_item_quantities()
和add_to_cart()
。
但是随着最近的更新,由于新的类层次结构,插件不再有效。
所以我正在寻找一种标准过滤器和操作的解决方案,这种解决方案更具有更新性。
有人可以帮忙吗?
以下是有关我想要实现的内容的更多信息:
蛋糕可以整块蛋糕(12或16件) - 这是主要产品 - 或作为四分之一蛋糕(3或4件)的变体。 店主希望管理整个蛋糕的件数,而不是变化。
此外,蛋糕可以订购,以便在第二天发货或在将来的某个时间。
只有在第二天订购蛋糕时,才能检查库存。
假设库存中有12块蛋糕。
一位顾客明天购买一整块蛋糕(本例中为12件),下周某个时候购买四分之一。
将此商品添加到购物车时,购物车应包含:
我在woocommerce_add_cart_item_data
。
在内部,WC_Product::has_enough_stock()
应该只检查明天订购的商品和实际件数,在这种情况下,明天的整个蛋糕为12(即使购物车中的金额为1)
到目前为止,我通过覆盖WC_Cart::get_cart_item_quantities()
并添加自定义过滤器来实现件数。
通过覆盖WC_Cart::add_to_cart()
来修改has_enough_stock()
。
在结帐时,我会通过过滤woocommerce_order_item_quantity
将库存量减少正确的件数。
但是,当然,使用插件解决方案,我需要几乎每次更新WooCommerce来更新插件。
我目前看到的可能性:
由于WC_Product::has_enough_stock()
本身没有应用任何过滤器,我可以过滤woocommerce_product_variation_get_stock_quantity
并在交货日期相关时返回实际数量,并在所有其他情况下返回假数字9999。
像这样,库存管理应该在添加到购物车,购物车和结账时(相关时)工作。
您怎么看?