I am using woo-commerce for my shopping site. I want to update the order status to complete after payment was made and then return to a success page.
I used the following code:
add_filter( 'woocommerce_payment_complete_order_status', 'my_change_status_function', 10, 2 );
function my_change_status_function ($order_status, $order_id) {
$order = new WC_Order($order_id);
return 'completed';
}
But this function is called before the payment was made and redirects to the payment page.
I want to change the status after the payment was completed and then return to redirect
URL.
Here is my redirect link:
http://example.com/checkout/order-received/82/?key=wc_order_5614e28c9d183&state=return
But the status is not changing when I use the woocommerce_payment_complete_order_status
hook.
The hook should be called after the payment is completed.
Try using the following code in your plugin
For Cash On Delivery method, this worked for me:
For most other methods, this worked:
Check out this piece of code