WooCommerce订单状态&减少库存

时间:2017-06-24 10:36:42

标签: woocommerce status stock orders

我为woocommerce写了一个支付网关,我在付款成功后更改了订单状态。如果状态更改为处理i减少订单库存。一切顺利。

顺便提一下,在插件设置中,管理员可以更改成功付款的状态...处理或完成(针对实体或虚拟产品)

    function setOrderPaid($OrderID, $status){
        $order = new WC_Order($OrderID);    
        if(!$order){
            return false;
            }else{
                    $order->update_status($status);                     
                    if($status=="processing") $order->reduce_order_stock();
                    WC()->cart->empty_cart();                           
                    return true;
                }
    }

在将订单状态更改为处理成功付款后,我将状态手册更改为已完成(backoffice woocommerce->订单),系统会再次减少订单库存。

我必须在成功付款后减少库存,以防止同一产品上的其他订单出现问题。如何修复此订单减少问题?

我找到了Woocommerce set_status。也许这有帮助... bool $ manual_update这是手动订单状态的变化吗?所以系统知道库存已经减少了???

1 个答案:

答案 0 :(得分:0)

这与在woocommerce中被视为付费订单状态有关。您可以自定义付款订单状态列表。每次订单进入任何付款订单状态时,上述功能都会触发。

现在,您的第一直觉是截断付费状态列表。在少数情况下这可能是明智的,但在这种特殊情况下,本能是错误的。

您需要做的是检查当前的订单状态。如果状态不是付费状态,则只有这样才能触发减少库存功能。这假设订单不会在付费和未付款状态之间反复跳转。