What is Traceify?
Traceify replaces WooCommerce's plain order status lookup with a branded tracking page, and gives store owners simple tools to keep customers updated β WhatsApp messages, delivery estimates and branded emails.
Assets load only on the tracking page. The frontend uses vanilla JavaScript with no jQuery and no external requests.
Requirements
| Requirement | Minimum | Tested up to |
|---|---|---|
| WordPress | 6.0 | 7.1 |
| WooCommerce | 7.0 | 9.9 |
| PHP | 7.4 | β |
Installation
traceify-for-woocommerce.zip and click Install Now.[traceify_tracker] shortcode and saves default settings.8801712345678), then save.File Structure
Tracking Page
Customers enter their order number and billing email. If both match, they see the order's status timeline, estimated delivery, items with thumbnails, totals, shipping method, shipping address and any customer notes you added.
Timeline mapping
| WooCommerce status | Timeline step |
|---|---|
pending Β· on-hold | 1 β Order Placed |
processing | 2 β Processing |
shipped | 3 β Shipped |
completed | 4 β Delivered |
cancelled Β· refunded Β· failed | Single special step |
shipped status. The Shipped step and Shipped email work when a shipping plugin (or your own code) registers a status with that slug.WhatsApp Updates
Traceify builds free wa.me links with a pre-filled message. Clicking opens WhatsApp on your device; you tap Send. Nothing is sent automatically.
- Orders list β a π¬ column with a π² button per order.
- Order detail β a WhatsApp Update meta box with the customer phone and message preview.
- Tracking page β an optional customer button to chat with your store.
Message placeholders
| Placeholder | Replaced with |
|---|---|
| {customer_name} | Billing first name |
| {order_number} | Order number |
| {order_status} | Status label |
| {order_total} | Formatted total (plain text) |
| {store_name} | Store display name from settings |
| {tracking_url} | Permalink of the tracking page |
Estimated Delivery
When an order moves to Processing (or is created already in Processing), Traceify stores a delivery date range on the order. The dates are calculated from the order date:
The range shows on the tracking page with a countdown such as β3 days remainingβ, and in emails. Dates already stored on an order are never overwritten.
Email Notifications
Branded HTML emails are sent on status change at priority 20, after WooCommerce's own emails. They use your brand color and logo, list the items, and link to the tracking page.
| Status | Default | Reason |
|---|---|---|
| Shipped | on | WooCommerce has no default email for it |
| Processing Β· Completed Β· On Hold Β· Cancelled | off | WooCommerce already sends these |
Subjects accept the same placeholders as WhatsApp messages. Leave a subject blank to use the built-in default.
Shortcode
Place the tracking form on any page or post. It takes no attributes.
Stylesheet and script load only on the assigned tracking page or on any page whose content contains the shortcode. In a theme template use echo do_shortcode( '[traceify_tracker]' );.
All Settings
Each setting is a separate WordPress option prefixed trcfy_. Read one with get_option( 'trcfy_edd_processing_days', 1 ).
| Option | Default | Description |
|---|---|---|
| trcfy_brand_color | #7C3AED | Brand color for the page and emails |
| trcfy_store_name | site name | Name shown in messages and emails |
| trcfy_brand_logo_url | "" | Logo for the tracking page and emails |
| trcfy_tracking_page_id | auto | Page holding the shortcode |
| trcfy_wa_number | "" | Your WhatsApp number, digits only with country code |
| trcfy_wa_show_customer_btn | yes | Show the chat button on the tracking page |
| trcfy_wa_customer_btn_label | Chat with us on WhatsApp | Button label |
| trcfy_wa_msg_{status} | preset | Template per status: pending processing on-hold shipped completed cancelled |
| trcfy_edd_enabled | yes | Enable delivery estimates |
| trcfy_edd_processing_days | 1 | Preparation days (0β30) |
| trcfy_edd_min_ship_days | 2 | Minimum transit days (1β60) |
| trcfy_edd_max_ship_days | 5 | Maximum transit days (1β60) |
| trcfy_edd_exclude_weekends | yes | Skip Saturday and Sunday |
| trcfy_email_enabled | yes | Master email toggle |
| trcfy_email_enabled_{status} | shipped: yes | Per-status toggle for processing on-hold shipped completed cancelled |
| trcfy_email_subject_{status} | "" | Custom subject; blank uses the default |
Hooks & Data
Traceify 1.0.0 does not add its own action or filter hooks and has no AJAX endpoints. The tracking form is a plain GET request protected by a nonce, and all other actions happen through WooCommerce hooks.
WooCommerce hooks Traceify uses
| Hook | Used for |
|---|---|
| woocommerce_order_status_processing | Calculate and store the delivery estimate |
| woocommerce_checkout_order_created | Estimate for orders created already in Processing |
| woocommerce_order_status_{status} | Send branded emails (priority 20) |
| before_woocommerce_init | Declare HPOS and Cart/Checkout Blocks compatibility |
Order meta
| Meta key | Value |
|---|---|
| _trcfy_edd_min | Earliest delivery date, Y-m-d |
| _trcfy_edd_max | Latest delivery date, Y-m-d |
Frequently Asked Questions
Does it need the WhatsApp Business API?
wa.me deep link. You tap Send in your own WhatsApp, so there is no API key, approval or cost.Is it HPOS compatible?
Can I use the shortcode on another page?
[traceify_tracker] to any page, then select that page under Tracking Page in the settings so emails and messages link to it.Will emails duplicate WooCommerce's emails?
How is the delivery date calculated?
Is customer data safe?
manage_woocommerce capability.What happens when I delete the plugin?
Is it translation ready?
traceify.Changelog
- New: Shipment tracking β courier and tracking number per order, with a βTrack shipmentβ link
- New: Built-in couriers β DHL, FedEx, UPS, USPS and Steadfast, plus one custom courier with your own tracking URL
- New: Tracking details β shown on the customer tracking page and in branded emails
- New: WhatsApp placeholders β
{tracking_number},{tracking_link}and{courier_name} - New: Auto-mark as Shipped β optional; moves a Processing order to Shipped when a tracking number is first added
- New: Built-in Shipped status β registered by Traceify, unless another plugin already provides
wc-shipped - New:
trcfy_couriersfilter β add or change couriers in code - Changed: Tracking form β the lookup no longer uses a nonce, so it works on cached pages. It still needs the order number and the matching billing email
- Changed: Requirements β WooCommerce is now declared as a required plugin
- Fixed: Text domain β now matches the plugin slug,
traceify-for-woocommerce - Fixed: Fatal error β on the front end when WooCommerce was not active
- Fixed: Asset loading β tracking page CSS and JS loaded on every page when no tracking page was selected
- Branded tracking page β visual timeline, order summary and customer notes
- WhatsApp updates β orders list column, order meta box and per-status templates
- Estimated delivery β auto-calculated with business-day support
- Email notifications β branded HTML emails with per-status toggles and subjects
- HPOS and Blocks compatible
- Clean uninstall β removes options and the tracking page