1 回答
TA贡献1786条经验 获得超13个赞
因为WC()->shipping->get_shipping_methods()不加载在每个运输区域设置的运输方式,它只加载您可以在任何运输区域设置的所有可用运输方式,以及所有默认值和可用的设置字段……
请记住,送货方式成本和设置由送货区域设置,并与位置(地区、国家、州或邮政编码)相关。
因此,由于每个运输区域的运输方式费率不同,您需要首先获得在运输部分设置中设置的一个或所有运输区域。
然后,您可以从送货区获取为其设置的所有送货方式费率,例如:
// Get all your existing shipping zones IDS
$zone_ids = array_keys( array('') + WC_Shipping_Zones::get_zones() );
// Loop through shipping Zones IDs
foreach ( $zone_ids as $zone_id )
{
// Get the shipping Zone object
$shipping_zone = new WC_Shipping_Zone($zone_id);
// Get all shipping method values for the shipping zone
$shipping_methods = $shipping_zone->get_shipping_methods( true, 'values' );
// Loop through each shipping methods set for the current shipping zone
foreach ( $shipping_methods as $instance_id => $shipping_method )
{
// The dump of protected data from the current shipping method
var_dump($shipping_method);
}
}
这一次,正如您将看到的,您将获得在配送区域中设置的每种配送方式费率的所有设置(自定义标签、成本和其他设置)。
- 1 回答
- 0 关注
- 128 浏览
添加回答
举报