πŸ“– Documentation

Traceify – Order Tracking
for WooCommerce

A branded order tracking page, one-click WhatsApp updates, estimated delivery dates and HTML status emails. No API, no monthly fee.

● Version 1.0.1 ● WooCommerce 7.0+ ● WordPress 6.0+ ● HPOS Compatible ● GPL-2.0 Free
01 β€” Overview

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.

🧭Branded Tracking PageVisual timeline (Placed β†’ Processing β†’ Shipped β†’ Delivered), order summary, shipping address and customer notes.
πŸ’¬One-Click WhatsAppA WhatsApp column on the orders list and a meta box on each order. Uses free wa.me links β€” no Business API.
πŸ“…Estimated DeliveryAuto-calculated date range from processing and shipping days, with optional weekend exclusion.
βœ‰οΈBranded EmailsHTML status emails with per-status toggles and custom subject lines. Shipped is on by default.
βœ…
Order lookup requires both the order number and the billing email, which prevents order enumeration.
02 β€” Requirements

Requirements

RequirementMinimumTested up to
WordPress6.07.1
WooCommerce7.09.9
PHP7.4β€”
⚠️
WooCommerce must be active first. If it is missing, Traceify refuses to activate and shows an error.
03 β€” Getting Started

Installation

1
Upload the plugin
Go to Plugins β†’ Add New β†’ Upload Plugin, choose traceify-for-woocommerce.zip and click Install Now.
2
Activate
On activation, Traceify creates a Track Your Order page containing the [traceify_tracker] shortcode and saves default settings.
3
Open settings
Go to WooCommerce β†’ Traceify. A red dot shows on the menu until you first open it.
4
Brand it
On the General tab set your store name, brand color and logo URL.
5
Add your WhatsApp number
On the WhatsApp tab enter the number with country code, digits only (for example 8801712345678), then save.
04 β€” Reference

File Structure

traceify-for-woocommerce/ β”œβ”€β”€ traceify-for-woocommerce.php ← Main file (headers, constants, boot) β”œβ”€β”€ uninstall.php ← Removes all data on delete β”œβ”€β”€ readme.txt β”œβ”€β”€ admin/ β”‚ β”œβ”€β”€ class-trcfy-admin.php ← Menu, settings, orders column, meta box β”‚ └── views/settings-page.php β”œβ”€β”€ includes/ β”‚ β”œβ”€β”€ class-trcfy-core.php ← Loader β”‚ β”œβ”€β”€ class-trcfy-installer.php ← Activation, defaults, uninstall β”‚ β”œβ”€β”€ class-trcfy-order-tracker.php ← Lookup & timeline β”‚ β”œβ”€β”€ class-trcfy-whatsapp.php ← wa.me links & placeholders β”‚ β”œβ”€β”€ class-trcfy-delivery-estimator.php β”‚ └── class-trcfy-email-notifier.php β”œβ”€β”€ public/ β”‚ β”œβ”€β”€ class-trcfy-public.php ← Shortcode & assets β”‚ └── views/tracking-page.php β”œβ”€β”€ templates/email-notification.php └── assets/ css/admin.css Β· css/public.css Β· js/admin.js Β· js/public.js
05 β€” Features

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 statusTimeline step
pending Β· on-hold1 β€” Order Placed
processing2 β€” Processing
shipped3 β€” Shipped
completed4 β€” Delivered
cancelled Β· refunded Β· failedSingle special step
πŸ’‘
WooCommerce has no built-in shipped status. The Shipped step and Shipped email work when a shipping plugin (or your own code) registers a status with that slug.
06 β€” Features

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

PlaceholderReplaced 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
βœ…
Templates exist for Pending, Processing, On Hold, Shipped, Completed and Cancelled. If a status has no template, the Processing template is used.
07 β€” Features

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:

// min date order date + processing days + min shipping days // max date order date + processing days + max shipping days // weekends are skipped when "Exclude weekends" is on

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.

08 β€” Features

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.

StatusDefaultReason
ShippedonWooCommerce has no default email for it
Processing Β· Completed Β· On Hold Β· CancelledoffWooCommerce already sends these

Subjects accept the same placeholders as WhatsApp messages. Leave a subject blank to use the built-in default.

09 β€” Developer

Shortcode

Place the tracking form on any page or post. It takes no attributes.

[traceify_tracker]

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]' );.

10 β€” Reference

All Settings

Each setting is a separate WordPress option prefixed trcfy_. Read one with get_option( 'trcfy_edd_processing_days', 1 ).

OptionDefaultDescription
trcfy_brand_color#7C3AEDBrand color for the page and emails
trcfy_store_namesite nameName shown in messages and emails
trcfy_brand_logo_url""Logo for the tracking page and emails
trcfy_tracking_page_idautoPage holding the shortcode
trcfy_wa_number""Your WhatsApp number, digits only with country code
trcfy_wa_show_customer_btnyesShow the chat button on the tracking page
trcfy_wa_customer_btn_labelChat with us on WhatsAppButton label
trcfy_wa_msg_{status}presetTemplate per status: pending processing on-hold shipped completed cancelled
trcfy_edd_enabledyesEnable delivery estimates
trcfy_edd_processing_days1Preparation days (0–30)
trcfy_edd_min_ship_days2Minimum transit days (1–60)
trcfy_edd_max_ship_days5Maximum transit days (1–60)
trcfy_edd_exclude_weekendsyesSkip Saturday and Sunday
trcfy_email_enabledyesMaster email toggle
trcfy_email_enabled_{status}shipped: yesPer-status toggle for processing on-hold shipped completed cancelled
trcfy_email_subject_{status}""Custom subject; blank uses the default
11 β€” Developer

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

HookUsed for
woocommerce_order_status_processingCalculate and store the delivery estimate
woocommerce_checkout_order_createdEstimate for orders created already in Processing
woocommerce_order_status_{status}Send branded emails (priority 20)
before_woocommerce_initDeclare HPOS and Cart/Checkout Blocks compatibility

Order meta

Meta keyValue
_trcfy_edd_minEarliest delivery date, Y-m-d
_trcfy_edd_maxLatest delivery date, Y-m-d
⚠️
Caching plugins should not cache the tracking page. The form nonce is generated per page load, and a cached copy can trigger β€œSecurity check failed”.
12 β€” FAQ

Frequently Asked Questions

Does it need the WhatsApp Business API?
No. Traceify uses the free wa.me deep link. You tap Send in your own WhatsApp, so there is no API key, approval or cost.
Is it HPOS compatible?
Yes. Traceify reads orders through WooCommerce CRUD and declares compatibility with High-Performance Order Storage and Cart/Checkout Blocks.
Can I use the shortcode on another page?
Yes. Add [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?
No. Only Shipped is on by default. Enable the others only if you prefer Traceify's template over WooCommerce's.
How is the delivery date calculated?
Order date plus processing days plus your minimum and maximum shipping days. Weekends are skipped when the option is enabled.
Is customer data safe?
Lookups need the order number and matching billing email. Inputs are sanitized, output is escaped, the form is nonce-protected and settings require the manage_woocommerce capability.
What happens when I delete the plugin?
All Traceify options and the auto-created tracking page are removed. Order meta for delivery dates stays on your orders.
Is it translation ready?
Yes. Strings use the text domain traceify.
13 β€” Changelog

Changelog

v1.0.1October 21, 2026Feature Update
  • 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_couriers filter β€” 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
v1.0.0September 5, 2026Initial Release
  • 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