| 开发者 | slbarriosdev |
|---|---|
| 更新时间 | 2026年9月5日 00:15 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
[wcst_tracking] shortcode — customers look up shipments with their order number and billing email, no login required{tracking_number} where the number goes. It is saved once and offered on every order from then on. Carriers you added can be edited or renamed later — the orders already using them keep their tracking links — and if the carrier has no URL that accepts the number, leave it empty and the number is shown without a link.
Nothing is switched off behind your back: updating Trackora leaves every carrier enabled until you open the tab and choose.
Works with the plugins you already run
wcst_order_number_meta_keys filterwoocommerce_email_before_order_table hook, so any customiser that keeps the standard order email templates — YayMail, Kadence WooCommerce Email Designer, WP HTML Mail and others — displays it with no extra setupwcst_add_tracking() and wcst_delete_tracking(), and filters to extend the carrier list, the orders list column and the email output.
Endpoints, filters and code examples are documented on GitHub: https://github.com/slbarriosdev/wc-shipment-tracker — bug reports and contributions welcome.
trackora folder to /wp-content/plugins/, or install directly from the WordPress plugin repository[wcst_tracking] shortcode to any page to create a public Track Your Order pageOpen the order, find the Shipment Tracking meta box, select the carrier, enter the tracking number and ship date, and click Save. The tracking link is instantly added to the customer's order email, their My Account page, and the tracking lookup page.
Yes — completely free. All features (unlimited tracking numbers, 152 carriers, emails, My Account, tracking page, CSV import, REST API) are included. There is no premium version and no locked functionality.
Yes. Trackora requires WooCommerce to be installed and active.
Yes. Add the [wcst_tracking] shortcode to any page and customers can look up their shipment by entering their order number and billing email — no login required.
Yes, as many as you need — useful for split shipments or orders shipped with multiple carriers.
Yes, in two ways. For a courier you use regularly, open the Shipping Carriers tab on the Trackora screen and click Add a carrier: give it a name, a country and its tracking URL with {tracking_number} where the number goes — for example https://carrier.com/track?id={tracking_number}. From then on it is offered on every order, like any built-in carrier. For a one-off shipment, select "Custom Provider" on the order itself and enter the name and URL there, using %1$s for the number. You can also paste the complete link for that one shipment, with the number already in it. The live preview shows the exact URL your customer will open. If the carrier has no tracking page at all, leave the link empty and the number is shown without a Track button.
Yes. The Shipping Carriers tab lists all 152 with a switch on each one. Turn off everything you do not ship with and the carrier select on the order screen offers only what is left, with the carriers from your own country first. You can switch a whole country on at once, or turn the lot off and enable just the handful you use. Turning a carrier off never touches the orders that already use it: their tracking links keep working, and that carrier stays selectable if you edit one of those older shipments.
Yes. The Import Tracking tab on the Trackora screen — also one click from the top of your orders list — writes tracking to hundreds of orders at once. Drop your file in, check the column mapping Trackora read out of your header row, and import. Download a sample built from your own store — real orders awaiting shipment that have no tracking yet, with one of them repeated on a second line to show how a single order can carry more than one shipment — paste your tracking numbers and upload it. Comma, semicolon and tab separated files are all accepted, column headers your carrier or 3PL already exports are recognised in six languages, and every row that could not be imported is listed with its line number and the reason. Re-importing the same file never duplicates anything.
Only if you ask it to. By default an import writes tracking numbers and changes nothing else — no status change, no email. Two optional switches on the mapping step change that: move every order in the file to a status such as Completed, and send each customer the WooCommerce email for that new status, which already carries the tracking number this import saved. The email switch only becomes available once you have chosen a status, since Trackora has no email of its own to send. The status changes run after the whole file has been read, so an order carrying two shipments in your file is emailed once, with both.
Yes. Both the public tracking form and the CSV importer look orders up by the number your store displays, not the internal ID, so plugins such as WooCommerce Sequential Order Numbers and Custom Order Numbers for WooCommerce work without configuration.
No. Trackora makes zero server-side requests to third parties. Tracking links are simply URLs that open the carrier's website when a user clicks them.
Yes. Trackora is fully compatible with High-Performance Order Storage (and legacy order storage), declares compatibility with the block-based cart and checkout, and prevents tracking numbers from being copied to subscription renewal orders.
Yes. The plugin provides a REST API covering create, read, update and delete, plus the PHP helpers wcst_add_tracking() and wcst_delete_tracking() for use from themes, plugins, or automation scripts.
Yes. Trackora registers a personal data exporter and eraser with WordPress, so tracking numbers, carrier names and ship dates attached to a customer's orders are included when you run Tools → Export Personal Data or Tools → Erase Personal Data. It also contributes a section to the privacy policy guide at Settings → Privacy.
wcst_tracking_saved action, fired when a new tracking item is storedwcst_orders_list_column_html filter on the Shipment Tracking column of the orders list, and a wcst_before_update_tracking_items filter for symmetry with the add and delete filters. The readme now lists every filter the plugin exposesload_plugin_textdomain() back then also removed the only thing that registers a plugin's own /languages directory — WordPress otherwise looks in wp-content/languages/plugins alone — so all 14 locales silently fell back to English. The call is restored, on the init hook. The template was regenerated and the 24 strings it was missing were translated in every localewc/v1/providers and wc/v2/providers routes. That is a generic path inside WooCommerce core's own namespace and was not ours to register; the carrier catalogue stays at wc-shipment-tracker/v1/providersinput type="url". Some browsers rejected a URL containing the %1$s token as invalid and refused to submit the form