当WooCommerce有运费时,如何隐藏免费运费



我正在努力计算格鲁吉亚国家不同城市的运费。

我发现了这个代码:

function ace_change_city_to_dropdown( $fields ) {
$cities = array( 
'Tbilisi',
'city2',
// etc …
);
$city_args = wp_parse_args( array(
'type' => 'select',
'options' => array_combine( $cities, $cities ),
), $fields['shipping']['shipping_city'] );
$fields['shipping']['shipping_city'] = $city_args;
$fields['billing']['billing_city'] = $city_args;
return $fields;
}
add_filter( 'woocommerce_checkout_fields', 'ace_change_city_to_dropdown' );

我找到了wooccommerce城市费率航运,在那里我可以用我想要的城市更改城市名称。它运行良好。

但当有运费(例如5美元(时,我想隐藏免费运费复选框

当WooCommerce有运费时,如何隐藏免费运费?

尝试以下操作,如果有任何有成本的运输方法可用,将隐藏免费运输:

add_filter( 'woocommerce_package_rates', 'hide_free_shipping_for_available_rate_costs', 100, 2 );
function hide_free_shipping_for_available_rate_costs( $rates, $package ) {
$has_cost = false;

foreach ( $rates as $rate_key => $rate ) {
if( $rate-cost > 0 ) {
$has_cost = true;
} 
if ( 'free_shipping' === $rate->method_id ) {
$free_rate_key = $rate_key;
}
}

if ( $has_cost && isset($free_rate_key) ){
unset($rates[$free_rate_key]);
}
return $rates;
}

代码位于活动子主题(或活动主题(的functions.php文件中。测试并工作。

刷新运输缓存:

  1. 此代码已保存在function.php文件中
  2. 在运输区域设置中,禁用/保存任何运输方法,然后启用返回/保存

    您已完成,可以进行测试。

相关:WooCommerce-在提供免费送货时隐藏其他送货方式

最新更新