将状态更改为完成时,许可插件在WooCommerce管理员中导致致命错误

时间:2018-08-28 05:56:24

标签: php wordpress woocommerce

我有一个为某些产品分配许可证的插件(它通过功能脚本中的 cURL 连接到第三方)。 该插件非常适合通过购物车正常使用的商品,当“完成”购买时,它将发出适当数量的适当许可证。但是,如果管理员进入WooCommerce订单部分并将“待处理”或“正在处理”订单标记为“已完成”,则会产生致命错误:

  

致命错误:在以下位置调用成员函数get_cart()的null:   XXX行上的/etc/etc/plugins/licensing-plugin/license-post-payment.php

有趣的是,即使它产生了错误,它仍然可以正确发出适当的许可证和许可证数量。

我知道它产生此错误的原因是因为在管理控制台中,购物车中不再有要计算的项目。

我的脚本中产生错误的部分是一个看起来像这样的循环:

              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
                  }
              }

如何修改脚本以使其起作用,以便管理员可以手动“完成”订单?

0 个答案:

没有答案