【发布时间】:2018-01-26 06:48:32
【问题描述】:
在 Woocommerce 中,我需要根据购物车小计设置运费,如下所示:
- 如果价格低于 20 欧元,运费为 5.90 欧元,
- 如果价格从 20 欧元开始且低于 30 欧元,则运费为 4.90 欧元
- 如果价格从 30 欧元开始,运费为 3,90 欧元。
我有非常基本的PHP知识,并且修改了我找到的一个代码sn-p。
这是我的代码:
add_filter('woocommerce_package_rates','bbloomer_woocommerce_tiered_shipping', 10, 2 );
function bbloomer_woocommerce_tiered_shipping( $rates, $package){
$threshold1 = 20;
$threshold2 = 30;
if ( WC()->cart->subtotal < $threshold1 ){
unset( $rates['flat_rate:5'] );
unset($rates['flat_rate:6']);
} elseif((WC()->cart->subtotal>$threshold1)and(WC()->cart->subtotal<$threshold2) ) {
unset( $rates['flat_rate:1'] );
unset( $rates['flat_rate:6'] );
} elseif((WC()->cart->subtotal > $threshold2) and (WC()->cart->subtotal > $threshold1) ) {
unset( $rates['flat_rate:1'] );
unset( $rates['flat_rate:5'] );
}
return $rates;
}
这似乎有效,但有时(我还没有弄清楚触发器!)它没有,所有三种运输方式都显示在购物车中。我想我注意到它只发生在用户登录时,但我对此不是 100% 确定的。
如果我的功能正确,是否需要更改或改进任何东西,谁能帮助我?
【问题讨论】:
-
我不知道你的问题有什么意义,顺便解决你的问题,你为什么要取消数组的值?
标签: php wordpress woocommerce cart shipping