Поскольку 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);
}
}
На этот раз, как вы увидите, вы получите все настройки (пользовательская этикетка, стоимость и другие настройки) для каждого тарифа метода доставки, установленного в зоне доставки .