我正在处理通过WooCommerce处理车辆租赁的插件。默认的WooCommerce行为是在付款完成后立即减少订单中的物品库存。长话短说,我需要防止这种情况发生(我将实施自定义功能,以减少所选出租日期的库存量)。防止WooCommerce在支付时减少股票
在WC_Order类中,我找到了一个名为payment_complete()(class-wc-order.php,第1278行)的函数。
在这个函数如下:
if (apply_filters('woocommerce_payment_complete_reduce_order_stock', true, $this->id))
$this->reduce_order_stock(); // Payment is complete so reduce stock levels
这样看来,我认为我只是需要包括
add_filter('woocommerce_payment_complete_reduce_order_stock', '_return_false');
在我的插件
为了防止股价从减少付款,但不幸的是这不起作用。我也尝试在一个函数中包装我的add_filter(),它在init上触发,但仍然没有运气。
任何帮助非常感谢。
你能解释一下吗?当然,我需要在该钩子上添加一个过滤器来返回false并阻止reduce_order_stock()函数运行?我试图改变过滤器,但它不起作用,股票仍然减少付款。 – iainc
您不会删除过滤器,您需要返回“false”值。 – helgatheviking