在Woocommerce中,我需要根据购物车小计设置运费如下:
我有非常基本的PHP知识,并修改了我找到的代码片段。
这是我的代码:
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%肯定。
如果我的功能是正确的,如果我需要更改或改进任何内容,有人可以帮助我吗?
答案 0 :(得分:1)
我稍微重新审视了你的代码。您应该尝试以下方法:
printGrades(gradeA, 'A');
printGrades(gradeB, 'B');
printGrades(gradeC, 'C');
printGrades(gradeD, 'D');
printGrades(gradeF, 'F');
代码进入活动子主题(或活动主题)的function.php文件。
它应该按预期运行。
使其与#34;免费送货&#34;方法,您必须停用&#34;免费送货需要...&#34; 选项(设置为&#34; N / A& #34; 强>)
有时您需要刷新送货缓存:
保存此代码并清空购物车后,请转到您的送货设置。在您的送货区域中,禁用保存并重新启用保存送货方式。