根据此相关答案,如果购物车内容总数为零,您可以使用以下内容隐藏“本地取货”运输选项:
add_filter( 'woocommerce_package_rates', 'hide_local_pickup_for_free_orders', 10, 2 );
function hide_local_pickup_for_free_orders( $rates, $package ) {
// If cart subtotal is equal to zero
if( $package['contents_cost'] == 0 ) {
foreach( $rates as $rate_key => $rate ) {
// Hide Local Pickup shipping method(s)
if ( $rate->method_id === 'local_pickup' ) {
unset($rates[$rate_key]);
}
}
}
return $rates;
}
代码位于子主题(或任何插件)的functions.php 文件中。已测试并有效。
重要提示:要刷新运送方式缓存,请清空您的购物车。