WooCommerce has seven order statuses out of the box: Pending payment, Processing, On hold, Completed, Cancelled, Refunded and Failed, plus a Draft status that the block checkout creates before an order is placed. You change a status by opening the order in WooCommerce > Orders, or several at once from the bulk actions dropdown. Statuses are not just labels: each one decides whether stock is reduced, which email goes out, and, with an invoicing plugin, whether a PDF invoice is issued. This guide covers what each status means, how to change them, which emails they trigger, and how to tie automatic invoicing to a status.
Read about:
- What are WooCommerce order statuses?
- Changing the order status in WooCommerce
- Order Statuses and Emails
- WooCommerce Order Statuses & PDF Invoices
- Frequently asked questions
What are WooCommerce order statuses?
Each time a customer completes an order in your store, it appears on the order list in the WooCommerce admin panel with a status attached. That status is what tells you, and the store, what stage the order is at and what should happen next.
This is the full list of WooCommerce order statuses, with what each one actually controls:
| Status | Slug | What it means | Stock | Default email |
|---|---|---|---|---|
| Pending payment | wc-pending | Order received, payment not completed | Not reduced | None |
| Failed | wc-failed | Payment declined or not authorised | Not reduced | To the admin |
| Processing | wc-processing | Payment received, order awaiting fulfilment | Reduced | To the customer |
| On hold | wc-on-hold | Awaiting payment you confirm manually, for example a bank transfer | Reduced | To the customer |
| Completed | wc-completed | Order fulfilled, nothing further required | Already reduced | To the customer |
| Cancelled | wc-cancelled | Cancelled by you or by the customer | Restored | To the admin |
| Refunded | wc-refunded | Money returned to the customer | Not restored automatically | To the customer |
| Draft | wc-checkout-draft | Created by the block checkout before the order is placed | Not reduced | None |
The last one surprises people. The block-based Cart and Checkout creates a draft order as soon as the customer reaches the checkout, which is why abandoned drafts can pile up in the database. WP Desk telemetry from 19,803 WooCommerce stores, collected in August 2026, shows 13.8% of stores using the block cart, so most shops will not see these yet.
Take a look at the graphic diagram:

Statuses help you manage orders in the store. You will know which orders require your action. One glance, and you know everything!

Processing or Completed: which one should you use?
This is the pair that causes the most confusion. Processing means the money arrived and the order is waiting for you to do something, usually pack and ship it. Completed means that work is done.
For digital products, WooCommerce sets Completed automatically after payment, because there is nothing to pack. For physical goods, the order should sit in Processing until it leaves the warehouse. Marking everything Completed at payment feels tidy but destroys the one thing the status list is for: seeing at a glance which orders still need work.
How to change order status in WooCommerce
For online payments the status changes by itself. The order is created as Pending payment, the gateway confirms the charge, and WooCommerce moves it to Processing, or straight to Completed for downloadable products. On hold is not a step in that flow: it is used for payment methods you settle manually, such as bank transfer or cheque, where the store reserves the stock while waiting for the money.
When the customer pays by bank transfer, you change the status by hand:
- Go to WooCommerce > Orders.
- Click the order number to open it, or the eye icon for the quick preview.
- In the order editing screen, pick a new value from the Status dropdown.
- Click Update. The status change takes effect, along with any email attached to it.

You can also change the status of several orders at once. Follow the steps below:
- First, choose WooCommerce > Orders
- Then, select the orders to change the status.
- From the bulk actions dropdown select order status.
- Finally, click Apply.

One warning about bulk changes: every status change fires its email. Switching two hundred orders to Completed in one click sends two hundred messages, and there is no undo. Test on a handful first.
A smart tip. By default, the list shows 20 orders. If you want to increase the number of displayed orders, go to Screen Options and change the number of items per page.

Can you add your own order status?
Not with core WooCommerce. The seven statuses above are what you get, and the Orders screen is where you manage them. Adding something like “Packed”, “Awaiting supplier” or “Ready for pickup” needs either a snippet registering a custom post status or a dedicated plugin. WooCommerce Order Status Manager is the best known of those, and it is a separate paid extension, not a feature hiding somewhere in the settings.
Before adding one, check whether you need it. Every custom status needs its own rules for emails, for invoicing and for reporting, and a status that nothing reacts to is just a coloured label.
If your store has High Performance Order Storage enabled, orders live in their own database tables rather than among posts, which changes how custom statuses have to be registered. WP Desk telemetry from the same 19,803 stores shows 34.4% with HPOS on, so it is worth confirming before you buy a plugin or paste a snippet.
Order Statuses and Emails
In WooCommerce > Settings > Emails, you can find a list of emails sent after the order has a specific status. If you click manage, you can edit the email.

The mapping is fixed in core. New order, Cancelled order and Failed order go to the store admin. Order on-hold, Processing order, Completed order and Refunded order go to the customer. Customer invoice is the one email you send by hand, from the order screen.
You can enable or disable email notifications, change the subject email heading, or add content. Customize some notifications to adjust your purchasing process to your store’s needs.

Too many messages can upset the buyer. Send only notifications that are important and contain new information for the customer. A store that emails on every internal step trains customers to ignore the one message that mattered.
WooCommerce Order Statuses and PDF Invoices
You can also use order statuses to issue and send invoices automatically. Install the Flexible Invoices plugin, which has a free version you can start with.
After that, go to Invoice > Settings and choose documents. You decide at which status the PDF invoice is automatically issued and sent to the customer. You can select more than one status, so the invoice can be issued at Processing and a corrective document handled at Refunded.
Which status to pick depends on how you sell. Processing is the usual choice, because the money has arrived. Completed suits stores that invoice on dispatch. What you want to avoid is issuing at Pending payment, which produces invoices for orders that were never paid.

You can test all the plugin’s functionalities in a free demo.
Summary
Order statuses are the control panel of a WooCommerce store, not decoration. Keep physical orders in Processing until they ship and move them to Completed when they do, so the list still tells you what needs doing. Remember that On hold reserves stock and Cancelled gives it back. Check which emails fire before you change two hundred orders at once. And when you automate invoicing, tie it to a status that means the money arrived.
Frequently asked questions
How many order statuses does WooCommerce have by default?
Seven that you work with daily: Pending payment, Processing, On hold, Completed, Cancelled, Refunded and Failed. There is also a Draft status used internally by the block checkout before an order is placed.
What is the difference between Processing and Completed?
Processing means the payment arrived and the order still needs fulfilling. Completed means it has been fulfilled. Downloadable products jump straight to Completed, because there is nothing to ship.
When does WooCommerce use the On hold status?
For payment methods settled outside the store, such as bank transfer or cheque. The order waits for you to confirm the money while the stock stays reserved.
Why is an order stuck on Pending payment?
The customer reached checkout but the payment never completed, or the gateway failed to send its confirmation back. Check the order notes first: they record what the gateway reported, which separates an abandoned checkout from a broken integration.
Which order statuses send an email to the customer?
On hold, Processing, Completed and Refunded. New order, Cancelled and Failed go to the store admin instead. The Customer invoice email is sent manually from the order screen.
Can I create a custom order status in WooCommerce?
Not in core. It requires a snippet or a plugin such as WooCommerce Order Status Manager, which is a separate paid extension. If your store uses High Performance Order Storage, confirm the method supports it.
Does changing a status in bulk send emails?
Yes. Each order processes its status change individually, including the email attached to it, and there is no way to undo a batch. Test on a few orders before running it on hundreds.
Can an invoice be issued automatically when the status changes?
Yes, with an invoicing plugin that listens for status changes. You pick which statuses trigger the document, and the PDF is issued and emailed without anyone opening the order.
WooCommerce order management in your store
If you have more questions or want to dispel doubts, email us!

