在official thread related to WC 2,6+ and Shipping default Zone 和WC_Shipping_Zone 类的源代码中进行了一些搜索后,我得到了您的答案。您了解到默认类有一个 ID = 0。
我首先尝试过:
$default_zone = new WC_Shipping_Zone(0);
print_r($default_zone);
我得到了这个数组:
WC_Shipping_Zone 对象 ( [_data:protected] => 数组 ( [zone_id] => 0
[zone_name] => 世界其他地区 [zone_order] => 0 [zone_locations] = > 数组 () ) [_locations_changed:WC_Shipping_Zone:private] => [_cache_group:protected] => [_meta_type:protected] => 发布 [object_id_field_for_meta:protected] => [_meta_data:protected] => 数组 () [_internal_meta_keys:protected ] => 数组 ( ) )
宾果游戏 1!数据在那里,我得到了默认运输区域对象,但它是受保护并且无法通过foreach循环访问或别的……
如果您查看WC_Shipping_Zone,您会看到它扩展 WC_Data 类。
所以我尝试使用 WC_Data 方法与该对象,这种方式:
$default_zone = new WC_Shipping_Zone(0);
$default_zone_data = $default_zone->get_data();
print_r($default_zone_data);
宾果2!!!它输出 sam 数组,但这次没有受保护和可访问。
所以答案是:
$default_zone = new WC_Shipping_Zone(0);
$default_zone_data = $default_zone->get_data();
$default_zone_id = $default_zone_data->zone_id;
$default_zone_order = $default_zone_data-> zone_order;
$default_zone_locations = $default_zone_data-> zone_locations;
$default_zone_meta_data = $default_zone_data-> meta_data;
// AND TO FINISH THE THE NAME!!!
$default_zone_name = $default_zone_data->zone_name;
echo $default_zone_name;
echo $default_zone_name 的输出是 Rest of the World(重新宾果游戏!!!)...
您还可以使用其他WC_Data 和WC_Shipping_Zone 方法来获取所需的数据:
$default_zone = new WC_Shipping_Zone(0);
$default_zone_formatted_location = $default_zone->get_formatted_location();
$default_zone_shipping_methods = $default_zone->get_shipping_methods();
// And so on …