Доступ к данным об объекте тарифа доставки в Woocommerce 3 - PullRequest
0 голосов
/ 11 октября 2018

Я хочу получить возможные способы доставки в Woocommerce.Я могу добраться до класса Class WC_Shipping_Rate, но я не знаю, как получить «глубже», и это сводит меня с ума.

Вот мой код:

<code>$packages = WC()->shipping->get_packages();

foreach ( $packages as $i => $package ) {

    foreach($package['rates'] as $value){
        echo '<pre>'.var_export($value, true).'
';}}

Этот фрагмент кода печатает это на моем экране:

WC_Shipping_Rate::__set_state(array(
   'data' => 
  array (
    'id' => 'flat_rate:1',
    'method_id' => 'flat_rate',
    'instance_id' => 1,
    'label' => 'Per post',
    'cost' => '2.50',
    'taxes' => 
    array (
    ),
  ),
   'meta_data' => 
  array (
    'Items' => '1 Kip × 1',
  ),
))
WC_Shipping_Rate::__set_state(array(
   'data' => 
  array (
    'id' => 'free_shipping:2',
    'method_id' => 'free_shipping',
    'instance_id' => 2,
    'label' => 'Download kaart',
    'cost' => '0.00',
    'taxes' => 
    array (
    ),
  ),
   'meta_data' => 
  array (
    'Items' => '1 Kip × 1',
  ),
))

Мой вопрос: как я могу получить доступ к массиву data, а затем к значению label?Я знаю, как получить значение label, но я не могу «добраться» до data ...

Я пытался получить его, используя методы, больше массивов, но WC_Shipping_Rate::__set_state(array( сбивает меня с толку.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 11 октября 2018

Попробуйте следующее, используя WC_Shipping_Rate методы или непосредственно свойства:

// Loop though shipping packages
foreach ( WC()->shipping->get_packages() as $key => $package ) {
    // Loop through Shipping rates
    foreach($package['rates'] as $rate_id => $rate ){

        echo $rate->get_label(). '<br>';

        // Or:
        echo $rate->label. '<br>';
    }
}

Протестировано и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...