У меня есть плагин, который назначает лицензии для определенных продуктов (он подключается к третьей стороне через cURL в скрипте функции).
Плагин отлично подходит для обычных покупок товаров через корзину, а когда покупка завершена, он отправляет соответствующую лицензию с нужным количеством. Однако если администратор заходит в раздел «Заказы WooCommerce» и помечает «отложенный» или «обрабатывающий» заказ как «выполненный», он создает фатальную ошибку:
Неустранимая ошибка: вызов функции-члена get_cart () для null в
/etc/etc/plugins/licensing-plugin/license-post-payment.php в строке XXX
Интересно то, что, хотя и выдает ошибку, он все равно правильно отправляет правильную лицензию и количество лицензий.
Я знаю причину, по которой он создает эту ошибку, потому что в консоли администратора больше нет товаров в корзине для расчета.
Часть моего скрипта, которая выдает ошибку, представляет собой цикл, который выглядит следующим образом:
foreach ( WC()->cart->get_cart() as $cart_item ) {
if($cart_item['product_id'] == $targeted_id ){
$product_qty = $cart_item['quantity'];
break; // stop the loop if product is found
}
}
Как мне изменить скрипт, чтобы он работал так, чтобы администратор мог вручную «выполнить» заказ?