Vanquish Shipping Tracking for WooCommerce
Vanquish Shipping Tracking for WooCommerce
Description
Vanquish Shipping Tracking for WooCommerce lets you attach a tracking number, a shipping carrier and a dispatch date to each WooCommerce order. The tracking information is shown to your customers in the order emails and on the order details / My Account page, with a direct link to the carrier’s tracking page — the link already has the tracking code filled in whenever the carrier supports it.
Free features
- Assign a carrier, tracking number and dispatch date to any order.
- 1,600+ predefined carriers worldwide, each with a direct tracking link.
- Narrow that list to the carriers you actually ship with, so the dropdown is three entries instead of 1,600.
- Define your own carriers, with a tracking URL template that supports tracking code, postcode and country placeholders.
- Tracking details inside the standard WooCommerce order emails.
- Tracking details on the order details / My Account page.
- Two fully editable tracking messages — one for the order page, one for the emails — with a visual editor and placeholders for the tracking number, carrier name, tracking link, order number, order page and dispatch date.
- Tracking column in the admin orders list.
- A shortcode that lets customers look up their own tracking with an order number and billing email, rate limited:
[vanstr_tracking_form]. - Choose which order statuses show the tracking, whether it goes into the emails, and where it appears — before or after the order table, separately for the emails and the order page.
- Optional default carrier, preselected on orders that have no tracking yet.
- Optionally start the dispatch date on today’s date, for shops that enter the tracking on the day they ship.
- An order note every time the tracking is added or changed, timestamped by WooCommerce — a record of when each parcel was booked, kept where your customers never see it.
- Mark an order as completed from the order screen with one switch, right under the tracking. It appears on orders that are not completed yet, for shops that complete an order as soon as the tracking is in.
- HPOS (High-Performance Order Storage) compatible.
- A documented function,
vanstr_set_tracking(), for attaching tracking from your own code when your warehouse software or carrier plugin books the parcel. - Multilingual ready: with WPML or Polylang active, every customer-facing message can be entered in each language, right on the plugin’s settings pages.
- Migrates your settings and each order’s tracking automatically from the legacy “WooCommerce Shipping Tracking” (CodeCanyon) plugin.
Premium features
- In-site shipping timeline — show the live shipment status (picked up, in transit, out for delivery, delivered…) as a timeline on the order page, drawn by your own site rather than embedded from the provider. Bring your own API key from AfterShip, TrackingMore or track123; requests go straight from your site to the service you chose. Includes a one-click connection test.
- Multiple shipments per order — each parcel with its own carrier, tracking number, dispatch date, note and the products it contains.
- Per-product tracking — when a shipment is tied to specific products, its tracking link is shown next to those products on the order page and in the emails (can be turned off).
- Shipping estimates for products — show an estimated shipping (dispatch) date on the product page, cart, checkout, order and emails, computed from rules you set per product, category or tag (shipping days, cut-off hour, processing days, holidays, optional date range), with a configurable out-of-stock text.
- Delivery estimates for shipping methods — attach a “3–5 days” style estimate to each shipping method, shown with the method in the cart and at checkout. Works in both the block and the classic checkout.
- Requested delivery date — let customers pick a preferred delivery date (and an optional merchant-defined time slot) at checkout, within the window you configure (lead time, latest date, excluded weekdays and dates). Works in both the block and the classic checkout; editable from the admin order screen.
- Bulk import — load tracking codes from a CSV (one row per shipment, auto-detected delimiter) with a progress bar, plus an optional scheduled import that fetches a CSV from a URL you configure.
- Quick assign — fill in tracking for many orders from a single screen, with filters, per-row notifications and an optional status change after saving.
- “Order shipped” notification email — a real WooCommerce email, configured under WooCommerce Settings Emails like any other.
- Automatic shipment monitoring — check your tracked shipments on a schedule and act on what changes. Tell customers when their parcel is out for delivery, ready for pickup or delivered, and be alerted yourself when one reports a problem or stops moving for a number of days you choose. Each event is announced once per shipment, delivered parcels are never polled again, and a “check now” button runs a pass immediately.
External services
The free version does not send any data to external services. It only builds direct links to the carriers’ own tracking pages, which the customer opens in their browser.
The premium version can connect to external services. Both are configured and controlled entirely by you:
- Tracking providers (in-site timeline). When you enable the shipping timeline and select a provider, the plugin sends the order’s tracking number and carrier code to that provider’s API to retrieve the shipment status, using your own account’s API key. No data is sent until you enter an API key and select the provider. Supported providers:
- AfterShip — https://www.aftership.com/ (terms, privacy)
- TrackingMore — https://www.trackingmore.com/ (terms, privacy)
- track123 — https://www.track123.com/ (terms, privacy)
- Scheduled CSV import. If you enable the scheduled bulk import, the plugin periodically downloads a CSV file from the URL that you configure (typically a feed published by your own warehouse or fulfilment service). No data is sent to that URL; the file is only fetched.
Installation
- Upload the plugin files to the
/wp-content/plugins/vanquish-shipping-tracking-for-woocommercedirectory, or install the plugin through the WordPress plugins screen. - Activate the plugin through the ‘Plugins’ screen in WordPress.
- Make sure WooCommerce is installed and active.
- Configure the plugin from the “Shipping Tracking” menu.
Screenshots

Assign a carrier, a tracking number and a dispatch date to any order, straight from the order screen.

The tracking details as your customer sees them on the order details page.

Choose which of the 1,600+ predefined carriers are offered when assigning tracking to an order.

Define your own carriers, with a tracking URL template supporting the tracking code, postcode and country.

Every customer-facing message is editable, with placeholders for the tracking number, carrier name and tracking link.

Premium: the live shipment status shown as a timeline on the order page, with older events folded behind a toggle.

Premium: per-product tracking and estimated shipping date, shown next to each product of the order.

Premium: estimated shipping dates and per-method delivery estimates in the classic checkout.

Premium: the same estimates in the WooCommerce block checkout.

Premium: set a delivery estimate for each shipping method of each shipping zone.
Faq
Yes. The free version links to the carriers’ tracking pages and needs no external account or API key. In the premium version, the in-site timeline is the only feature that uses a tracking service — with your own API key.
Yes. The [vanstr_tracking_form] shortcode puts a small form on any page: the customer enters an order number and the billing email of that order, and gets the tracking of that order back, using the message you configured. Failed attempts are rate limited, so the form cannot be used to fish for order numbers. An optional title attribute adds a heading, as in [vanstr_tracking_form title="Track your order"].
Yes. The checkout features (requested delivery date, delivery estimates on shipping methods, per-product shipping estimates) work in both the block checkout and the classic (shortcode) checkout.
Yes, the plugin is fully compatible with HPOS and with the classic order storage.
No. Your orders keep their tracking: carrier, tracking number and dispatch date are converted the first time each order is loaded, so there is no bulk operation to run. Custom carriers, and the extra shipments and notes if you used them, come across too.
Your settings are migrated as well: the tracking messages (including every language, on a WPML or Polylang site) and the order statuses the tracking is shown on. The placeholders are the same in both plugins, so your wording carries over unchanged. Anything that has no equivalent in the new plugin — most of the old options page consisted of workarounds this plugin no longer needs — is simply left behind, and the advanced features have their own settings pages, which you fill in yourself.
The migration never overwrites anything you have already configured here. It does, however, clear the old plugin’s data as it converts each piece — the custom companies once they have been imported, and each order’s old tracking fields once that order has been converted — because that is how it knows not to run twice. Your messages and the order-status setting are left untouched.
So nothing is lost, but going back to the old plugin is not clean: it would find its custom companies gone and no tracking on the orders you had opened. If you want a way back, take a database backup before you start.
Yes, with vanstr_set_tracking():
vanstr_set_tracking( $order_id, '1Z999AA10123456784', 'ups', '2026-09-09' );
The arguments are the order (an id or a WC_Order), the tracking number, the carrier, and an optional dispatch date as Y-m-d. For the carrier, use the slug shown in brackets under Shipping Tracking Shipping companies, or the id of one of your own custom companies. A date in any other format is refused rather than stored in a shape the plugin cannot read back, and omitting it leaves whatever the order already had.
Call it any time after plugins_loaded, and wrap it in function_exists( 'vanstr_set_tracking' ) so your code survives the plugin being deactivated. It returns true when the tracking was written, false when WooCommerce is unavailable or the order does not exist. Each call also leaves an order note, so shipments booked by an integration leave the same timestamped trail as the ones entered by hand.
Yes. Every email is a standard WooCommerce email, so you edit it under WooCommerce Settings Emails, exactly like the ones WooCommerce sends itself: subject, heading, extra content, the enable switch and your store’s branding. The plugin adds “Order shipped”, “Shipment status update” and “Shipment needs attention (admin)” (the last one goes to you, not the customer, and lets you set the recipient).
The tracking block inside those emails comes from the message you write in Shipping Tracking Messages, where you can use placeholders such as the tracking number, the carrier name, the tracking link and the products carried by that shipment.
On top of that, the two monitoring emails accept placeholders in their Subject, Email heading and Additional content fields: {order_number}, {tracking_number}, {carrier} and {associated_products}, plus {status} on the status update and {issue} on the admin alert. So a subject like Your {carrier} parcel: {status} or an extra line saying This parcel contains: {associated_products} works without touching any template.
They stay. Custom carriers, messages, enabled carriers and — in the premium version — estimate rules, providers and API keys all survive an uninstall and are still there after a reinstall, and the tracking saved on your orders is never touched. If you do want a clean slate, Shipping Tracking Settings has a “Reset settings” action that clears the configuration on purpose, behind a confirmation. It leaves the tracking on your orders alone.
The plugin ships translation-ready (POT file included). On top of that, if WPML or Polylang is active, the settings pages show one input per language for all the customer-facing text (messages, labels, estimates), so you can translate them without extra tools.
Reviews
Great for shipping tracking
By Mark3121 on August 27, 2026
Can't fault it, any changes needed have been added super quick. Nice
Nice product. Excellent Support!
By enumis on August 17, 2026
I've been using Vanquish Shipping Tracking for WooCommerce on my store for a while now, and it's been a solid, reliable addition - tracking numbers sync smoothly and customers get clear visibility into their orders without extra hassle on my end.
What really stands out, though, is the support. I ran into a configuration issue specific to my setup, and the response was fast, knowledgeable, and solved the problem rather than just pointing to generic documentation. It's rare to get that level of attentiveness from a plugin developer these days. Highly recommended, both for the product itself and the team behind it.
Incredible Carrier Options and Super Easy Setup!
By svazz on July 23, 2026
Finding a plugin that supports all my local and international shipping carriers used to be a nightmare. This plugin has over 1,600 predefined carriers, and everything links up perfectly for the customer. The interface is clean, professional, and took me minutes to configure. Highly recommended for any global store!
Fantastic plugin with endless carrier options!
By demongib on July 21, 2026
This is the third plugin made by Vanquish that I've bought for my WooCommerce e-commerce website!
I'm really impressed by how user-friendly and intuitive the interface is. It allows you to track shipments through almost any carrier worldwide without any complex setup. It keeps everything simple, clean, and professional. 5 stars!
Changelog
1.0.16
- New:
vanstr_set_tracking(), a documented function for attaching tracking to an order from your own code — for shops whose warehouse software or carrier plugin books the parcel. It was already possible by calling an internal class, but that tied an integration to a class name we might refactor one day; this signature is the one that stays. See the FAQ for an example. - The “Support Forum” entry in the plugin menu now sends premium customers to our own support page. Nothing changes in the free version, where it still points at the WordPress.org forum.
1.0.15
- New: an order note whenever the tracking is added, changed or removed. WooCommerce timestamps its own notes to the minute, so this is a record of when each parcel was booked — asked for by a merchant who cross-references it with their security-camera footage. A correction adds a second note instead of rewriting the first, so the trail keeps both moments, and saving an order without touching the tracking adds nothing.
- New: an option to start the dispatch date on today’s date, under Shipping Tracking > Settings. The legacy CodeCanyon plugin had this (“Automatic dispatch date field filling”) and the rewrite had lost it; if you migrate with it turned on, it comes across. Off by default, and it only fills the box — nothing is written to the order until you press Update.
1.0.14
- The Messages screen now tells you about
[vanstr_tracking_form], the shortcode that lets a customer look up their own tracking with an order number and the billing email of that order. The shortcode has been there since the first release and was written down nowhere, so the only way to find it was to read the source. - Fixed: the shipment monitoring screen sent you to an email called “Shipment needs attention”, while the one listed under WooCommerce Settings Emails is called “Shipment needs attention (admin)”.
- The plugin page now describes several things the plugin already did and never mentioned: narrowing the carrier dropdown to the carriers you actually use, choosing where the tracking appears in the emails and on the order page, all six message placeholders, and what happens to your settings when you uninstall.
1.0.13
- New: a “Mark this order as completed” switch on the order screen, right below the tracking. For a warehouse entering tracking numbers all day it replaces opening the status dropdown, finding the entry and clicking it — type the number, flick the switch, press Update. It is off on every order unless you turn on “Tick it by default” under Shipping Tracking > Settings, so it can never complete an order you only opened to look at.
- Updated the carrier list: 30 carriers added, none removed.
- The tick boxes on the settings and monitoring screens are now the same switches used elsewhere in the plugin, including the shipment notification one on the order screen.
1.0.12
- New: a default carrier. Pick one under Shipping Tracking > Shipping companies and it is already selected when you open an order that has no tracking yet — the legacy CodeCanyon plugin had this and the rewrite had lost it. It only preselects the dropdown; nothing is written to an order until you save it.
- New: a “Track this shipment” link in the order screen, next to the tracking you have saved. The orders list had one, the order itself did not.
- Fixed the migration FAQ, which claimed the old plugin’s data was never deleted. The custom companies and each converted order’s old tracking fields are in fact cleared, since that is how the migration knows it has already run.
1.0.11
- Dates in the admin now follow your own settings. The dispatch date, the extra shipments, the requested delivery date and Quick assign show the format from Settings > General > Date Format, and their calendars start on the day set in “Week starts on”. Until now those fields were drawn by the browser, so they showed the date format of the computer’s language rather than the one the shop uses — a European store on an English-language computer got 08/17/2026 and weeks starting on Sunday, with no setting anywhere that could change it.
1.0.10
- Fixed a fatal error when both the free and the Premium copies are installed. Premium lives in its own folder, so installing the free version from WordPress.org does not replace it — the two sit side by side, and activating the second one failed with “the plugin triggered a fatal error”. It now activates cleanly, and says that a second copy is installed so you can remove the one you do not want.
- The free version now says so when it finds an active Premium licence on the site. Premium and Free share the same plugin here, so installing the WordPress.org download over a Premium copy replaces it with the free build and the premium features simply disappear, with nothing to explain why. There is now a notice, and a page describing how to put Premium back.
- The “Activate Premium” page points out that activating the licence is also what delivers Premium updates, and links to the customer dashboard at its current address.
1.0.9
- Fixed: PHP 8.4 deprecation notices from CSV reading. On the order screen this produced one notice per carrier — over 1,600 of them on a single page load.
- Fixed: the estimator loaded its translations earlier than WordPress allows, which produced a “_load_textdomain_just_in_time was called incorrectly” notice on WordPress 6.7 and later.
1.0.8
- You can now choose whether the tracking appears before or after the order table, separately for the emails and for the order details page (Shipping Tracking Settings).
- Changed: in emails the tracking is now shown before the order table by default, which is where the legacy CodeCanyon plugin put it and where customers look first in a shipping email. If you prefer it at the bottom, set “Position in emails” to “After the order table”.
1.0.7
- New “Activate Premium” page explaining how to install the Premium package after buying a licence, since Premium is a separate download rather than a key entered in the free version. Also linked from the Plugins screen.
1.0.6
- Migrating from the CodeCanyon plugin now brings your settings across as well: the tracking messages, in every language on a multilingual site, and the order statuses the tracking is shown on. It never overwrites anything you have already configured here, and the old plugin’s data is left untouched.
1.0.5
- Internal: every settings screen now saves through a separately testable path, covered by an automated test suite. No change in behaviour — groundwork so that a bug like the one fixed in 1.0.2 is caught before a release rather than after it.
1.0.4
- New: automatic shipment monitoring. Your tracked shipments are checked on a schedule, so customers can be told when their parcel is out for delivery, ready for pickup or delivered, and you can be told when one reports a problem or stops moving. Off until you enable it; each event is announced once per shipment, and delivered parcels are never checked again.
- New: a “check now” button that runs one pass immediately instead of waiting for the schedule.
- The email settings screens now list the available placeholders in plain sight instead of hiding them in a tooltip, and accept {tracking_number}, {carrier} and {associated_products} in the subject, heading and additional content.
1.0.3
- Uninstalling the plugin no longer deletes your settings. Custom carriers, messages and rules survive a reinstall; the tracking on your orders was never deleted and still isn’t.
- New “Reset settings” action, so clearing the configuration is now something you choose to do rather than a side effect of removing the plugin.
1.0.2
- Fixed a fatal error when saving the Shipping companies page.
1.0.1
- The “Shipping tracking” box now sits in the side column of the order screen, where it is visible without scrolling.
- Timeline: only the most recent events are shown, the older ones fold behind a “show earlier updates” toggle. How many stay visible is configurable.
1.0.0
- Initial release.