WooCommerce订单状态和减少库存



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

顺便说一下,插件设置中的管理员可以更改成功付款的状态...处理或完成(用于物理或虚拟产品(

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

成功付款后,将订单状态更改为处理后,我去将状态手册更改为已完成(退缩WooCommerce->订单(,并且系统再次减少了订单库存。

我必须在成功付款后减少股票,以防止同一产品上其他订单的问题。如何解决此订单减少问题?

我找到了这个woocommerce set_status。也许这会有所帮助... bool $ manual_update这是手动订单状态更改吗?因此,系统知道库存已经减少了???

这与WooCommerce中所谓的付费订单状态有关。您可以自定义付费订单状态列表。每当订单输入任何付费订单状态时,上述功能将触发。

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

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

相关内容

  • 没有找到相关文章

最新更新