购物车中每个NTH项目的自定义折扣

时间:2017-04-10 21:50:09

标签: php wordpress woocommerce cart discount

我从this question here来到这里,希望为我的WooCommerce网站找到解决方案。我正在寻找一种方法,只为购物车中的偶数项目在我的购物车中获得折扣。

例如:

如果购物车中只有1件商品:全价
购物车中的2件物品: - (减号) 2 $两者 购物车中的5件物品: - (减号) 2件4美元(如果购物车中有奇数件物品.1件物品总是有全价)

顺便说一下,我的所有产品价格相同。

有人能够帮助我解决这个问题吗,因为有人在我提到的问题链接上为这个人提供了帮助吗?

1 个答案:

答案 0 :(得分:2)

这是您的自定义函数,它附加在 woocommerce_cart_calculate_fees 操作挂钩中,可以满足您的期望:

add_action( 'woocommerce_cart_calculate_fees','cart_conditional_discount', 10, 1 );
function cart_conditional_discount( $cart_object ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    $cart_count = 0;

    foreach($cart_object->get_cart() as $cart_item){
        // Adds the quantity of each item to the count
        $cart_count += $cart_item["quantity"];
    }

    // For 0 or 1 item
    if( $cart_count < 2 ) {
        return;
    }
    // More than 1
    else {
        // Discount calculations
        $modulo = $cart_count % 2;
        $discount = (-$cart_count + $modulo);

        // Adding the fee
        $discount_text = __('Discount', 'woocommerce');
        $cart_object->add_fee( $discount_text, $discount, false );
    }
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码经过测试并有效。