=== OrderHue – Custom Order Statuses for WooCommerce ===
Contributors: orderhue
Tags: order status, custom order status, woocommerce, order management, order email
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Unlimited custom order statuses for WooCommerce store owners: colours, bulk actions, paid/editable flags and an optional email for each status.

== Description ==

OrderHue lets WooCommerce store owners add their own order statuses, such as "Awaiting stock", "In production" or "Ready for collection", and use them everywhere WooCommerce shows a status.

Everything below is free, with no limits on the number of statuses.

* **Unlimited custom statuses**, each with a name, a slug (up to 17 characters, a WooCommerce storage limit) and a colour.
* **Coloured badges** in the orders list, plus a filter link for each status.
* **The order edit screen** lists your statuses in the status dropdown.
* **Bulk actions** ("Change status to …") on both the new High-Performance Order Storage (HPOS) screen and the legacy orders screen.
* **"Counts as paid"**: WooCommerce treats orders in the status as paid, and customers can download their files, just as with completed orders.
* **"Editable"**: you can still edit order items while an order is in the status.
* **Customers see the status name** in My Account → Orders.
* **Optional email for each status**, to the customer, the store admin or both. It uses the standard WooCommerce email settings and templates, which your theme can override.
* **Safe deletion:** when you delete a status, you choose where its orders go. They are moved in small background batches (Action Scheduler), so large stores don't time out. These housekeeping moves send no order emails, review requests or "new order" app notifications.

= Built to stay out of your way =

* No tracking, no usage data, no account to create and no calls to outside servers.
* Uses WooCommerce's own order functions, so it works with HPOS on, off or in compatibility (sync) mode.
* Tested with WordPress 7.1, WooCommerce 11.1 and PHP 8.3, with HPOS on, HPOS off and compatibility sync on.

== Installation ==

1. Install and activate WooCommerce.
2. In WordPress, go to **Plugins → Add New**, search for "OrderHue" and click **Install Now**, then **Activate**.
3. Go to **WooCommerce → Order statuses** and add your first status.
4. To send an email when an order enters a status, tick **Send an email** on the status. Then adjust the subject and text under **WooCommerce → Settings → Emails**.

== Frequently Asked Questions ==

= Does it work with High-Performance Order Storage (HPOS)? =

Yes. OrderHue declares HPOS compatibility, and it is tested with HPOS on, with HPOS off, and with compatibility sync turned on.

= Why is the slug limited to 17 characters? =

WooCommerce stores the status as "wc-" plus the slug in a 20-character database column. A longer slug would be cut short and the orders would lose their status.

= Can I change a slug later? =

No. Orders store the slug, so changing it would leave them behind. You can change the name and colour at any time. To change a slug, create a new status, then delete the old one and choose the new status as the place to move its orders.

= What happens to orders when I delete a status? =

You pick another status, and the orders move there in the background. While a status is still receiving orders from a deleted one, it can't be deleted itself; if an order can't be saved, OrderHue keeps the status and tries again every 5 minutes. After 12 attempts in a row without progress (roughly an hour) it pauses and shows a Retry button, so you can check the error in those orders' notes first. The deleted status stays visible (marked "Deleting") until every order has moved. These moves send no order emails to customers or admins, no review requests and no "new order" app notifications. WooCommerce still updates stock levels, sales counts and download access for the new status, as it does for any status change, so its usual low-stock alerts can still appear. Payment gateways and integrations also react as they would to any change into that status: for example, WooCommerce PayPal captures an authorised payment when an order reaches Processing or Completed, and configured webhooks fire. Choose the destination status with that in mind: moving to On hold, for example, doesn't trigger a PayPal capture.

= What happens if I uninstall the plugin? =

Uninstalling removes OrderHue's settings, including its email settings and any background moves still queued. The orders keep their status values, but WooCommerce won't recognise those statuses, so the orders won't show in the usual status filters. If you want to stop using OrderHue, first delete each custom status and move its orders to a built-in status, then uninstall. If you reinstall and re-create a status with the same slug, its orders come back.

= Does OrderHue collect any data? =

No. OrderHue doesn't send data anywhere and doesn't track usage. Its emails go out through your site's normal WordPress email set-up.

= Where do I get help? =

Post in this plugin's support forum on WordPress.org, or email support@orderhue.com. Support is by email and forum only.

== Screenshots ==

1. The Order statuses screen: add, edit and delete statuses, with colour and flags.
2. Custom status badges and filters in the WooCommerce orders list.
3. Bulk "Change status to …" actions on the orders list.
4. Each status email has its own settings under WooCommerce → Settings → Emails.

== Changelog ==

= 1.0.0 =
* First release.
