| 开发者 |
vanquish83
freemius |
|---|---|
| 更新时间 | 2026年10月2日 16:56 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
[vanstr_tracking_form] shortcode lets anyone look up an order with its number and billing email. Failed attempts are rate limited.vanstr_set_tracking(), a documented function for attaching tracking from your own code when your warehouse software or carrier plugin books the parcel./wp-content/plugins/vanquish-shipping-tracking-for-woocommerce directory, or install the plugin through the WordPress plugins screen.Open the order under WooCommerce → Orders. The "Shipping tracking" box sits in the side column: pick the carrier, type the tracking number, add the dispatch date if you like, and press Update. A "Track this shipment" link appears under the number so you can check it straight away. In the premium version you can also fill in many orders from one screen (Quick assign) or import them from a CSV.
In the WooCommerce order emails — before or after the order table, as you prefer — and on the order details page in My Account. Guest customers have no account, so they see it on the order confirmation page, which needs no login; the [order_url] placeholder of the messages takes them there. You choose which order statuses show the tracking under Shipping Tracking → Settings.
Yes, in the free version. Under Shipping Tracking → Shipping companies → Custom companies, give it a name and a tracking URL template: %s becomes the tracking number, and %post_code and %country_code the order's postcode and country. Leave the URL empty for a carrier with no online tracking, such as your own deliveries: the "Track shipment" button is then left out.
In the premium version, yes: an order can have several shipments, each with its own carrier, tracking number, dispatch date, note and the products it contains, and each is shown to the customer with its own link. The free version has one shipment per order; a second tracking sent by a shipping service is kept on the order and shown to your customer as soon as you switch to premium.
Yes. ShipStation for WooCommerce reports the tracking of each shipment, and the plugin adds it to the order by itself. Services, label tools and ERPs that send tracking to the official WooCommerce Shipment Tracking extension find the same REST API here (/wp-json/wc/v3/orders/<id>/shipment-trackings, and the wc/v1, wc/v2 and wc-shipment-tracking/v3 versions of it), so they work unchanged. The carrier they name is matched to the plugin's list; one it does not know becomes a custom company, with the link that came with it. If WooCommerce Shipment Tracking or Advanced Shipment Tracking is active, the API is left to them.
Yes. Deactivate it and activate this plugin: the tracking of each order is brought over the first time the order is shown — in the admin, an email or the customer's order page — so there is no bulk job to run. The extension's own data is left untouched, so switching back loses nothing. Orders with more than one tracking keep them all: the premium version shows each one to your customer, the free version shows the first and keeps the others on the order.
Yes, in the premium version, for orders paid through WooCommerce PayPal Payments (version 3.1.0 or later). Every tracking added to such an order — typed in, imported, or sent by ShipStation or another service — is added to its PayPal transaction, and a note on the order says so. If PayPal cannot take it yet, for example because the payment is only authorised and not captured, the note says why and it is sent again the next time the order's tracking changes.
In the premium version, under Shipping Tracking → Bulk tracking. Drop in a CSV with one row per shipment — comma, semicolon or tab separated — and say how its dates are written (DD/MM/YYYY, MM/DD/YYYY or YYYY-MM-DD), so a date like 07/09 is never read the wrong way round. An order whose date cannot be read is reported and left untouched. A scheduled import can also fetch the CSV from a URL on its own, typically a feed published by your warehouse. In the free version, vanstr_set_tracking() (below) lets your own code do the same.
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), the order statuses the tracking is shown on, the carriers you had enabled together with your default carrier, and whether the dispatch date starts on today's date. 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.
vanstr_prepare_parcels action: the order screen then opens with one shipment per parcel and its products already assigned, and you only type the tracking numbers. Prepared parcels stay hidden from the customer until they have a tracking, and an order that already has tracking is never touched.wc/v1, wc/v2, wc/v3 and wc-shipment-tracking/v3, the same fields and the same answers. The API is left alone whenever that extension or Advanced Shipment Tracking is active.[company_icon] shows the carrier's logo, and [track_button] adds a "Track shipment" button in your WooCommerce email colours (a plain link in plain-text emails). The default messages now use both. A message you have already saved is yours and is left as it is.[order_url] sent guest customers to a login form they had no account for. It now takes them to the order confirmation page, which needs no login.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.[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.