当前位置: 首页 > 知识库问答 >
问题:

WooCommerce-待付款减少库存的订单状态

许寒
2023-03-14

我使用WooCommerce通过电话/电子邮件等手动接受订单,我使用后端记录订单,手动添加订单。

目前,当生成“待付款”的订单作为状态时,库存会自动减少/扣减。我不希望这种情况发生。理想情况下,我只想减少库存,当订单被标记为“正在处理”,然后付款,然后采取。

我明白这是如何WooCommerce工作回来,有没有一种方法来避免库存减少,直到某一个状态已经被选中?

我已经在functions.php中尝试了下面的代码,并且使用了'on-hold'状态来测试,但是库存仍然减少了。

add_filter( 'woocommerce_can_reduce_order_stock', 'wcs_do_not_reduce_onhold_stock', 10, 2 );
function wcs_do_not_reduce_onhold_stock( $reduce_stock, $order ) {
    if ( $order->has_status( 'on-hold' )) {
        $reduce_stock = false;
    }
    return $reduce_stock;
}

我想知道是不是因为我是作为管理员添加订单的?我知道这是WooCommerce的工作方式,但理想情况下,我需要一种方法,当在草稿和创建阶段创建订单时,覆盖“Pending Payment”状态,直到标记为“Processing”。

任何帮助都会很好。

共有1个答案

艾宏远
2023-03-14

尝试添加到functions.php注意:未测试。

function reduce_stock_processing($order_id) {
 wc_reduce_stock_levels($order_id);

}

add_action('woocommerce_order_status_processing', 'reduce_stock_processing');
 类似资料:
  • 我WooCommerce,我正在使用“更改管理付款状态返回到WoocommercePending order status unpayed for WoocommercePending”答案代码,当订单状态在后端手动更改为pending时,重置订单的已付款状态。 例如,如果订单状态从“完成”更改为“挂起”,则删除以下内容:“支付日期为4月2日,2019年@5:29 PM” 现在我这里的问题是在订单

  • 问题内容: 通常,wooCommerce应该自动完成虚拟产品的订单。但是事实并非如此,这是一个实际的问题,即使是BUG之类的。 因此,在这一点上,您可以找到一些有用的东西(但不是很方便): 1)一段代码 (您可以在wooCommerce文档中找到): 但是此代码段不适用于 BACS , 货到付款 和 支票* 付款方式。Paypal和信用卡网关的付款方式都可以。 BACS 是直接银行转帐付款方式 还

  • 我正在使用WooCommerce预订,客户可以要求预订,需要得到管理员的确认。如果管理员不确认预订,我希望订单在24小时后自动取消。 从更改伍兹商务订单状态后X时间已通过回答代码,我正在寻找任何协助,以满足我的要求,使用WP cron。

  • 我用woocommerce做了一个简单的网店,有三种付款方式。理想情况下,可通过直接银行转账和开户。订单ID是根据付款方式创建的。例如,如果使用iDEAL付款,订单id将变为ID190100;如果以账户付款,订单id将变为RK190100。我从BeRocket的插件“WooCommerce的顺序订单号”中得到了这一点,但这些都是在付款完成之前创建的。订单ID必须在付款后才能最终确定。现在,尚未付款

  • 我在这个相关的答案中找到了对我的问题的部分和可行的答案: send-an-email-notification-when-order-status-changhe-fron-pendig-to-cancelled 我正在考虑使用提供的解决方案,但想看看我是否可以更改电子邮件通知,明确地说,“未决付款订单现在取消”,所以它不同于常规取消的订单。 我该怎么做?

  • 我的付款方式有问题,当一个客户订购...订单变成了正在处理,它减少了项目的库存。 基于这个答案线程:在Woocommerce中减少库存仅用于特定的订单状态和支付方式,我定制了代码并尝试了这个脚本: 但不管用。 对于使用“货到付款”付款方式且状态为“正在处理”的订单,如何避免订单项的库存减少?