What custom order statuses actually do
A custom order status replaces the standard WooCommerce status (Processing, Completed, On Hold, etc.) with a custom one you define - like 'Awaiting ID Check' or 'Ready for Pickup'. This is a real status change. WooCommerce treats it as a workflow state transition.
This means: customer email notifications may fire (or fail to fire). Payment gateways that listen for specific statuses may not recognise the custom one. Shipping plugins that trigger on 'Processing' won't trigger on 'Awaiting ID Check'. Analytics that track orders by status will show unexpected values. And any integration that expects standard WooCommerce statuses - which is most of them - may break.
What order badges do differently
An order badge is a visual label that sits alongside the status without changing it. The order stays 'Processing' while carrying a 'High Value' badge, an 'Age Check Required' badge, and a 'VIP Customer' badge simultaneously. WooCommerce, Stripe, your shipping plugin, your analytics - none of them see anything different.
Badges are metadata, not workflow states. They're visible to your admin team on the orders list and order edit screen, but invisible to every integration. You can add and remove them freely without triggering emails, breaking payment flows, or distorting reports.
When you actually need a custom status
Custom statuses are the right choice when you genuinely need a new workflow state - a step in your order processing pipeline that WooCommerce doesn't provide natively. For example, a 'Ready for Pickup' status for click-and-collect stores where the order needs to move through a distinct pickup-ready phase before completion.
The key test: does this state change what should happen next to the order? If yes, it's a workflow state and a custom status makes sense. If it's information about the order rather than an instruction to the system, a badge is the better tool.
Why most 'flag and review' use cases are badge problems
Most merchants who install custom status plugins are actually trying to flag orders for human attention - manual review, special handling, or team communication. These are not workflow state changes. 'Needs Fraud Review' doesn't change what the payment gateway should do. 'Fragile - Extra Packaging' doesn't change when the order should complete.
Using a custom status for these cases creates friction: someone has to remember to change the status back to 'Processing' after the review. If they forget, the order stalls. If the custom status triggers a customer email, the customer receives a confusing notification about a status they've never heard of.
Can you use both?
Yes. Badges and custom statuses solve different problems and coexist without conflict. Use custom statuses for genuine workflow states (Ready for Pickup, Awaiting Payment Confirmation). Use badges for everything else - flagging patterns, annotating orders, surfacing customer intelligence, and communicating between team members.
The practical test: if you find yourself creating custom statuses that you need to change back to 'Processing' after someone looks at the order, those should be badges instead.
Try it: ready-made rule recipe
Each recipe below is a real rule template you can activate in OrderBadger. Click through for the full configuration, test fixtures, and customisation tips.