{"id":245468,"date":"2025-10-01T13:23:29","date_gmt":"2025-10-01T13:23:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/order-status-tracking-emails-for-woocommerce\/"},"modified":"2026-06-23T07:34:58","modified_gmt":"2026-06-23T07:34:58","slug":"order-status-tracking-emails-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/es.wordpress.org\/plugins\/order-status-tracking-emails-for-woocommerce\/","author":23341737,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.9","stable_tag":"1.0.9","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Order Status & Tracking Emails for WooCommerce","header_author":"imbro","header_description":"Custom order statuses, tracking fields, and transactional emails for WooCommerce.","assets_banners_color":"422a74","last_updated":"2026-06-23 07:34:58","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/paypalme\/imbrogroup","header_plugin_uri":"","header_author_uri":"https:\/\/www.luciasoscia.com\/","rating":0,"author_block_rating":0,"active_installs":10,"downloads":803,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"imbro","date":"2025-10-02 07:26:19"},"1.0.1":{"tag":"1.0.1","author":"imbro","date":"2025-10-22 14:30:37"},"1.0.2":{"tag":"1.0.2","author":"imbro","date":"2025-10-22 17:07:28"},"1.0.3":{"tag":"1.0.3","author":"imbro","date":"2025-12-24 13:55:08"},"1.0.4":{"tag":"1.0.4","author":"imbro","date":"2026-01-15 12:53:05"},"1.0.5":{"tag":"1.0.5","author":"imbro","date":"2026-04-23 22:07:49"},"1.0.6":{"tag":"1.0.6","author":"imbro","date":"2026-04-23 22:49:25"},"1.0.7":{"tag":"1.0.7","author":"imbro","date":"2026-05-31 23:19:27"},"1.0.8":{"tag":"1.0.8","author":"imbro","date":"2026-06-16 20:30:49"},"1.0.9":{"tag":"1.0.9","author":"imbro","date":"2026-06-23 07:34:58"}},"upgrade_notice":{"1.0.9":"<p>Maintenance release with safer email CSS handling, cached status usage counts, updated Italian translations, and restored manual status email resend support.<\/p>","1.0.8":"<p>Safer custom status lifecycle management and configurable WooCommerce fallback email mapping for custom statuses.<\/p>","1.0.7":"<p>UI and maintenance release with improved email-style editing workflow and additional Plugin Check fixes.<\/p>","1.0.6":"<p>Maintenance release with Plugin Check compliance fixes, safer data handling, and per-product tracking UX refinements.<\/p>","1.0.5":"<p>HPOS compatibility fixes, per-product tracking workflow, and improved shipping method icon management.<\/p>","1.0.1":"<p>First stable release of Order Status &amp; Tracking Emails for WooCommerce.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3371462,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3371462,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3371462,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3371462,"resolution":"1","location":"assets","locale":"","width":1280,"height":308},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3371462,"resolution":"2","location":"assets","locale":"","width":1280,"height":561},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3371462,"resolution":"3","location":"assets","locale":"","width":1664,"height":577},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3371462,"resolution":"4","location":"assets","locale":"","width":1280,"height":568},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3371462,"resolution":"5","location":"assets","locale":"","width":496,"height":881},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3426897,"resolution":"6","location":"assets","locale":"","width":1280,"height":660},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3382813,"resolution":"7","location":"assets","locale":"","width":1280,"height":814}},"screenshots":[]},"plugin_section":[],"plugin_tags":[22187,267,21484,550,286],"plugin_category":[36,41,45],"plugin_contributors":[248637],"plugin_business_model":[],"class_list":["post-245468","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-status","plugin_tags-email","plugin_tags-order-status","plugin_tags-tracking","plugin_tags-woocommerce","plugin_category-analytics","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-imbro","plugin_committers-imbro"],"banners":{"banner":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/banner-772x250.png?rev=3371462","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/icon-128x128.png?rev=3371462","icon_2x":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/icon-256x256.png?rev=3371462","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/screenshot-1.png?rev=3371462","caption":""},{"src":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/screenshot-2.png?rev=3371462","caption":""},{"src":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/screenshot-3.png?rev=3371462","caption":""},{"src":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/screenshot-4.png?rev=3371462","caption":""},{"src":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/screenshot-5.png?rev=3371462","caption":""},{"src":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/screenshot-6.png?rev=3426897","caption":""},{"src":"https:\/\/ps.w.org\/order-status-tracking-emails-for-woocommerce\/assets\/screenshot-7.png?rev=3382813","caption":""}],"raw_content":"<!--section=description-->\n<p>Order Status &amp; 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.<\/p>\n\n<p>Main Features:<\/p>\n\n<p>Create and manage custom WooCommerce order statuses with colored badges and order-list action buttons.<\/p>\n\n<p>Rename WooCommerce core status labels and customize status colors without writing code.<\/p>\n\n<p>Keep custom status slugs stable after creation, with protected deletion and order reassignment tools.<\/p>\n\n<p>Recover orders assigned to orphan custom statuses left behind by old slug changes or deleted statuses.<\/p>\n\n<p>Configure custom email templates per order status, with subject, heading, intro text, extra content, footer content, and per-product tracking text.<\/p>\n\n<p>Choose a WooCommerce fallback email for each custom status when the plugin template is disabled.<\/p>\n\n<p>Add global tracking or per-product tracking to orders, including carrier selection and direct tracking links.<\/p>\n\n<p>Show tracking information in customer emails and in the customer's My Account order details.<\/p>\n\n<p>Resend the current customer status email from the order screen without changing the order status.<\/p>\n\n<p>Assign icons to carriers and control icon display in Cart, Checkout, Email, and My Account.<\/p>\n\n<p>Map WooCommerce shipping methods to carriers to show the correct icon in Cart\/Checkout labels.<\/p>\n\n<p>Use custom shipping-method icons for Cart\/Checkout when a single carrier mapping is not enough.<\/p>\n\n<p>Customize WooCommerce email styles with a live preview and send the preview to a test email address.<\/p>\n\n<p>Compatible with HPOS order screens and legacy WooCommerce order tables.<\/p>\n\n<p>Fully translatable and GPL licensed, with no third-party services required.<\/p>\n\n<p>Perfect for store owners who want full control over order management and customer notifications.<\/p>\n\n<!--section=installation-->\n<p>Upload the order-status-tracking-emails-for-woocommerce folder to \/wp-content\/plugins\/ or install it via Plugins -&gt; Add New.<\/p>\n\n<p>Activate the plugin.<\/p>\n\n<p>Go to the OSTE Manager menu to create statuses, configure templates, carriers, icons, tracking, and email styles.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20compatible%20with%20any%20theme%3F\"><h3>Is it compatible with any theme?<\/h3><\/dt>\n<dd><p>Yes. The plugin inherits WooCommerce's native styling from your active theme.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20hpos%3F\"><h3>Is it compatible with HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin supports WooCommerce HPOS order screens and the legacy order table.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20custom%20statuses%3F\"><h3>Can I translate custom statuses?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20it%20replace%20standard%20woocommerce%20emails%3F\"><h3>Does it replace standard WooCommerce emails?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"where%20do%20customers%20see%20the%20tracking%20info%3F\"><h3>Where do customers see the tracking info?<\/h3><\/dt>\n<dd><p>Customers can see tracking information in status emails and in the My Account order details page.<\/p><\/dd>\n<dt id=\"can%20i%20add%20more%20than%20one%20tracking%20number%20to%20the%20same%20order%3F\"><h3>Can I add more than one tracking number to the same order?<\/h3><\/dt>\n<dd><p>Yes. You can use per-product tracking mode and assign a carrier, tracking code, and tracking link to each product row.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20delete%20a%20custom%20status%20used%20by%20existing%20orders%3F\"><h3>What happens if I delete a custom status used by existing orders?<\/h3><\/dt>\n<dd><p>The plugin shows how many orders use that status and requires you to move those orders to another WooCommerce status before deletion.<\/p><\/dd>\n<dt id=\"can%20i%20recover%20orders%20assigned%20to%20old%20deleted%20custom%20statuses%3F\"><h3>Can I recover orders assigned to old deleted custom statuses?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"can%20i%20change%20a%20custom%20status%20slug%20after%20creating%20it%3F\"><h3>Can I change a custom status slug after creating it?<\/h3><\/dt>\n<dd><p>No. The slug is locked after creation to keep existing orders valid. You can still change the status label and color.<\/p><\/dd>\n<dt id=\"can%20i%20test%20email%20styling%20before%20sending%20real%20customer%20emails%3F\"><h3>Can I test email styling before sending real customer emails?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"can%20i%20resend%20the%20current%20order%20status%20email%20manually%3F\"><h3>Can I resend the current order status email manually?<\/h3><\/dt>\n<dd><p>Yes. The order screen can resend customer-facing status emails for supported WooCommerce core statuses and plugin custom statuses without changing the order status.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fix:<\/li>\n<li>Restored and extended \"Resend current status email\" visibility in the order detail screen<\/li>\n<li>Resend now supports configured custom-status emails, custom-status WooCommerce fallbacks, and supported WooCommerce customer status emails<\/li>\n<li>Sanitized custom email CSS before saving and rendering to reduce unsafe CSS\/script injection risk<\/li>\n<li>Added cached order-status usage counts in the status admin screen to avoid repeated live count queries on large stores<\/li>\n<li>Moved the main email resend runtime guard from global variables into an isolated runtime class<\/li>\n<li>Updated and recompiled the Italian translation files<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fix:<\/li>\n<li>Locked custom status slugs after creation to prevent existing orders from becoming orphaned when a status label is renamed<\/li>\n<li>Added protected custom status deletion: orders using the status must be reassigned to another WooCommerce status before deletion<\/li>\n<li>Added client-side validation and visible admin notices when deleting a custom status without choosing the replacement status<\/li>\n<li>Prevented customer emails from being sent during custom status reassignment on deletion<\/li>\n<li>Added orphan custom status recovery tool to move orders from unregistered old statuses to a valid WooCommerce status<\/li>\n<li><p>Fixed frontend custom tracking message visibility so it appears only when carrier, tracking code, and tracking link are available<\/p><\/li>\n<li><p>Update:<\/p><\/li>\n<li>Added order usage summary before deleting a custom status, including the affected order count<\/li>\n<li>Added per-custom-status WooCommerce fallback email mapping when \"Manage email with plugin?\" is disabled<\/li>\n<li>Live preview now respects the selected fallback email mapping, including the \"No fallback email\" case<\/li>\n<li>Added Core\/Custom badges to the email template status list for clearer status identification<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Fix:<\/li>\n<li>Plugin Check hardening and escaping refinements<\/li>\n<li>Minor reliability fixes for per-product tracking save and uninstall cleanup<\/li>\n<li>Live preview now respects the \"Enable custom email styles\" toggle (disabled = default WooCommerce style preview)<\/li>\n<li>Fixed custom-status email trigger: when \"Manage email with plugin?\" is disabled, plugin custom template is no longer sent<\/li>\n<li><p>Fixed preview behavior for custom statuses with plugin template disabled (uses WooCommerce fallback template)<\/p><\/li>\n<li><p>Update:<\/p><\/li>\n<li>Email Style Settings page redesigned with two-column layout and sticky live preview<\/li>\n<li>Added \"Send Test Email\" option in Live Preview to send the current preview to a chosen email address<\/li>\n<li>Added fallback note in preview (shows the WooCommerce fallback status\/template used)<\/li>\n<li>WordPress 7.0 compatibility<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fix:<\/li>\n<li>Escaped per-product tracking icon output in order item tracking links<\/li>\n<li>Added missing <code>translators:<\/code> comment for placeholder-based i18n string<\/li>\n<li>Added nonce verification and safer raw input handling for per-item tracking save (<code>woocommerce_saved_order_items<\/code>)<\/li>\n<li>Hardened uninstall cleanup for order-item tracking meta and aligned DB calls with Plugin Check expectations<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fix:<\/li>\n<li>Restored custom action buttons and inline tracking fields on WooCommerce Orders screen (HPOS \/ wc-orders)<\/li>\n<li><p>Fixed custom-status email subject fallback to correctly resolve placeholders (<code>{site_title}<\/code>, <code>{order_number}<\/code>)<\/p><\/li>\n<li><p>Update:<\/p><\/li>\n<li>Added tracking mode per order: Global or Per product<\/li>\n<li>Added toggle UI for tracking mode in orders list and order detail<\/li>\n<li>Added per-product tracking fields in order detail (carrier, tracking code, tracking link)<\/li>\n<li>Added per-product tracking output under each product line in customer emails and My Account order details<\/li>\n<li>Disabled the global custom tracking message on My Account when per-product tracking mode is active (avoids inconsistent single-tracking output)<\/li>\n<li>Added dedicated email CSS style controls for per-product tracking blocks<\/li>\n<li>Added orders list summary in per-product mode (tracked products\/total products)<\/li>\n<li>Added optional per-status override template for per-product tracking text<\/li>\n<li>Added \"Resend current status email\" action for custom statuses (without changing order status)<\/li>\n<li>Added custom icon per shipping method for cart\/checkout (with media library picker)<\/li>\n<li>Added toggle to enable shipping-method custom icons (default OFF for backward compatibility)<\/li>\n<li>Kept carrier mapping as fallback when a method custom icon is not set<\/li>\n<li>Refactored admin logic into dedicated modules\/files and moved inline JS to <code>assets\/js\/admin.js<\/code><\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fix:<\/li>\n<li>Restore live preview updates for email styles (color picker updates immediately)<\/li>\n<li>Email header respects site-name toggle and compacts when hidden<\/li>\n<li>Email address titles forced to new line<\/li>\n<li>Tracking message now shown only in My Account order details, hidden on order received page.<\/li>\n<li><p>Replace [tracking] placeholder correctly in carrier links<\/p><\/li>\n<li><p>Update:<\/p><\/li>\n<li>Admin UI refresh with brand styling and toggle sliders<\/li>\n<li>Add preset carrier dropdown with international + Italian lists<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix:<\/li>\n<li>Resolve Plugin Check warnings (prefixed globals, functions, and uninstall queries)<\/li>\n<li>Tested up to 6.9<\/li>\n<li>Disable custom email styles by default<\/li>\n<li>Tracking message hidden on order received page<\/li>\n<li>Email header respects site-name toggle and compacts when hidden<\/li>\n<li><p>Email address titles forced to new line<\/p><\/li>\n<li><p>Update:<\/p><\/li>\n<li>Admin UI refresh with brand styling and toggle sliders<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix:<\/li>\n<li>When uninstalling, orders with custom statuses return to on-hold<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix:<\/li>\n<li>Compatibility with php 8.2<\/li>\n<li>Improved and streamlined CSS submission for email templates<\/li>\n<li><p>Small corrections<\/p><\/li>\n<li><p>Update:<\/p><\/li>\n<li>Viewing the Order Status Template Editor in Accordion<\/li>\n<li>Added live email edit preview<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p>Initial public release.<\/p>","raw_excerpt":"Order Status &amp; Tracking Emails for WooCommerce lets you create custom order statuses, send emails, and add tracking info.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/245468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=245468"}],"author":[{"embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/imbro"}],"wp:attachment":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=245468"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=245468"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=245468"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=245468"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=245468"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=245468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}