Try this code:
$order = new WC_Order($order_id);
$order->update_status('pending', 'order_note'); // order note is optional, if you want to add a note to order
문제
I am trying to change order status in WooCommerce, but I encountered no luck so far. $order instance is created successfully (I know it because echo $order->status;
works fine, $order_id is also correct. $order->status = 'pending';
simply doesn't change anything, I do not know why.
$order = new WC_Order($order_id);
$order->status = 'pending';
Could anyone help me with this?
해결책
Try this code:
$order = new WC_Order($order_id);
$order->update_status('pending', 'order_note'); // order note is optional, if you want to add a note to order
다른 팁
Working with woocommerce v4.4
, other answers were not working for me. I had to do it this way,
$order = wc_get_order($order_id);
$order->set_status('pending');
$order->save();
Note: Woocommerce internally adds wc
prefix, you will see it if you view in the database. We do not need to explicitly add it.
Since Woocommerce version 3.0+ to update status you need to do this
$order = wc_get_order( $order_id );
if($order){
$order->update_status( 'pending', '', true );
}
WooCommerce change order status
$order_id = 10;
$orderDetail = new WC_Order( $order_id );
$orderDetail->update_status("wc-completed", 'Completed', TRUE);
The following are the list of available status
wc-pending For Pending payment
wc-processing For Processing
wc-on-hold For On hold
wc-completed For Completed
wc-cancelled For Cancelled
wc-refunded For Refunded
wc-failed For Failed