OSTE: Order Status & Tracking Emails for WooCommerce (OSTE) brings order statuses, shipment tracking and customer communication into one WooCommerce toolkit.
Create custom order statuses, configure global or per-product tracking, design the email sent for each status, automate follow-ups and build controlled order workflows. Optional Telegram updates let customers follow shipments through a store bot.
Order statuses and store workflow
- Create custom WooCommerce order statuses with labels, colors and order-list action buttons.
- Rename core status labels and customize their colors while preserving WooCommerce behavior.
- Manage custom statuses independently of any external tracking service.
- Assign operational roles independently from labels, so presets and automations can follow the store's real process.
- Choose explicitly whether a custom status counts as paid, enables downloads or shows purchase notes.
- Protect status slugs after creation and safely reassign orders before deleting a status.
- Recover orders left in old or unregistered custom statuses.
- Start from five guided status flows, including payment verification, preparation, shipping and delivery scenarios. Presets never run automatically.
Tracking and carriers
- Add one tracking code to the order or separate tracking codes for individual products and parcels.
- Store the carrier, tracking code and direct carrier link for every tracked item.
- Display linked tracking details in customer emails and My Account order details.
- Configure Italian and international carriers, custom carrier URLs and carrier icons.
- Map WooCommerce shipping methods to carrier or custom icons for classic Cart and Checkout labels.
- Use clickable tracking codes in per-product email content and Telegram tracking summaries.
Email templates and visual design
- Configure subject, heading, introduction, additional content, footer and per-product tracking text for every order status.
- In guided configuration, review status email content separately from optional scheduled email rules; new templates and rules start disabled, while existing template settings are preserved.
- Use the normal WooCommerce email as a selectable fallback when an OSTE custom template is disabled.
- Resend the current customer status email from the order screen without changing status.
- Customize WooCommerce email colors, typography, spacing, tables, products, totals, downloads and logo alignment.
- Preview unsaved styling with a real order and send the preview only to a chosen test address.
- Apply Ordered Classic, Modern Clean or Minimal style presets after explicit confirmation, with a restorable backup of OSTE settings.
- Preserve compatible email template overrides supplied by themes and extensions.
Automations and workflows
- Send delayed customer or administrator emails after an exact status or operational role.
- Add paid-order and tracking conditions, select a post-trigger policy and review a filterable event log.
- Preview automation content with real placeholders and safely test it without activating the rule.
- Retry a rejected automation email after the rule, order and recipient have been checked again.
- Change order status after the first tracking code is added or after time spent in an exact status.
- Resend the current status email from a workflow without forcing a status change.
- Choose separate preparation reminders for customers and internal alerts for administrators, each initially disabled.
- Run delayed work through WooCommerce Action Scheduler and inspect scheduler health from the administration area.
- Keep every generated workflow and automation disabled until an administrator reviews and enables it.
Optional Telegram updates for customers
- Connect one store bot created with the official Telegram BotFather.
- Follow the short setup guide in the Customer Telegram settings page; OSTE verifies the token and registers the webhook when settings are saved.
- Choose invitation statuses independently from Telegram notification statuses. The activation link can appear in customer order emails and My Account for those statuses, including custom statuses; email output supports HTML and plain text.
- Set the Telegram email panel's background and border colors, and the activation button's background and text colors, in Email Styles when the customer Telegram module is enabled.
- Show the optional Telegram invitation in a compact email panel with a short explanation and activation button.
- Enable or disable the entire customer channel without deleting its configuration.
- Invite customers through a secure, expiring and single-use link included in selected order emails.
- Optionally show a Telegram activation action in signed-in customers' My Account orders list and order details, or a panel below the order details.
- Optionally show a Telegram activation panel on the order confirmation page for guests and signed-in customers. Choose whether it follows the shared invitation statuses or appears after every valid order.
- Associate registered customers with future orders and guest customers only with the linked order.
- Select separately which WooCommerce or custom statuses send a Telegram update after the customer activates the bot.
- Use a global message template and optional templates for individual statuses.
- Include every product or parcel tracking code through linked tracking details.
- Accept activation only from private chats, verify webhook requests and let customers revoke consent with
/stop.
- Integrate Telegram associations with the WordPress personal-data export, erasure and privacy-policy tools.
Configuration and compatibility
- Use a consistent administration design with shared icons, native collapsible sections and responsive settings layouts.
- Use a guided setup or apply status, email, workflow and automation presets from their own administration screens.
- Export and import versioned JSON settings and rules without orders, customers, tracking history, logs or scheduled jobs.
- Use WooCommerce CRUD for compatibility with HPOS and the legacy order datastore.
- Work with WordPress 6.0 or later, PHP 7.4 or later and an active WooCommerce installation.
- Use the bundled Italian translation or translate the plugin with standard WordPress tools.
OSTE order statuses, manual tracking, emails, workflows and automations work without an external service. Customer Telegram updates require a bot configured by the store owner.
More free plugins by the same author
Looking for a simple way to manage return requests in WooCommerce?
SLS Return Requests is another free WordPress plugin by SLS Studio Lucia Soscia, designed to help manage customer return requests.
Both plugins are available for free on
WordPress.org and can be installed independently.
External service: Telegram
The optional Customer Telegram module uses the Telegram Bot API at
https://api.telegram.org/. It is disabled by default. The store owner needs a Telegram account and a dedicated bot created with BotFather; customers opt in by opening their invitation link and pressing Start in a private bot chat.
Saving settings with a configured bot token contacts Telegram to verify the bot and register the webhook, including when customer notifications are switched off. These setup requests send the bot token, the site's webhook URL and a webhook authentication secret. Once enabled and accepted by a customer, notifications send the customer's Telegram chat identifier and the configured message text. Depending on the selected placeholders, this text can contain the order number, order status, product names, carriers, tracking codes and tracking links.
Invitation links open
https://t.me/ and pass a one-time activation token to the bot. Telegram delivers private-chat identifiers and bot commands such as /start and /stop to the site's authenticated webhook. OSTE stores the chat association and consent timestamp on the relevant WordPress user or WooCommerce order. Registered-customer consent applies to future orders; guest consent applies only to the linked order. Customers can revoke the association with /stop. The WordPress personal-data tools can export or erase these associations.
Service:
https://telegram.org/ and
https://core.telegram.org/bots/api
Terms:
https://telegram.org/tos and
https://telegram.org/tos/bot-developers
Privacy policy:
https://telegram.org/privacy
- Install and activate WooCommerce.
- Upload the
order-status-tracking-emails-for-woocommerce folder to /wp-content/plugins/, or install the plugin from the WordPress Plugins screen.
- Activate Order Status & Tracking Emails for WooCommerce.
- Open OSTE Manager to configure statuses, email templates, carriers, tracking and email styles.
- Optionally open Configuration to use the guided setup, apply presets or import a previous OSTE JSON configuration. Review every generated rule before enabling it.
- To enable customer Telegram messages, follow the short guide in Customer Telegram: create a bot with
@BotFather, paste its token, select statuses and save to verify the bot and configure the webhook automatically. A public HTTPS site is required for Telegram to deliver webhook updates.
- For low-traffic stores, inspect Workflow > Scheduler status and configure the displayed external WP-Cron URL when scheduled actions need a reliable server trigger.
Updating OSTE does not apply presets, enable rules, change existing orders or activate Telegram automatically.
Deleting the plugin from WordPress runs its uninstall cleanup, removing Telegram settings, webhook credentials and customer connections. After a fresh installation, reconnect the bot and ask customers to activate with new links. To keep settings during an update, install the new version over the existing plugin without deleting it.
1.1.0
- Refresh the administration interface with a consistent yellow theme, shared icons and native collapsible sections.
- Refine spacing, alignment, responsive layouts and visual labels across the settings pages.
- Validate custom email order objects and preserve the correct native full-refund email when resending or previewing refunded orders.
- Improve administration view contracts and email template input validation; keep the variable legend focused on placeholders included with OSTE.
1.0.11
- Add optional customer Telegram updates with store-owned bot, secure opt-in links and per-status message templates.
- Add optional Telegram activation in WooCommerce My Account order actions or in an order-details panel, with invitation links created only when activated.
- Add optional Telegram activation on the order confirmation page, with a choice between shared invitation statuses and every valid order.
- Add a short in-plugin guide for creating and verifying the customer bot.
- Fix Telegram activation in WooCommerce and OSTE customer emails by using the public customer-email check.
- Add dedicated email style colors for the Telegram activation button and keep its text readable with custom link colors.
- Improve Italian translation loading and resolve Plugin Check findings in the Telegram setup and account invitation code.
- Improve status and workflow presets, core-status overview, Italian translations and per-product tracking links.
- Preserve customer Telegram invitations across email rendering and keep previews from changing live invitations.
- Strengthen Telegram revocation, long-message formatting and protected status-reassignment behavior.
- Fix WooCommerce item AJAX tracking saves, tracking-mode automation conditions and order modification dates after global tracking changes.
- Allow Shop Managers to save email templates and styles, and load their administrative scripts and styles through WordPress enqueue APIs.
- Document the optional Telegram service, transferred data and official terms and privacy policy.
- Remove scheduled OSTE email and workflow jobs during uninstall even when they contain order and rule arguments.
- Generate administration tabs and the OSTE submenu from one shared page registry in the same section order.
1.0.10
-
New:
-
Optional guided setup, five status flows, a WooCommerce core-status overview, and contextual presets for individual settings pages.
- Three email style presets with a restorable backup, live preview and collapsible style controls.
- Operational roles independent of status labels, plus opt-in paid-order, download and purchase-note behavior.
- Delayed email automations with conditions, recipients, post-trigger policies, preview, test sends and event logs.
- Workflow rules for first tracking insertion, delayed status changes and current-status email resends.
- Scheduler diagnostics and instructions for external server cron on low-traffic stores.
- Versioned JSON configuration import/export for settings and rules, with validation and merge controls, excluding order and customer data.
-
Improved:
-
Tracking persistence and cleanup use WooCommerce CRUD for HPOS and legacy orders.
- Custom status validation, immutable slugs, protected reassignment and orphan recovery.
- Shared admin navigation, active email-template badges and clearer order action buttons.
- Separate styling controls for table headers, products, totals, downloads and logo alignment.
- Consolidated email template resolution while preserving theme and extension overrides.
- Italian translations and WordPress 7.1 tested-up-to declaration, based on site testing.
-
Fixed:
-
Status email sends and manual resends no longer report success when the mail transport rejects the message.
- Reassignment loops without progress and deletion after incomplete order reassignment.
- Overbroad SQL wildcard matching during uninstall cleanup.
- Strengthened per-order permission checks for tracking updates, status changes and manual email resends.
1.0.9
-
Fix:
-
Restored and extended "Resend current status email" visibility in the order detail screen
- Resend now supports configured custom-status emails, custom-status WooCommerce fallbacks, and supported WooCommerce customer status emails
- Sanitized custom email CSS before saving and rendering to reduce unsafe CSS/script injection risk
- Added cached order-status usage counts in the status admin screen to avoid repeated live count queries on large stores
- Moved the main email resend runtime guard from global variables into an isolated runtime class
- Updated and recompiled the Italian translation files
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.