我正在處理通過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