Trackora – Shipment Tracker for WooCommerce

Description

Trackora is the easiest way to add shipment tracking to your WooCommerce store. Let your customers follow their packages in real time — directly from their order confirmation email or their My Account page — without contacting you.

Stop answering “Where is my order?” emails. Give customers a one-click tracking link the moment their order ships.

Key Features

  • Add multiple tracking numbers per order — perfect for split shipments
  • 60+ pre-built shipping carriers across 20+ countries (UPS, FedEx, USPS, DHL, Royal Mail, Australia Post, Correos, and many more)
  • Custom carrier support — use any carrier not on the list by entering a custom tracking URL
  • Tracking info in order emails — automatically added before the order table in WooCommerce transactional emails
  • My Account integration — customers see their tracking link on the order detail page
  • Admin orders list column — see tracking numbers at a glance in the WooCommerce orders list
  • Inline meta box — add, edit, and delete tracking items directly from the order edit screen without leaving the page
  • REST API — full CRUD API (wc-shipment-tracker/v1) compatible with WooCommerce API namespaces wc/v1 and wc/v2
  • Shortcode — display tracking info anywhere with [wcst_tracking]
  • WooCommerce HPOS compatible — fully supports High-Performance Order Storage (custom order tables)
  • WooCommerce Blocks compatible
  • WooCommerce Subscriptions compatible — prevents tracking numbers from being copied to renewal orders
  • Developer-friendly — helper functions (wcst_add_tracking(), wcst_delete_tracking()) and filter hooks for full customization

Supported Carriers

United States: UPS, FedEx, USPS, DHL US, DHL eCommerce, FedEx Sameday, GlobalPost, OnTrac
United Kingdom: Royal Mail, DHL, DPD, DPD Local, EVRi, ParcelForce, TNT Express, DHL Parcel UK, City Link
Spain: Correos España, MRW, SEUR, GLS Spain, Nacex, DHL Spain, UPS Spain, DPD Spain, ASM, Correos Express, Zeleris, TNT Spain
Mexico: DHL Mexico, FedEx Mexico, UPS Mexico, Estafeta, Paquetexpress, Redpack, Correos de Mexico, Coordinadora, J&T Express
Colombia: Servientrega, Coordinadora CO, Deprisa, TCC, DHL Colombia, J&T Express CO, Interrapidisimo
Germany: DHL Intraship, Deutsche Post DHL, Hermes, UPS Germany, DPD.de
Australia: Australia Post, Fastway Couriers, Aramex Australia
Canada: Canada Post, Purolator
Netherlands: PostNL, DPD.NL, UPS Netherlands
Sweden: PostNord, DHL.se, Bring.se, UPS.se, DB Schenker
Poland: InPost, DPD.PL, Poczta Polska
New Zealand: NZ Post, Courier Post, Aramex New Zealand
Romania: Fan Courier, DPD Romania, Urgent Cargus
Italy: BRT (Bartolini), DHL Express
Ireland: DPD.ie, An Post
Czech Republic: PPL.cz, Česká pošta, DHL.cz, DPD.cz
France: Colissimo
Belgium: bpost
Brazil: Correios
Austria: post.at, dhl.at, DPD.at
South Africa: SAPO, Fastway, EPX
Finland: Itella
India: DTDC
Global: Aramex

Don’t see your carrier? Add it as a custom provider with a custom tracking URL — no coding needed.

Use Cases

  • eCommerce stores shipping domestically or internationally
  • Dropshipping businesses needing to pass through supplier tracking numbers
  • Stores using multiple carriers for different product types
  • Developers automating order fulfillment via the REST API or PHP helper functions

REST API

Trackora exposes a full REST API:

  • GET /wc-shipment-tracker/v1/orders/{order_id}/trackings — list tracking items
  • POST /wc-shipment-tracker/v1/orders/{order_id}/trackings — add a tracking item
  • GET /wc-shipment-tracker/v1/orders/{order_id}/trackings/{id} — get a single item
  • DELETE /wc-shipment-tracker/v1/orders/{order_id}/trackings/{id} — delete a tracking item
  • GET /wc-shipment-tracker/v1/providers — list all available carriers

Compatible with the wc/v1 and wc/v2 namespaces for backward compatibility with third-party integrations.

For Developers

Add tracking programmatically:

wcst_add_tracking( $order_id, '1Z9999999', 'UPS' );

Delete tracking programmatically:

wcst_delete_tracking( $order_id, '1Z9999999' );

Extend the carrier list with the wcst_get_providers filter:

add_filter( 'wcst_get_providers', function( $providers ) {
    $providers['My Region']['My Carrier'] = 'https://mycarrier.com/track?id=%1$s';
    return $providers;
} );

Source Code

The source code is publicly available on GitHub: https://github.com/slbarriosdev/wc-shipment-tracker

Bug reports and contributions are welcome.

External services

This plugin generates tracking links pointing to carrier websites. When a tracking number is added to an order, the plugin builds a URL for the selected carrier and displays it to the store admin and customers.

The plugin does not make any server-side HTTP requests to carrier websites. Data is only transmitted when a user (admin or customer) actively clicks a tracking link — at that point their browser connects to the carrier’s website and the tracking number (and in some cases the shipping postcode) is passed in the URL as required by that carrier’s tracking system.

Each carrier operates its own website under its own terms of service and privacy policy. The external carrier services this plugin may link to include:

Global

Argentina

Australia

Austria

Belgium

Brazil

Canada

Chile

China

Colombia

Czech Republic

Ecuador

Finland

France

Germany

India

Ireland

Italy

Japan

Malaysia

Mexico

Netherlands

New Zealand

Nigeria

Peru

Poland

Portugal

Romania

Singapore

South Africa

South Korea

Spain

Sweden

Thailand

Turkey

United Kingdom

United States

Venezuela

Installation

  1. Upload the trackora folder to the /wp-content/plugins/ directory, or install directly from the WordPress plugin repository
  2. Activate the plugin through the Plugins menu in WordPress
  3. Make sure WooCommerce is installed and active
  4. Open any WooCommerce order and find the Shipment Tracking meta box to add your first tracking number

FAQ

Does this plugin require WooCommerce?

Yes. Trackora requires WooCommerce to be installed and active.

Can I add more than one tracking number per order?

Yes. You can add as many tracking numbers as needed to a single order — useful for split shipments or orders shipped with multiple carriers.

My carrier is not in the list. Can I still use it?

Yes. Select “Custom Provider” when adding a tracking item and enter your carrier name along with the tracking URL. Use %1$s as a placeholder for the tracking number in the URL.

Does tracking info appear in customer emails?

Yes. Tracking information is automatically injected into WooCommerce order emails (before the order table) as soon as a tracking number is saved to the order.

Is this plugin compatible with WooCommerce HPOS (High-Performance Order Storage)?

Yes. Trackora is fully compatible with HPOS (custom order tables), as well as the legacy CPT-based order storage.

Can I add tracking numbers via the REST API or programmatically?

Yes. The plugin provides a full REST API and two PHP helper functions — wcst_add_tracking() and wcst_delete_tracking() — for programmatic use from themes, plugins, or automation scripts.

Is it compatible with WooCommerce Subscriptions?

Yes. The plugin detects WooCommerce Subscriptions and automatically prevents tracking numbers from being copied to renewal orders.

Where does tracking info appear for customers?

Tracking info appears in two places for customers: the WooCommerce transactional email they receive when the order is shipped, and the order detail page in their My Account section.

Is the plugin compatible with the WooCommerce blocks checkout?

Yes. Trackora declares compatibility with WooCommerce cart and checkout blocks.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Trackora – Shipment Tracker for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.2.3

  • Fix: Updated 10 broken or outdated carrier URLs in External services section (Blue Express Chile, Yanwen, J&T Express MY, Correos Express, Kerry Express Thailand, PTT Turkey, MNG Kargo Turkey, Fastway Couriers AU now on Aramex AU, EPX SA now points to actual privacy page; China Post/EMS marked unavailable as provider blocks automated access)
  • Fix: Removed load_plugin_textdomain() call — not needed for plugins hosted on WordPress.org (WordPress 4.6+)
  • Fix: Removed unnecessary wpdb::prepare() wrapping of hardcoded constant in subscriptions renewal query
  • Fix: Replaced 9 dead carrier tracking-link domains with current working tracking pages (Kerry Express now KEX th.kex-express.com, Yanwen, ASM now GLS Spain, Correos Ecuador, Shalom, MRW Venezuela, Urbano, Zoom now zoom.red, China Post/EMS)
  • Fix: Restored Zoom (Venezuela) Terms and Privacy links now that the provider’s new site (zoom.red) is reachable

1.2.2

  • Fix: Updated 5 broken carrier URLs in External services section (4PX, DPD Spain ×2, Correos Express, GlobalPost)
  • Fix: REST API POST permission_callback now checks ‘edit’ capability instead of ‘create’ when adding tracking to an existing order

1.2.1

  • Fix: Use esc_url_raw() instead of sanitize_text_field() for custom tracking URL fields (meta box, AJAX handlers, REST API)
  • Fix: 3 carrier tracking URLs changed from HTTP to HTTPS (Correios Brazil, SAPO South Africa, DB Schenker Sweden)
  • Fix: load_plugin_textdomain() moved to init hook (was incorrectly using after_setup_theme)
  • Fix: Admin notice updated to use current notice notice-error CSS classes
  • Fix: Added uninstall.php with WP_UNINSTALL_PLUGIN guard (tracking data intentionally preserved)
  • Fix: Removed donate link pointing to source code repository

1.2.0

  • Fix: Updated all broken carrier Terms of Service and Privacy Policy URLs in the External services section
  • Fix: Added explicit documentation for FedEx Sameday (fedexsameday.com), DB Schenker Privpak portal (privpakportal.schenker.nu), and An Post tracking portal (track.anpost.ie)
  • Fix: Updated PPL.cz Terms and Privacy links to current working URLs
  • Security: Added nonce verification to meta box save, shortcode tracking form, and order lookup
  • Security: Resolved unclosed ob_start() pattern flagged by static analyzer
  • Fix: REST API /providers endpoint permission_callback documented as intentionally public (read-only carrier catalogue)

1.1.1

  • Fix: Removed external Google favicon calls — carrier icons are no longer loaded from google.com/s2/favicons
  • Fix: All built-in carrier tracking URLs are now documented in the readme with Terms of Service and Privacy Policy links
  • Fix: REST API permission callbacks now validate against the specific order_id being accessed or modified

1.1.0

  • Improved: Orders list tracking column layout uses flexbox for consistent alignment

1.0.9

  • Initial public release
  • Support for 60+ carriers across 20+ countries
  • REST API with full CRUD support
  • HPOS and WooCommerce Blocks compatibility declared
  • WooCommerce Subscriptions integration
  • Shortcode [wcst_tracking]
  • Developer helper functions: wcst_add_tracking(), wcst_delete_tracking()