Woocommerce:将订单状态更改为待处理,但不增加库存

时间:2019-09-26 14:58:59

标签: wordpress woocommerce

考虑以下示例:

我有一个名为“ A”的产品,我的商店中有10个产品。

用户订购并付款3。订购状态将变为“正在处理”,库存减少。

现在,我将订单状态手动更改为“待处理”。库存增加到10。

我想防止这种情况的发生。

这是我正在使用的代码,但似乎不起作用:

function wcs_do_not_reduce_onhold_stock( $reduce_stock, $order ) {
    if ( $order->has_status( 'pending' ) ) {
        $reduce_stock = false;
    }
    return $reduce_stock;
}

add_filter( 'woocommerce_can_reduce_order_stock', 'wcs_do_not_reduce_onhold_stock', 10, 2 );

1 个答案:

答案 0 :(得分:0)

您的代码不起作用的原因是WooCommerce实际上具有减少库存和增加库存的不同功能-wc_reduce_stock_levels()和wc_increase_stock_levels()。过滤器“ woocommerce_can_reduce_order_stock”位于函数wc_reduce_stock_levels()中。在函数wc_increase_stock_levels()中有一个对应的过滤器“ woocommerce_can_restore_order_stock”。尝试改用此过滤器。