Wordpress Woocommerce针对特定简单产品的绝对折扣

Wordpress Woocommerce针对特定简单产品的绝对折扣,wordpress,woocommerce,cart,price,Wordpress,Woocommerce,Cart,Price,首先,我的Woocommerce商店里有几种简单的产品。 如果一个客户购买一个产品的两件,价格不应该翻倍。取而代之的是,产品A每件售价为40美元,如果客户想要第二件,则价格应为20美元——因此总共为60美元。例如,产品B-1的单位成本为25,2个单位的总成本应为40 我曾尝试向购物车总数中添加一个绝对值,但即使这样也不起作用(在stackoverflow上找到此代码) 非常感谢你的帮助。谢谢您可以在计算总数之前使用woocommerce\uhook 函数添加折扣价格绝对($cart\u对象){

首先,我的Woocommerce商店里有几种简单的产品。 如果一个客户购买一个产品的两件,价格不应该翻倍。取而代之的是,产品A每件售价为40美元,如果客户想要第二件,则价格应为20美元——因此总共为60美元。例如,产品B-1的单位成本为25,2个单位的总成本应为40

我曾尝试向购物车总数中添加一个绝对值,但即使这样也不起作用(在stackoverflow上找到此代码)


非常感谢你的帮助。谢谢

您可以在计算总数之前使用
woocommerce\u
hook

函数添加折扣价格绝对($cart\u对象){
$new_价格=20;
foreach($cart\u object->cart\u内容为$key=>$cart\u item){
$product=wc_get_product($cart_item['product_id']);
$productcount=$cart_物料['QUOTE'];
//回显“”,打印($cart\u item,1),“”;
如果($productcount>1){//来自第二个产品
$cart_item['data']->设置价格($new_price);
}
}
}
添加操作(“计算总计前的商业”、“添加折扣”、“绝对价格”,10,1);

你好,乔纳森,谢谢你的回复。它几乎起作用了。但是,我将if块中的代码更改为:if($pdtcnt>1){//来自第二个产品//$oldprice=$product->get_price();//原始产品价格//$newprice=$oldprice+5;//折扣价格$newprice=$custom_折扣_绝对值;$cart_项目['data']->设置_价格($newprice);}然而,如果我的购物车里有一个25美元的产品,再加上另一个,我总共得到30美元。如果我加上第三个或第四个产品,它会正确计算,并将总金额加15。BRI稍微调整了我的代码。如果你想这样做,你将不得不调整小计,但为什么要让自己这么难呢?为什么不申请1件25和2件20等等?嗨,好的,谢谢。你能给我看一些能让这个工作的代码吗?
  function add_discount_price_absolute( $cart_object ) {
    global $woocommerce;
    $custom_discount_absolute = 15; // custom discount percent
    $pdtcnt=0;

    foreach ($woocommerce->cart->get_cart() as $cart_item_key => $cart_item) {
        $pdtcnt++;
        if($pdtcnt>1) { // from second product
            $oldprice = $cart_item['data']->price; //original product price
            $newprice = $oldprice + $custom_discount_absolute; //discounted price
            $cart_item['data']->set_price($newprice);
        }        
    }
}

add_action( 'woocommerce_before_calculate_totals', 'add_discount_price_absolute' );