woocommerce add fee to cart based on quantity

2020-02-13 03:37发布

I wan to add fee based on quantity. For eg: If quantity in cart = 5 , then the fee to be added should be 4$, If quantity in cart = 7, then the fee to be added should be 8$

I have tried this code to get quantity.

add_action('woocommerce_before_calculate_totals', 'woocommerce_custom_surcharge');

function woocommerce_custom_surcharge() {
    global $woocommerce;
$amount =  $woocommerce->cart->get_cart_item_quantities();
if($amount==5)
{
    $excost = 7;
    }
    else if($amount==7){
    $excost = 8;
    }
    $woocommerce->cart->add_fee('Charges delivery', $excost, $taxable = false, $tax_class = '');
}

Please help with the same.

1条回答
Rolldiameter
2楼-- · 2020-02-13 04:24

Please Try this

function woocommerce_custom_surcharge(){ 
global $woocommerce;
//Getting Cart Contents. 
$cart = $woocommerce->cart->get_cart();
//Calculating Quantity
foreach($cart as $cart_val => $cid){
        $qty += $cid['quantity']; 
    }
//Your Condition
if($qty==5)
{
    $excost = 7;
    }
    else if($qty==7){
    $excost = 8;
    }

    $woocommerce->cart->add_fee('Charges delivery', $excost, $taxable = false, $tax_class = '');


}

From Here I found that We need to get the quantity of the cart by summing up the values of the cart.Hope this will Solve your problem.

查看更多
登录 后发表回答