我试图根据购物车数量和库存数量来限制优惠券的使用 . 首先,我想检查库存是否小于购物车中的数量 . 如果是这样,我只想给库存中的数量打折,并从超出数量中删除优惠券,但允许延期交货的实际价格超过数量 .
举一个例子,让我们说 Item1
有2个库存并且允许延期交货 . 现在一个客户添加到他的购物车 Item1
数量3.现在当客户添加优惠券我想给他折扣仅数量为2并从一个删除优惠券 . 因为库存可用2但客户购买3.这可能吗?
我所指的原始代码是If WooCommerce Cart items are on backorder do not apply coupon
在这里,我试图修改它来解决我的问题 .
add_filter( 'woocommerce_coupon_is_valid', 'coupon_always_valid', 99, 2 );
function coupon_always_valid( $valid, $coupon ){
$valid = true;
foreach ( WC()->cart->get_cart() as $cart_item ) {
if($cart_item['data']->backorders_allowed()){ //check if backorders are allowed on this product
// get the stock quantity - returns the available amount number
$stock_info = $cart_item['data']->get_stock_quantity();
if( $stock_info < 1 ){
$valid = false;
break;
}
if($stock_info >= 1 && $cart_item['quantity'] >= $stock_info){
/*
$valid = false;
break;
*/
// check for quantity
}
}
}
return $valid ;
}
我无法弄清楚如何根据同一产品的数量添加优惠券 . 请帮忙 . 谢谢 .