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

如何针对指定配送区域名称及配送方式ID更新配送成本?

WooCommerce配送区域成本更新方案

1. 更新特定配送区域的成本

要更新特定配送区域的成本,核心逻辑是定位目标区域后,遍历该区域下的所有配送方式,逐个修改成本设置并保存:

  • 遍历系统内所有配送区域,匹配目标区域名称
  • 循环该区域下的所有配送方式
  • 修改每个配送方式的成本参数,完成持久化保存

2. 针对指定配送区域名称及配送方式ID更新成本

针对你给出的场景(目标区域「Hrvatska」、配送方式「flat_rate」,成本更新为5),只需在匹配到目标对象后,修改其配置并保存即可。完整代码如下:

foreach (WC_Shipping_Zones::get_zones() as $shipping_zone) {
    if($shipping_zone['zone_name'] == 'Hrvatska') {
        foreach($shipping_zone['shipping_methods'] as $shipping_method) {
            if($shipping_method->id == 'flat_rate') {
                $new_cost = 5;
                // 获取当前配送方式的配置数组
                $settings = $shipping_method->get_settings();
                // 更新成本值
                $settings['cost'] = $new_cost;
                // 应用更新后的配置
                $shipping_method->update_settings($settings);
                // 将配置持久化到数据库
                $shipping_method->save();
            }
        }
    }
}

关键逻辑说明

  • get_settings():获取配送方式的当前配置集合,其中包含控制成本的cost字段
  • update_settings($settings):将修改后的配置同步到配送方式对象
  • save():把更新后的配置写入数据库,确保修改永久生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:16:04