header blog

WooCommerce Order Tracking Shortcode: Setup Guide

This shortcode gets misunderstood more than most, because its name suggests live shipping tracking, and that’s not what it does. Here’s what it actually delivers, how to set it up, and why it sometimes returns “order could not be found” even for a real order.

The Code

[woocommerce_order_tracking]

That’s the entire shortcode, no attributes. Placed on any page, it renders a form with two fields: order ID and billing email. When a customer submits it, WooCommerce looks up the order and displays its status and line items if the details match.

Where to Put This Code

Add the shortcode to the content of whichever page you want the tracking form to live on. It’s often placed on the same page as My Account, so guests without an account still have a way to check an order, but it works fine as a standalone page too.

No PHP is involved unless you want to customize the form’s behavior or messaging, in which case you’re working with WooCommerce’s order-related hooks rather than this shortcode directly, since the shortcode itself doesn’t expose customization attributes.

What This Shortcode Actually Does (and Doesn’t Do)

It’s a lookup form, not a courier integration. A customer enters their order ID and the billing email used at checkout. If both match a real order in your store, WooCommerce shows that order’s status (Processing, Completed, etc.) and a summary of items.

It does not connect to UPS, FedEx, or any shipping carrier’s tracking API. If you need live “your package is in transit, arriving Tuesday” tracking, that requires a dedicated shipment tracking plugin or a custom integration with your carrier’s API. This shortcode only reflects the order status inside WooCommerce itself.

It also doesn’t work reliably on AMP pages, since the form submission behavior AMP restricts can interfere with how WooCommerce processes the lookup.

Real Use Cases

A guest-accessible order status page. Not every customer wants to create an account. This shortcode gives them a way to check status without one.

Reducing “where is my order” support tickets. Linking to this page from your order confirmation email gives customers a self-service option before they email support.

Pairing with [woocommerce_my_account] on the same page. Some stores place both shortcodes together, letting logged-in customers see their full account while guests get the tracking form specifically.

A simple status check for stores not ready to invest in a full tracking plugin. If live carrier tracking isn’t a priority yet, this covers the basic “did my order go through and what’s its status” need at no extra cost.

Common Issues

“Sorry, the order could not be found.” This is the most common complaint, and it usually comes down to one of three things: the order ID entered doesn’t match exactly (some themes display an order number that isn’t the same as the internal WooCommerce order ID), the billing email doesn’t match what was used at checkout, or the order was placed as a guest checkout with a typo in the original email.

The order number customers see doesn’t match what the form expects. If you’re using an extension that changes how order numbers are displayed (sequential numbers instead of the post ID, for example), that same extension usually needs to also hook into the order lookup logic, or the tracking form will keep rejecting valid order numbers because it’s checking against the internal ID, not the custom display number.

The form doesn’t work on a specific page. Check whether that page is being served through AMP or a caching setup that interferes with form submissions. Testing the same shortcode on a plain, uncached page is the fastest way to isolate whether it’s the shortcode or the page’s configuration.

Nothing happens after clicking Track. This is typically a JavaScript conflict, often from a page builder or another plugin loading a script that interferes with WooCommerce’s form handling. Checking the browser console for errors when the button is clicked usually points to the conflicting script.

If your store needs actual live shipping tracking, not just an order status lookup, or a custom order number format that still works correctly with this form, that’s exactly the kind of work Fixelar handles as part of our WooCommerce custom development services. We test the full order lookup flow against your specific setup before it goes live.