【问题标题】:How to update cost for a specific shipping zone?如何更新特定运输区域的成本?
【发布时间】:2023-01-12 21:46:33
【问题描述】:

如何更新特定区域名称和方法 ID 的运费?

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;
                // how to update cost?

            }
        }
    }
}

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    以这种方式更新特定运输区域统一费率运输方式的成本:

    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;
                    // Update the cost of the shipping method
                    $shipping_method->instance_settings['cost'] = $new_cost;
                    $shipping_method->update_instance_settings($shipping_method->instance_id, $shipping_method->instance_settings);
                }
            }
        }
    }
    

    您需要获取要更新的方法的 instance_id,然后使用 update_instance_settings() 方法更新成本,在您的情况下为 $shipping_method->instance_id 和 $shipping_method->instance_settings

    还需要注意的是,您应该在更新 instance_settings 属性后调用 update_instance_settings() 方法以将更改保存到数据库中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-28
      • 2017-02-14
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 2020-12-02
      • 1970-01-01
      相关资源
      最近更新 更多