1 回答
TA贡献1847条经验 获得超11个赞
请尝试以下操作(在开头的代码中设置您的 5 种运输方式费率 ID)。另外,对于“免费送货”费率,请将“最低订单金额”设置为(零)。0
add_filter( 'woocommerce_package_rates', 'hide_specific_shipping_method', 10, 2 );
function hide_specific_shipping_method( $rates, $package ) {
// Settings: define you shipping rate IDs below
$rate_id_1 = 'flat_rate:7';
$rate_id_2 = 'flat_rate:11';
$rate_id_3 = 'flat_rate:12';
$rate_id_4 = 'flat_rate:15';
$rate_free = 'free_shipping:5';
$cart_subtotal = WC()->cart->get_subtotal();
if ( $cart_subtotal < 25 ) {
// Enable only methods 1 et 2
if ( isset($rates[$rate_id_3]) )
unset( $rates[$rate_id_3] );
if ( isset($rates[$rate_id_4]) )
unset( $rates[$rate_id_4] );
if ( isset($rates[$rate_free]) )
unset( $rates[$rate_free] );
}
elseif ( $cart_subtotal >= 25 && $cart_subtotal < 50 ) {
// Enable only methods 3 et 4
if ( isset($rates[$rate_id_1]) )
unset( $rates[$rate_id_1] );
if ( isset($rates[$rate_id_2]) )
unset( $rates[$rate_id_2] );
if ( isset($rates[$rate_free]) )
unset( $rates[$rate_free] );
}
else {
// Enable only Free shipping
if ( isset($rates[$rate_id_1]) )
unset( $rates[$rate_id_1] );
if ( isset($rates[$rate_id_2]) )
unset( $rates[$rate_id_2] );
if ( isset($rates[$rate_id_3]) )
unset( $rates[$rate_id_3] );
if ( isset($rates[$rate_id_4]) )
unset( $rates[$rate_id_4] );
}
return $rates;
}
代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并有效。
重要提示:刷新运输缓存:
1)。此代码已保存在您的 function.php 文件中。
2)。在运输区域设置中,禁用/保存任何运输方式,然后启用返回/保存。
你已经完成了,你可以测试它。
- 1 回答
- 0 关注
- 141 浏览
添加回答
举报