{"id":328628,"date":"2026-06-19T07:25:19","date_gmt":"2026-06-19T07:25:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/custom-order-status-manager-by-onlinefotka\/"},"modified":"2026-06-19T08:04:34","modified_gmt":"2026-06-19T08:04:34","slug":"onlinefotka-custom-order-status-manager","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/onlinefotka-custom-order-status-manager\/","author":23503486,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.1","stable_tag":"1.3.1","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Onlinefotka Order Status Manager for WooCommerce","header_author":"Onlinefotka","header_description":"Create and manage custom order statuses with native email notifications, auto-transitions, progress tracker, and a modern admin interface.","assets_banners_color":"e6f4f3","last_updated":"2026-06-19 08:04:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/onlinefotka.sk","rating":0,"author_block_rating":0,"active_installs":0,"downloads":48,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.0":{"tag":"1.3.0","author":"onlinefotka","date":"2026-06-19 07:45:01"},"1.3.1":{"tag":"1.3.1","author":"onlinefotka","date":"2026-06-19 08:04:34"}},"upgrade_notice":{"1.3.1":"<p>Adds Czech, German, and Hungarian translations. No database changes required.<\/p>","1.3.0":"<p>Adds a full shortcode system for email notifications and bundles Lucide Icons locally. No database changes required \u2014 safe to update.<\/p>","1.2.0":"<p>Contains an important database migration that widens the order status column to prevent status-revert issues with long slugs. The migration runs automatically on activation\/update.<\/p>"},"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3578196,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3578196,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.0","1.3.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3578196,"resolution":"1","location":"assets","locale":"","width":2400,"height":1294},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3578196,"resolution":"2","location":"assets","locale":"","width":2395,"height":1292},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3578196,"resolution":"3","location":"assets","locale":"","width":2400,"height":1289},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3578196,"resolution":"4","location":"assets","locale":"","width":2390,"height":1285},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3578196,"resolution":"5","location":"assets","locale":"","width":2399,"height":1289},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3578196,"resolution":"6","location":"assets","locale":"","width":2400,"height":1266}},"screenshots":{"1":"Order Statuses list \u2014 main plugin page showing the statuses tab with Export, Import, and Add Status buttons","2":"Email Notifications \u2014 email tab with the Add Email button and empty-state prompt","3":"Settings \u2014 auto-transition global toggle, fallback status selector, and customer progress tracker option","4":"Add \/ Edit Status \u2014 full status form with name, description, color picker, icon picker, payment status, workflow next-statuses, and bulk action options","5":"Add \/ Edit Email \u2014 email name, description, email type selector, and trigger status checkboxes (choose which status change fires the email)","6":"Email editor \u2014 subject line, heading, shortcode helper panel with click-to-insert tags, and the rich-text body editor"}},"plugin_section":[262246],"plugin_tags":[22187,1203,21473,21484,286],"plugin_category":[45],"plugin_contributors":[263926],"plugin_business_model":[],"class_list":["post-328628","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-custom-status","plugin_tags-email-notifications","plugin_tags-order-management","plugin_tags-order-status","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-onlinefotka","plugin_committers-onlinefotka","plugin_support_reps-normandy88"],"banners":{"banner":"https:\/\/ps.w.org\/onlinefotka-custom-order-status-manager\/assets\/banner-772x250.png?rev=3578196","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/onlinefotka-custom-order-status-manager\/assets\/icon.svg?rev=3578196","icon":"https:\/\/ps.w.org\/onlinefotka-custom-order-status-manager\/assets\/icon.svg?rev=3578196","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/onlinefotka-custom-order-status-manager\/assets\/screenshot-1.png?rev=3578196","caption":"Order Statuses list \u2014 main plugin page showing the statuses tab with Export, Import, and Add Status buttons"},{"src":"https:\/\/ps.w.org\/onlinefotka-custom-order-status-manager\/assets\/screenshot-2.png?rev=3578196","caption":"Email Notifications \u2014 email tab with the Add Email button and empty-state prompt"},{"src":"https:\/\/ps.w.org\/onlinefotka-custom-order-status-manager\/assets\/screenshot-3.png?rev=3578196","caption":"Settings \u2014 auto-transition global toggle, fallback status selector, and customer progress tracker option"},{"src":"https:\/\/ps.w.org\/onlinefotka-custom-order-status-manager\/assets\/screenshot-4.png?rev=3578196","caption":"Add \/ Edit Status \u2014 full status form with name, description, color picker, icon picker, payment status, workflow next-statuses, and bulk action options"},{"src":"https:\/\/ps.w.org\/onlinefotka-custom-order-status-manager\/assets\/screenshot-5.png?rev=3578196","caption":"Add \/ Edit Email \u2014 email name, description, email type selector, and trigger status checkboxes (choose which status change fires the email)"},{"src":"https:\/\/ps.w.org\/onlinefotka-custom-order-status-manager\/assets\/screenshot-6.png?rev=3578196","caption":"Email editor \u2014 subject line, heading, shortcode helper panel with click-to-insert tags, and the rich-text body editor"}],"raw_content":"<!--section=description-->\n<p><strong>Custom Order Status Manager by Onlinefotka<\/strong> 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.<\/p>\n\n<p>Built from the ground up with HPOS (High Performance Order Storage) compatibility and a clean, modern admin interface.<\/p>\n\n<h3>Custom Order Statuses<\/h3>\n\n<ul>\n<li>Create unlimited custom order statuses<\/li>\n<li>Set status name, slug, color, and Lucide icon<\/li>\n<li>Drag-and-drop reordering<\/li>\n<li>Define allowed next statuses (workflow control)<\/li>\n<li>Include or exclude from WooCommerce reports<\/li>\n<li>Enable as bulk action in the orders list<\/li>\n<li>Configurable payment status: Paid \/ Unpaid \/ Needs Payment<\/li>\n<li>Orders remain editable in custom statuses by default<\/li>\n<li>Colored status badge in WooCommerce admin order list<\/li>\n<\/ul>\n\n<h3>Email Notifications with Shortcodes<\/h3>\n\n<ul>\n<li>Full integration with the WooCommerce email system<\/li>\n<li>Customer and Admin email types<\/li>\n<li>Trigger emails on status change or new order placement<\/li>\n<li>CC \/ BCC support for admin emails<\/li>\n<li><strong>Powerful shortcode system<\/strong> \u2014 insert live order data anywhere in Subject, Heading, or Body:\n\n<ul>\n<li><code>[order_number]<\/code>, <code>[order_date]<\/code>, <code>[order_status]<\/code>, <code>[order_total]<\/code><\/li>\n<li><code>[order_items]<\/code> \u2014 automatic styled product table with totals<\/li>\n<li><code>[customer_name]<\/code>, <code>[customer_first_name]<\/code>, <code>[customer_email]<\/code>, <code>[customer_phone]<\/code><\/li>\n<li><code>[billing_address]<\/code>, <code>[shipping_address]<\/code><\/li>\n<li><code>[payment_method]<\/code>, <code>[order_notes]<\/code>, <code>[view_order_link]<\/code><\/li>\n<li><code>[site_title]<\/code>, <code>[site_url]<\/code>, <code>[admin_email]<\/code><\/li>\n<\/ul><\/li>\n<li>Shortcode helper panel in the editor \u2014 click any shortcode to insert at cursor<\/li>\n<li>Test email button \u2014 send a preview to your admin email with one click<\/li>\n<li>Standard WooCommerce email wrapper (compatible with email customizer plugins)<\/li>\n<\/ul>\n\n<h3>Auto Order Notes<\/h3>\n\n<ul>\n<li>Automatically add a private order note when an order enters a specific status<\/li>\n<\/ul>\n\n<h3>Auto-Transition<\/h3>\n\n<ul>\n<li>Automatically move orders to another status after X hours<\/li>\n<li>Global on\/off switch (disabled by default for safety)<\/li>\n<li>Per-status configuration<\/li>\n<li>WP Cron powered \u2014 respects the current order status (no overwrite on manual change)<\/li>\n<\/ul>\n\n<h3>Customer Progress Tracker<\/h3>\n\n<ul>\n<li>Visual progress bar on My Account \u2192 View Order page<\/li>\n<li>Shows completed, active, and upcoming statuses in order<\/li>\n<li>Can be toggled on\/off in Settings<\/li>\n<\/ul>\n\n<h3>Quick Status Change<\/h3>\n\n<ul>\n<li>Change order status directly from the orders list via AJAX<\/li>\n<li>No page reload required<\/li>\n<li>Respects allowed next-status workflow<\/li>\n<\/ul>\n\n<h3>Export \/ Import<\/h3>\n\n<ul>\n<li>Export all custom statuses as JSON<\/li>\n<li>Import on another site (skips duplicates by slug)<\/li>\n<\/ul>\n\n<h3>Dashboard Widget<\/h3>\n\n<ul>\n<li>Order count per custom status directly on the WordPress dashboard<\/li>\n<\/ul>\n\n<h3>HPOS &amp; Legacy Compatible<\/h3>\n\n<ul>\n<li>Works with WooCommerce High Performance Order Storage (HPOS)<\/li>\n<li>Works with traditional post-based orders<\/li>\n<li>Declared compatible with WooCommerce cart\/checkout blocks<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>WordPress 6.0 or higher<\/li>\n<li>WooCommerce 7.0 or higher<\/li>\n<li>PHP 8.0 or higher<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via <strong>Plugins \u2192 Add New<\/strong> in your WordPress admin<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen<\/li>\n<li>Navigate to <strong>WooCommerce \u2192 Order Statuses<\/strong> to configure your first custom status<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20my%20custom%20statuses%20work%20with%20hpos%3F\"><h3>Will my custom statuses work with HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin is fully compatible with WooCommerce High Performance Order Storage (HPOS \/ custom_order_tables).<\/p><\/dd>\n<dt id=\"are%20orders%20editable%20in%20custom%20statuses%3F\"><h3>Are orders editable in custom statuses?<\/h3><\/dt>\n<dd><p>Yes. By default all custom statuses allow order editing. You can disable this per-status in the Options panel.<\/p><\/dd>\n<dt id=\"does%20this%20use%20woocommerce%20native%20emails%3F\"><h3>Does this use WooCommerce native emails?<\/h3><\/dt>\n<dd><p>Yes. All email notifications are registered as standard WooCommerce email classes. They appear in WooCommerce \u2192 Settings \u2192 Emails and are compatible with popular email customizer plugins.<\/p><\/dd>\n<dt id=\"how%20do%20shortcodes%20work%3F\"><h3>How do shortcodes work?<\/h3><\/dt>\n<dd><p>Shortcodes like <code>[order_number]<\/code> or <code>[customer_first_name]<\/code> 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.<\/p><\/dd>\n<dt id=\"what%20does%20%5Border_items%5D%20output%3F\"><h3>What does [order_items] output?<\/h3><\/dt>\n<dd><p>[order_items] renders a styled HTML table containing all ordered products, quantities, and prices \u2014 plus a total row. The header color automatically matches your WooCommerce email accent color.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20delete%20a%20custom%20status%3F\"><h3>What happens if I delete a custom status?<\/h3><\/dt>\n<dd><p>All orders in that status are automatically moved to the fallback status (configurable in Settings, default: On Hold).<\/p><\/dd>\n<dt id=\"can%20i%20import%20statuses%20from%20another%20site%3F\"><h3>Can I import statuses from another site?<\/h3><\/dt>\n<dd><p>Yes. Use the Export button in the Status list to download a JSON file. Then use Import on the target site \u2014 existing slugs are skipped to avoid duplicates.<\/p><\/dd>\n<dt id=\"how%20does%20auto-transition%20work%3F\"><h3>How does auto-transition work?<\/h3><\/dt>\n<dd><p>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 \u2014 but only if it is still in the original status. Manual status changes are never overridden.<\/p><\/dd>\n<dt id=\"how%20long%20can%20a%20status%20slug%20be%3F\"><h3>How long can a status slug be?<\/h3><\/dt>\n<dd><p>The slug (without the <code>wc-<\/code> prefix) can be up to 47 characters. The full key stored in the database (<code>wc-<\/code> + slug) must not exceed 50 characters. The editor enforces this limit automatically.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20woocommerce%20blocks%20%2F%20cart%20and%20checkout%20blocks%3F\"><h3>Is the plugin compatible with WooCommerce Blocks \/ cart and checkout blocks?<\/h3><\/dt>\n<dd><p>Yes. Block compatibility is declared via the WooCommerce FeaturesUtil API.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>New: Czech (cs_CZ), German (de_DE), and Hungarian (hu_HU) translations<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: email shortcode system \u2014 use <code>[order_number]<\/code>, <code>[customer_name]<\/code>, <code>[order_items]<\/code> etc. in Subject, Heading, and Body<\/li>\n<li>New: shortcode helper panel in the email editor \u2014 click any shortcode to insert at cursor position<\/li>\n<li>New: <code>[order_items]<\/code> renders a complete styled product table with totals<\/li>\n<li>New: colored status badges in WooCommerce admin order list (uses configured status color)<\/li>\n<li>New: test email button in email editor \u2014 sends a preview to the admin email using the most recent order<\/li>\n<li>New: clear error message when the status slug is too long (instead of a silent failure)<\/li>\n<li>New: order count per status in the status list (clickable, links to filtered order list)<\/li>\n<li>New: Slovak (sk_SK) translations for all strings<\/li>\n<li>Improved: slug input enforces the 47-character maximum in the browser<\/li>\n<li>Fix: Lucide Icons bundled locally \u2014 removed external CDN dependency<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Fix: order status reverting to Pending when the status slug exceeded 17 characters (WooCommerce stores slugs with a <code>wc-<\/code> prefix \u2014 <code>wp_wc_orders.status<\/code> was VARCHAR(20) and silently truncated longer slugs)<\/li>\n<li>DB migration: widens <code>wp_wc_orders.status<\/code> to VARCHAR(50) and repairs any already-truncated values<\/li>\n<li>DB migration: widens <code>wp_posts.post_status<\/code> to VARCHAR(50) for legacy (non-HPOS) installs<\/li>\n<li>New: server-side slug length validation in <code>save_status()<\/code> prevents saving slugs that would exceed the column width<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: \"Include order details table\" toggle per email notification \u2014 disable to send only your custom message without the order summary appended<\/li>\n<li>DB migration: adds <code>include_order_details<\/code> column to the emails table<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Create and manage custom WooCommerce order statuses with email notifications, shortcodes, auto-transitions, and a modern admin interface.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328628","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=328628"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/onlinefotka"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328628"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328628"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328628"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328628"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328628"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}