我有一个为某些产品分配许可证的插件(它通过功能脚本中的 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
}
}
如何修改脚本以使其起作用,以便管理员可以手动“完成”订单?