Order Status & Tracking Emails for WooCommerce

Description

Order Status & Tracking Emails for WooCommerce (OSTE) is a powerful yet lightweight plugin that allows you to create custom order statuses, send transactional emails, and insert tracking codes with carrier links directly from your WooCommerce store.

Main Features:

Create and manage custom WooCommerce order statuses with colored badges and order-list action buttons.

Rename WooCommerce core status labels and customize status colors without writing code.

Keep custom status slugs stable after creation, with protected deletion and order reassignment tools.

Recover orders assigned to orphan custom statuses left behind by old slug changes or deleted statuses.

Configure custom email templates per order status, with subject, heading, intro text, extra content, footer content, and per-product tracking text.

Choose a WooCommerce fallback email for each custom status when the plugin template is disabled.

Add global tracking or per-product tracking to orders, including carrier selection and direct tracking links.

Show tracking information in customer emails and in the customer’s My Account order details.

Resend the current status email from the order screen without changing the order status.

Assign icons to carriers and control icon display in Cart, Checkout, Email, and My Account.

Map WooCommerce shipping methods to carriers to show the correct icon in Cart/Checkout labels.

Use custom shipping-method icons for Cart/Checkout when a single carrier mapping is not enough.

Customize WooCommerce email styles with a live preview and send the preview to a test email address.

Compatible with HPOS order screens and legacy WooCommerce order tables.

Fully translatable and GPL licensed, with no third-party services required.

Perfect for store owners who want full control over order management and customer notifications.

Screenshots

Installation

Upload the order-status-tracking-emails-for-woocommerce folder to /wp-content/plugins/ or install it via Plugins -> Add New.

Activate the plugin.

Go to the OSTE Manager menu to create statuses, configure templates, carriers, icons, tracking, and email styles.

FAQ

Is it compatible with any theme?

Yes. The plugin inherits WooCommerce’s native styling from your active theme.

Is it compatible with HPOS?

Yes. The plugin supports WooCommerce HPOS order screens and the legacy order table.

Can I translate custom statuses?

Yes. Plugin strings are translation-ready and custom status labels can be entered in your store language. You can use tools like Loco Translate for plugin translations.

Does it replace standard WooCommerce emails?

No. Core WooCommerce emails remain available. For custom statuses, you can use the plugin template or choose a WooCommerce fallback email when the plugin template is disabled.

Where do customers see the tracking info?

Customers can see tracking information in status emails and in the My Account order details page.

Can I add more than one tracking number to the same order?

Yes. You can use per-product tracking mode and assign a carrier, tracking code, and tracking link to each product row.

What happens if I delete a custom status used by existing orders?

The plugin shows how many orders use that status and requires you to move those orders to another WooCommerce status before deletion.

Can I recover orders assigned to old deleted custom statuses?

Yes. The States Manager includes an orphan status recovery tool that detects unregistered order statuses and lets you move those orders to a valid WooCommerce status.

Can I change a custom status slug after creating it?

No. The slug is locked after creation to keep existing orders valid. You can still change the status label and color.

Can I test email styling before sending real customer emails?

Yes. The Email Style Settings page includes a live preview and a test email option that sends the current preview to a chosen email address, not to the customer.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Order Status & Tracking Emails for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.8

  • Fix:
  • Locked custom status slugs after creation to prevent existing orders from becoming orphaned when a status label is renamed
  • Added protected custom status deletion: orders using the status must be reassigned to another WooCommerce status before deletion
  • Added client-side validation and visible admin notices when deleting a custom status without choosing the replacement status
  • Prevented customer emails from being sent during custom status reassignment on deletion
  • Added orphan custom status recovery tool to move orders from unregistered old statuses to a valid WooCommerce status
  • Fixed frontend custom tracking message visibility so it appears only when carrier, tracking code, and tracking link are available

  • Update:

  • Added order usage summary before deleting a custom status, including the affected order count
  • Added per-custom-status WooCommerce fallback email mapping when “Manage email with plugin?” is disabled
  • Live preview now respects the selected fallback email mapping, including the “No fallback email” case
  • Added Core/Custom badges to the email template status list for clearer status identification

1.0.7

  • Fix:
  • Plugin Check hardening and escaping refinements
  • Minor reliability fixes for per-product tracking save and uninstall cleanup
  • Live preview now respects the “Enable custom email styles” toggle (disabled = default WooCommerce style preview)
  • Fixed custom-status email trigger: when “Manage email with plugin?” is disabled, plugin custom template is no longer sent
  • Fixed preview behavior for custom statuses with plugin template disabled (uses WooCommerce fallback template)

  • Update:

  • Email Style Settings page redesigned with two-column layout and sticky live preview
  • Added “Send Test Email” option in Live Preview to send the current preview to a chosen email address
  • Added fallback note in preview (shows the WooCommerce fallback status/template used)
  • WordPress 7.0 compatibility

1.0.6

  • Fix:
  • Escaped per-product tracking icon output in order item tracking links
  • Added missing translators: comment for placeholder-based i18n string
  • Added nonce verification and safer raw input handling for per-item tracking save (woocommerce_saved_order_items)
  • Hardened uninstall cleanup for order-item tracking meta and aligned DB calls with Plugin Check expectations

1.0.5

  • Fix:
  • Restored custom action buttons and inline tracking fields on WooCommerce Orders screen (HPOS / wc-orders)
  • Fixed custom-status email subject fallback to correctly resolve placeholders ({site_title}, {order_number})

  • Update:

  • Added tracking mode per order: Global or Per product
  • Added toggle UI for tracking mode in orders list and order detail
  • Added per-product tracking fields in order detail (carrier, tracking code, tracking link)
  • Added per-product tracking output under each product line in customer emails and My Account order details
  • Disabled the global custom tracking message on My Account when per-product tracking mode is active (avoids inconsistent single-tracking output)
  • Added dedicated email CSS style controls for per-product tracking blocks
  • Added orders list summary in per-product mode (tracked products/total products)
  • Added optional per-status override template for per-product tracking text
  • Added “Resend current status email” action for custom statuses (without changing order status)
  • Added custom icon per shipping method for cart/checkout (with media library picker)
  • Added toggle to enable shipping-method custom icons (default OFF for backward compatibility)
  • Kept carrier mapping as fallback when a method custom icon is not set
  • Refactored admin logic into dedicated modules/files and moved inline JS to assets/js/admin.js

1.0.4

  • Fix:
  • Restore live preview updates for email styles (color picker updates immediately)
  • Email header respects site-name toggle and compacts when hidden
  • Email address titles forced to new line
  • Tracking message now shown only in My Account order details, hidden on order received page.
  • Replace [tracking] placeholder correctly in carrier links

  • Update:

  • Admin UI refresh with brand styling and toggle sliders
  • Add preset carrier dropdown with international + Italian lists

1.0.3

  • Fix:
  • Resolve Plugin Check warnings (prefixed globals, functions, and uninstall queries)
  • Tested up to 6.9
  • Disable custom email styles by default
  • Tracking message hidden on order received page
  • Email header respects site-name toggle and compacts when hidden
  • Email address titles forced to new line

  • Update:

  • Admin UI refresh with brand styling and toggle sliders

1.0.2

  • Fix:
  • When uninstalling, orders with custom statuses return to on-hold

1.0.1

  • Fix:
  • Compatibility with php 8.2
  • Improved and streamlined CSS submission for email templates
  • Small corrections

  • Update:

  • Viewing the Order Status Template Editor in Accordion
  • Added live email edit preview

1.0.0

Initial public release.