Woocommerce在增加折扣后计算运费

时间:2017-09-21 12:11:03

标签: php wordpress woocommerce cart shipping

您好我正在寻找在运费计算之前触发的操作。

我有以下功能,但这个功能在运费计算后运行。问题是,在这个网站上,如果您购买超过3个,5个或10个商品,您将获得折扣,并且运费是根据购物车总价格计算的。但是,如果我选择3件物品(因此它获得折扣),并且因为这个价格将低于运输方法的最低价格,但运输方法不会改变'。

    add_action('woocommerce_cart_calculate_fees' , 'add_custom_fees');
    function add_custom_fees( WC_Cart $cart ){
        if( $cart->cart_contents_count >= 3 && $cart->cart_contents_count <= 4 ){
            // Calculate the amount to reduce
            $discount = $cart->subtotal * 0.1;  
            $cart->add_fee( 'Text', -$discount);
            return;
        }

        if( $cart->cart_contents_count >= 5 && $cart->cart_contents_count < 10 ){
            // Calculate the amount to reduce
            $discount = $cart->subtotal * 0.15;
            $cart->add_fee( 'Text', -$discount);
            return;
        }

        if( $cart->cart_contents_count >= 10 ){
            // Calculate the amount to reduce
            $discount = $cart->subtotal * 0.2;
            $cart->add_fee( 'Text', -$discount);
            return;
        }
    }

正如您所看到的,我正在使用的当前行动是:woocommerce_cart_calculate_fees

感谢

1 个答案:

答案 0 :(得分:0)


您可以使用此挂钩&#34; woocommerce_calculate_totals&#34; ,因为它会在计算之前触发,以便您可以自行计算并相应地添加您的费用。