доступ к методам объекта

avatar
Thunermay
1 июля 2021 в 16:20
20
0
0

Сначала немного информации о системе:

  • PHP 7.4
  • WordPress 5.7.2
  • WooCommerce 5.4.1
  • Германизировано для WooCommerce 3.5.0 Github
  • Немецкий язык для WooCommerce pro 3.2.3

К сожалению, я не могу использовать WP_DEBUG, var_dump или echo.

Я использую "германизированный" плагин для службы доставки DHL и других вещей, но проблема связана с DHL.
Я пытаюсь установить customerReference на этикетке для элементов, которые находятся внутри. Хорошо, что для этого есть фильтр, поэтому я написал это в functions.php в моей дочерней теме:

<?php
...other stuff...

add_filter( 'woocommerce_gzd_dhl_label_customer_reference', 'addItemsToLabelReference', 10, 3 );

function addItemsToLabelReference($ref, $label, $shipment ) {
      return $ref;
}

?>

Этот код просто возвращает ссылку, полученную от подключаемого модуля. Однако я могу получить доступ к объекту $shipment для получения элементов.
Я могу вызвать get_items(), чтобы получить массив ShipmentItems.
Проблема начинается, когда я хочу получить sku. Когда я перебираю массив с помощью цикла foreach и вызываю get_sku, веб-сайт просто падает и больше не работает. Я думаю, что это больше проблема PHP, чем проблема WooCommerce.
Код, который я пробовал, таков:

function addItemsToLabelReference($ref, $label, $shipment ) {
    
    foreach($shipment->get_items() as $item){
        $sku = $item->get_sku();
        $quantity = $item->get_quantity(); 
    }
    return $ref
}

Исходный код класса $item можно найти здесь
Боюсь, у меня нет сообщения об ошибке/кода, я просто получаю белый экран смерти.

Заранее спасибо за помощь!

Источник

Ответы (0)