Description
Custom Order Status Manager by Onlinefotka gives you full control over your order workflow. Create unlimited custom statuses, configure native WooCommerce email notifications with a powerful shortcode system, set up automatic status transitions, and let your customers track their order progress visually.
Built from the ground up with HPOS (High Performance Order Storage) compatibility and a clean, modern admin interface.
Custom Order Statuses
- Create unlimited custom order statuses
- Set status name, slug, color, and Lucide icon
- Drag-and-drop reordering
- Define allowed next statuses (workflow control)
- Include or exclude from WooCommerce reports
- Enable as bulk action in the orders list
- Configurable payment status: Paid / Unpaid / Needs Payment
- Orders remain editable in custom statuses by default
- Colored status badge in WooCommerce admin order list
Email Notifications with Shortcodes
- Full integration with the WooCommerce email system
- Customer and Admin email types
- Trigger emails on status change or new order placement
- CC / BCC support for admin emails
- Powerful shortcode system — insert live order data anywhere in Subject, Heading, or Body:
[order_number],[order_date],[order_status],[order_total][order_items]— automatic styled product table with totals[customer_name],[customer_first_name],[customer_email],[customer_phone][billing_address],[shipping_address][payment_method],[order_notes],[view_order_link][site_title],[site_url],[admin_email]
- Shortcode helper panel in the editor — click any shortcode to insert at cursor
- Test email button — send a preview to your admin email with one click
- Standard WooCommerce email wrapper (compatible with email customizer plugins)
Auto Order Notes
- Automatically add a private order note when an order enters a specific status
Auto-Transition
- Automatically move orders to another status after X hours
- Global on/off switch (disabled by default for safety)
- Per-status configuration
- WP Cron powered — respects the current order status (no overwrite on manual change)
Customer Progress Tracker
- Visual progress bar on My Account View Order page
- Shows completed, active, and upcoming statuses in order
- Can be toggled on/off in Settings
Quick Status Change
- Change order status directly from the orders list via AJAX
- No page reload required
- Respects allowed next-status workflow
Export / Import
- Export all custom statuses as JSON
- Import on another site (skips duplicates by slug)
Dashboard Widget
- Order count per custom status directly on the WordPress dashboard
HPOS & Legacy Compatible
- Works with WooCommerce High Performance Order Storage (HPOS)
- Works with traditional post-based orders
- Declared compatible with WooCommerce cart/checkout blocks
Requirements
- WordPress 6.0 or higher
- WooCommerce 7.0 or higher
- PHP 8.0 or higher
Screenshots






Installation
- Upload the plugin folder to
/wp-content/plugins/or install via Plugins Add New in your WordPress admin - Activate the plugin through the Plugins screen
- Navigate to WooCommerce Order Statuses to configure your first custom status
FAQ
-
Will my custom statuses work with HPOS?
-
Yes. The plugin is fully compatible with WooCommerce High Performance Order Storage (HPOS / custom_order_tables).
-
Are orders editable in custom statuses?
-
Yes. By default all custom statuses allow order editing. You can disable this per-status in the Options panel.
-
Does this use WooCommerce native emails?
-
Yes. All email notifications are registered as standard WooCommerce email classes. They appear in WooCommerce Settings Emails and are compatible with popular email customizer plugins.
-
How do shortcodes work?
-
Shortcodes like
[order_number]or[customer_first_name]can be placed anywhere in the email Subject, Heading, or Body. They are replaced with live order data at the moment the email is sent. The shortcode helper panel in the editor lets you click any shortcode to insert it without typing. -
What does [order_items] output?
-
[order_items] renders a styled HTML table containing all ordered products, quantities, and prices — plus a total row. The header color automatically matches your WooCommerce email accent color.
-
What happens if I delete a custom status?
-
All orders in that status are automatically moved to the fallback status (configurable in Settings, default: On Hold).
-
Can I import statuses from another site?
-
Yes. Use the Export button in the Status list to download a JSON file. Then use Import on the target site — existing slugs are skipped to avoid duplicates.
-
How does auto-transition work?
-
When an order enters a status that has auto-transition configured (and the global switch is enabled), a WP Cron event is scheduled. After the set number of hours, the order moves to the target status — but only if it is still in the original status. Manual status changes are never overridden.
-
How long can a status slug be?
-
The slug (without the
wc-prefix) can be up to 47 characters. The full key stored in the database (wc-+ slug) must not exceed 50 characters. The editor enforces this limit automatically. -
Is the plugin compatible with WooCommerce Blocks / cart and checkout blocks?
-
Yes. Block compatibility is declared via the WooCommerce FeaturesUtil API.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Onlinefotka Order Status Manager for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Onlinefotka Order Status Manager for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.3.1
- New: Czech (cs_CZ), German (de_DE), and Hungarian (hu_HU) translations
1.3.0
- New: email shortcode system — use
[order_number],[customer_name],[order_items]etc. in Subject, Heading, and Body - New: shortcode helper panel in the email editor — click any shortcode to insert at cursor position
- New:
[order_items]renders a complete styled product table with totals - New: colored status badges in WooCommerce admin order list (uses configured status color)
- New: test email button in email editor — sends a preview to the admin email using the most recent order
- New: clear error message when the status slug is too long (instead of a silent failure)
- New: order count per status in the status list (clickable, links to filtered order list)
- New: Slovak (sk_SK) translations for all strings
- Improved: slug input enforces the 47-character maximum in the browser
- Fix: Lucide Icons bundled locally — removed external CDN dependency
1.2.0
- Fix: order status reverting to Pending when the status slug exceeded 17 characters (WooCommerce stores slugs with a
wc-prefix —wp_wc_orders.statuswas VARCHAR(20) and silently truncated longer slugs) - DB migration: widens
wp_wc_orders.statusto VARCHAR(50) and repairs any already-truncated values - DB migration: widens
wp_posts.post_statusto VARCHAR(50) for legacy (non-HPOS) installs - New: server-side slug length validation in
save_status()prevents saving slugs that would exceed the column width
1.1.0
- New: “Include order details table” toggle per email notification — disable to send only your custom message without the order summary appended
- DB migration: adds
include_order_detailscolumn to the emails table
1.0.0
- Initial release
