当“免费配送”配送方式可用时,以下代码将禁用除“本地提货”以外的其他配送方式。
Required: 免费送货方式需要设置为最小订单金额。
add_filter( \'woocommerce_package_rates\', \'show_hide_shipping_methods\', 100 );
function show_hide_shipping_methods( $rates ) {
$free_rate_id = \'\';
$other_rates_ids = [];
// Loop through available shipping rates
foreach ( $rates as $rate_id => $rate ) {
if ( \'free_shipping\' === $rate->method_id ) {
$free_rate_id = $rate_id; // grab "Free shipping" rate ID
}
// Get all other rates Ids (excluding "Free shipping" and "Local pickup" methods)
if ( ! in_array( $rate->method_id, [\'free_shipping\', \'local_pickup\'] ) ) {
$other_rates_ids[] = $rate_id;
}
}
// Disable All other rates Ids when "Free shipping" is available (excl. "Local pickup")
if ( ! empty($free_rate_id) && isset($rates[$free_rate_id]) && sizeof($other_rates_ids) > 0 ) {
foreach ( $other_rates_ids as $rate_id ) {
unset($rates[$rate_id]);
}
}
return $rates;
}
代码进入函数。活动子主题(或活动主题)的php文件。测试和工作。
Refresh the shipping caches: (必需)
此代码已保存在活动主题的函数中。php文件
购物车是空的,在配送区设置中,禁用/保存任何配送方式,然后启用后退/保存