You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

当DHL(flat_rate:7)可用时隐藏指定配送方式的需求及代码优化

解决WooCommerce中DHL可用时隐藏指定配送方式的问题

你可以通过以下优化后的代码,实现当flat_rate:7(DHL)可用时,同时隐藏flat_rate:8和flat_rate:9:

function filter_woocommerce_rates( $rates, $package ) { 
    // 检查DHL配送方式是否存在
    if ( isset( $rates['flat_rate:7'] ) ) {
        // 定义需要隐藏的配送方式ID数组
        $hidden_rates = array( 'flat_rate:8', 'flat_rate:9' );
        
        // 循环移除指定配送方式
        foreach ( $hidden_rates as $rate_id ) {
            if ( isset( $rates[$rate_id] ) ) {
                unset( $rates[$rate_id] );
            }
        }
    }   
    
    return $rates;
}
add_filter( 'woocommerce_rates', 'filter_woocommerce_rates', 10, 2 );

代码优化说明:

  • 简化判断逻辑:原代码遍历所有配送方式检测flat_rate:7,直接用isset()检查该配送方式是否存在,更高效
  • 批量处理隐藏:把需要隐藏的配送方式ID放到数组中,通过循环批量移除,后续如果需要添加更多要隐藏的方式,只需在数组中新增ID即可,扩展性更强
  • 严谨性提升:移除前先检查目标配送方式是否存在,避免因不存在的ID触发错误

内容的提问来源于stack exchange,提问作者Irakli Mosidze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 05:42:05