问题描述
我使用 wordpress 插件来通过 API 管理 woocommerce。我尝试设置运费。 我可以添加区域并使用以下代码指定运输方式:
$new_zone_shipping = new WC_Shipping_Zone();
$new_zone_shipping -> set_zone_name("Giza");
$new_zone_shipping -> add_location('EG:EGGZ','state');
$new_zone_shipping -> add_shipping_method('flat_rate');
$new_zone_shipping -> save();
现在我只用于 flat_rate。 固定成本的可能简单方法?
解决方法
我在 WordPress 数据库上搜索后解决了这个问题。
WC_Shipping_Zone
方法 add_shipping_method()
返回运输方法实例 ID。
此实例 ID 在 wp_woocommerce_shipping_zones
表中抓取并用于 option_name
数据库表的 wp_options
列中,例如 woocommerce_flat_rate_1_settings
,
其中,flat_rate
是配送方式 ID (slug),1
是配送方式实例 ID。
所以工作代码是:
$zone_name = 'Giza';
$country_state = 'EG:EGGZ';
$method_id = 'flat_rate';
$shipping_cost = 22;
$new_zone_shipping = new WC_Shipping_Zone();
$new_zone_shipping->set_zone_name( $zone_name );
$new_zone_shipping->add_location( $country_state,'state' );
$instance_id = $new_zone_shipping->add_shipping_method( $method_id );
$new_zone_shipping->save();
add_option( 'woocommerce_'. $method_id .'_'. $instance_id .'_settings',array(
'title' => $method_id,'tax_status' => 'taxable','cost' => $cost
),'','yes' );
重要说明:不要忘记清理所有数据值,因为这只是一个简单的例子。