您好我正在寻找在运费计算之前触发的操作。
我有以下功能,但这个功能在运费计算后运行。问题是,在这个网站上,如果您购买超过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
感谢
答案 0 :(得分:0)
您可以使用此挂钩&#34; woocommerce_calculate_totals&#34; ,因为它会在计算之前触发,以便您可以自行计算并相应地添加您的费用。