Сначала немного информации о системе:
- 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
можно найти здесь
Боюсь, у меня нет сообщения об ошибке/кода, я просто получаю белый экран смерти.
Заранее спасибо за помощь!