Have you ever wondered why your WooCommerce order status is stuck at “Processing”? In short — that may be the expected behavior. If the product isn’t virtual, WooCommerce order status always remains “Processing” because the payment is completed, delivery of the order is not.  “Processing” doesn’t mean it’s processing payment — it means it’s being processed/fulfilled by the site owner. All payment gateway in WooCommercewill updates the status to “Processing” once the payment is done. When you deliver the product, mark it as completed.

Would you like to track your customer’s journey throughout your site? Get Customer Journey For WooCommerce plugin now.

Customer Journey For WooCommerce


If the product is “Virtual” and “Downloadable”, the order status will automatically be “Completed” because you don’t have to deliver the product and there is nothing to process.

Read more details about the order statuses in WooCommerce.

If you want to make the orders as “Completed” without “Processing” for all products, you can use the following custom code snippet:

/**
 * Auto Complete all WooCommerce orders.
 * 
 * return @void
 */
add_action( 'woocommerce_thankyou', 'sa1494_woocommerce_auto_complete_order' );
function sa1494_woocommerce_auto_complete_order( $order_id ) { 

    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    $order->update_status( 'completed' );
}

In case it helps, here’s how to easily add custom code snippets to your WordPress site.

That’s all. Are you looking to do something after the order is completed?

WooCommerce order status stuck at “Processing”
Tagged on:

Sanjeev Aryal

Don't bury your thoughts, put your vision into reality ~ Bob Marley.

Leave a Reply

Your email address will not be published.

Pin It on Pinterest