2017-01-09 165 views
4

我正在使用woocommerce預訂。 如果woocommerce_booking狀態被取消,我正嘗試觸發woocommerce訂單狀態以退款。我試過這段代碼,但它不工作。woocommerce預訂狀態更改woocommerce訂單狀態

global $woocommerce; 
$order = new WC_Order($order_id); 
if ('cancelled' == $order->status) { 
    $order->update_status('refund', 'order_note'); 
} 
+0

什麼是不工作?是否檢查$ order-> status? –

+0

是的,我檢查了訂單狀態。它仍然是一樣的。它應該改爲退款,但它不起作用。 – PPrevoo

+0

spreek jij toevallig Nederlands Jeroen? Ik zit al weken遇到了hetzelfde問題。 通過een預訂訂房選項? (woocommerce的預訂) – PPrevoo

回答

0

您需要獲取訂單的狀態,然後檢查您所需的條件並相應地更新它。

$order_status = $order->get_status(); 
4

要更新訂單狀態的取消狀態

add_action('woocommerce_cancelled_order','change_status_to_refund', 10, 1); 
function change_status_to_refund($order_id) { 
    $order = new WC_Order($order_id); 
    $order->update_status('refund', 'order_note'); 
    exit; 
} 

我希望這會幫助你。謝謝:)

0

我知道這是舊的文章,但我剛纔讓我最新的WordPress/woocommerce安裝

add_action('woocommerce_booking_cancelled', 'my_booking_cancelled_handler', 10, 1); 
function my_booking_cancelled_handler ($booking_id) { 
    $booking = new WC_Booking($booking_id); 
    $order_id = $booking->get_order_id(); 
    // check order for your business logic 
    // refund or not ;-) it's up to you 
} 

我希望這可以幫助別人。

0

嘿,你可以試試這個鉤!

https://therichpost.com/change-product-order-status-woocommerce-hook 

希望這將幫助你