Плагин лицензирования, приводящий к фатальной ошибке администратора WooCommerce при изменении статуса на завершенный - PullRequest
0 голосов
/ 28 августа 2018

У меня есть плагин, который назначает лицензии для определенных продуктов (он подключается к третьей стороне через 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
                  }
              }

Как мне изменить скрипт, чтобы он работал так, чтобы администратор мог вручную «выполнить» заказ?

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