在Woocommerce中我有以下情况:100美元之前有送货方式,100美元之后只有一个(free shipping)
可用。因此,当客户购买product 102$
然后apply the (10%) promo code
时,价格将为91,80美元。由于我在100美元后取消了运费方式并且免费送货显示为after 100$ only
,因此客户显示:“没有shipping methods
可用...”
add_filter( 'woocommerce_package_rates', 'woocommerce_hide_shipping', 10, 2 );
function woocommerce_hide_shipping( $rates, $package ) {
$threshold = 100;
if ( WC()->cart->subtotal >= $threshold ) {
unset( $rates['flat_rate:45'] );
unset( $rates['flat_rate:75'] );
}
if ( WC()->cart->subtotal >= $threshold && !empty(WC()->cart->applied_coupons) ) {
//code here
}
return $rates;
}
如果促销代码和优惠券之前的price was >100$
可以显示免费送货吗?我设置免费送货以显示最低订单amount (100$)
,但有一种方法可以显示,初始化?其他方法也受到欢迎。
答案 0 :(得分:1)
问题是......你申请的免费送货是以最小订单为界,这是指订单总额(非小计)..... 小计为您提供无折扣的价值。
所以,
从管理员设置中删除条件(最小订单总数) - 免费送货....现在它适用于每个订单...
然后修改你的代码---
add_filter( 'woocommerce_package_rates', 'woocommerce_hide_shipping', 10, 2 );
function woocommerce_hide_shipping( $rates, $package ) {
$threshold = 100;
if ( WC()->cart->subtotal >= $threshold ) {
unset( $rates['flat_rate:45'] );
unset( $rates['flat_rate:75'] );
}
if ( WC()->cart->subtotal < $threshold ) {
//code here
unset( $rates['free_shipping:45'] );
unset( $rates['free_shipping:75'] );
}
return $rates;
}