我正试图通过佐治亚州的不同地点来收取运输费用。
我找到了以下代码:
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' );
我发现woocommerce city rate shipping可以在其中用所需的城市更改城市名称。一切正常。
但是当有运输费用(例如5美元)时我要隐藏免费运输复选框。
在WooCommerce中出现运费时,如何隐藏免费送货?
答案 0 :(得分:1)
请尝试以下操作,如果有可用的付费送货方式,则将隐藏免费送货:
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文件中。经过测试,可以正常工作。
刷新发货缓存:
- 此代码已保存在您的function.php文件中。
- 在运输区域设置中,禁用/保存任何运输方式,然后启用回退/保存。
您已完成,您可以对其进行测试。
相关:WooCommerce - Hide other shipping methods when FREE SHIPPING is available