Woocommerce 当商业中存在运输成本时,如何隐藏免费运输

Woocommerce 当商业中存在运输成本时,如何隐藏免费运输,woocommerce,Woocommerce,我正在努力使运输成本与格鲁吉亚国家的不同城市 我发现这个代码: function ace_change_city_to_dropdown( $fields ) { $cities = array( 'Tbilisi', 'city2', // etc … ); $city_args = wp_parse_args( array( 'type' => 'select', 'option

我正在努力使运输成本与格鲁吉亚国家的不同城市

我发现这个代码:

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' );
我找到了可以用我想要的城市更改城市名称的地方。很好用

但是如果有运费(例如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文件。测试和工作

刷新发货缓存:

  • 此代码已保存在function.php文件中
  • 在配送区域设置中,禁用/保存任何配送方法,然后启用“返回/保存”

    您已经完成了,您可以进行测试
  • 相关的: