Php 对于最便宜的产品,每3种产品增加50%的折扣(WooCommerce)

Php 对于最便宜的产品,每3种产品增加50%的折扣(WooCommerce),php,wordpress,woocommerce,hook-woocommerce,discount,Php,Wordpress,Woocommerce,Hook Woocommerce,Discount,我正在为每3种产品添加折扣规则:3,6,9,12,15。。在购物车上,只有最便宜的产品才可以享受50%的折扣 因此,如果你有9个,只有最便宜的3个可以打五折 此代码将折扣应用于所有产品,因此它应仅适用于每3种产品 add_action('woocommerce_cart_计算_费用','ts_add_定制_折扣',10,1); 功能添加自定义折扣($wc\U购物车){ $折扣=0; $product_ids=array(); $item_prices=array(); $in_cart=fals

我正在为每3种产品添加折扣规则:3,6,9,12,15。。在购物车上,只有最便宜的产品才可以享受50%的折扣

因此,如果你有9个,只有最便宜的3个可以打五折

此代码将折扣应用于所有产品,因此它应仅适用于每3种产品

add_action('woocommerce_cart_计算_费用','ts_add_定制_折扣',10,1);
功能添加自定义折扣($wc\U购物车){
$折扣=0;
$product_ids=array();
$item_prices=array();
$in_cart=false;
foreach($wc\u cart->get\u cart()作为$cart\u item\u key=>$cart\u item){
$cart_product=$cart_item['data'];
如果(具有_术语('get2','product_cat',$cart_product->get_id()){//get2所选类别
$in_cart=true;
}否则{
$in_cart=true;
$product_id[]=$cart_product->get_id();
$item_prices[$cart_product->get_id()]=$cart_product->get_prices();
}
}
如果($in_cart){
$count\u id=计数($product\u id);
asort($item_prices);//将价格从最低到最高排序
$cartQuantity=WC()->cart->cart\u contents\u count;
$count=0;
如果($count_id>3 | |$cartQuantity>=3){
foreach($id=>$price的商品价格){
如果($count>=1){
打破
}
//$product=wc\U get\U product($id);
//$price=$product->get_price();
美元折扣-=(美元价格*50)/100;
$count++;
}
}
} 
如果($折扣!=0){
$wc_cart->添加费用('Discount',$Discount,true);
}
}


我附上了一个,你可以看到每3种最便宜的产品都有一个红色的轮廓。

此代码将对最便宜的产品每3种产品提供50%的折扣

功能自定义费用($cart){
if(定义了('DOING'uajax'))
返回;
//购物车中的产品
$products\u in_cart=count($cart->get_cart());
//每一天都有这么多的产品
$every=3;
//当购物车中的产品大于或等于每这么多个产品
如果($products\U in\U cart>=$every){
//集合数组
$product_prices=array();
//循环浏览购物车项目
foreach($cart->get\u cart()作为$cart\u项目){
//产品
$product=$cart_项目['data'];
//获得价格
$product_price=$product->get_price();
//推
$product\U prices[]=$product\U prices;
}
//排序:从低到高
asort(产品价格);
//产品的数量得到折扣
$products\u receive\u折扣=地板($products\u in\u cart/$every);
//设置变量
$total=0;
//环槽
foreach(数组\u切片($product\u价格,0,$products\u接收\u折扣)作为$product\u价格){
//算计
$total+=$product\u价格;
}
//计算折扣
美元折扣=($total*50)/100;
//加费
$cart->add_fee(‘折扣’,$折扣,true);
}
}
添加行动('woocommerce\u cart\u calculate\u fees','custom\u fee',10,1);

此代码将对最便宜的产品每3种产品提供50%的折扣

功能自定义费用($cart){
if(定义了('DOING'uajax'))
返回;
//购物车中的产品
$products\u in_cart=count($cart->get_cart());
//每一天都有这么多的产品
$every=3;
//当购物车中的产品大于或等于每这么多个产品
如果($products\U in\U cart>=$every){
//集合数组
$product_prices=array();
//循环浏览购物车项目
foreach($cart->get\u cart()作为$cart\u项目){
//产品
$product=$cart_项目['data'];
//获得价格
$product_price=$product->get_price();
//推
$product\U prices[]=$product\U prices;
}
//排序:从低到高
asort(产品价格);
//产品的数量得到折扣
$products\u receive\u折扣=地板($products\u in\u cart/$every);
//设置变量
$total=0;
//环槽
foreach(数组\u切片($product\u价格,0,$products\u接收\u折扣)作为$product\u价格){
//算计
$total+=$product\u价格;
}
//计算折扣
美元折扣=($total*50)/100;
//加费
$cart->add_fee(‘折扣’,$折扣,true);
}
}
添加行动('woocommerce\u cart\u calculate\u fees','custom\u fee',10,1);