Thank You Heading

What Thank You Heading does Thank You Heading renders a single dynamic headline on the order-received page — the classic “Thank you, [name]! Your order #1234 is confirmed.” message — but built from a token-based text template and full Elementor typography controls, rather than the theme’s hardcoded WooCommerce thank-you text. It exists as its own […]

4 min read Updated July 23, 2026
Thank You Heading — features & options

What Thank You Heading does

Thank You Heading renders a single dynamic headline on the order-received page — the classic “Thank you, [name]! Your order #1234 is confirmed.” message — but built from a token-based text template and full Elementor typography controls, rather than the theme’s hardcoded WooCommerce thank-you text. It exists as its own widget separate from Order Details, Customer Details, and Downloads because a headline needs different placement and styling than a data table: it’s usually large, centered, and the first thing a customer sees after paying, while the other thank-you widgets are dense, tabular, or conditional content placed further down the page.

How to set it up

The Content section has two controls: Text (a dynamic-tag-enabled text field, default "Thank you, {first_name}! Your order #{order_id} is confirmed.") and HTML Tag (a select of H1/H2/H3, default H1). The Text field’s description documents the available tokens: {first_name}, {last_name}, {order_id}, {total}, and {email} — all substituted from the live WooCommerce order at render time. You can rewrite the whole sentence, drop tokens you don’t want, or reorder them freely; anything in the field that isn’t a recognized token is left as literal text.

The Style tab has a Color control and a full Typography group control (font family, size, weight, spacing, line-height, etc.), both scoped to the rendered .tiger-ty-heading element — the widget doesn’t expose the shared Fields style section (label/field colors, borders, padding) since it isn’t rendering any form inputs.

Non-obvious behavior

The order the heading pulls data from isn’t hardcoded to “the current page” — it’s resolved by a shared helper function (tiger_woo_current_order()) used across all four thank-you widgets in this family, with a specific fallback chain:

  • First it checks the order-received query var (the standard WooCommerce order-received URL structure), then falls back to a raw ?order= GET parameter if present.
  • If neither resolves to a real order and you’re inside the Elementor editor, it falls back to the single most recent order in the store, purely so you have real data to preview and style against while building — this preview fallback never happens on the live front end.
  • If no order can be resolved at all outside the editor (e.g., someone visits the thank-you page URL directly with no order context), the tokens simply aren’t substituted and the raw default text with unresolved {tokens} would show — so this widget is only meant to live on an actual order-received template/page, not a generic page.
  • The {total} token runs through wc_price() and then strips HTML tags, so it renders as a plain formatted amount (e.g., “$49.99”) rather than the styled price markup WooCommerce normally wraps totals in — you can’t independently style the currency symbol or decimals within this token.

Thank You Heading vs. Order Details / Customer Details / Downloads

All four thank-you widgets share the same order-resolution logic but render completely different WooCommerce regions:

  • Thank You Heading (this widget) — a single customizable headline built from order tokens; the only one of the four with no dependency on WooCommerce’s own templates beyond reading order fields directly.
  • Order Details — renders WooCommerce’s native order-received.php meta strip (order #, date, total, payment method) plus the full order-details.php line-item table, with a toggle to show/hide the meta strip.
  • Customer Details — renders WooCommerce’s native billing/shipping address block from order-details-customer.php.
  • Downloads — renders the downloadable-file links table, and only appears at all when the order actually contains downloadable products.

Use Thank You Heading purely for the personalized greeting/confirmation line; reach for the other three widgets when you need the actual structured order data (line items, addresses, download links) rather than a headline.

Practical tips

  • Don’t rely on this widget alone to confirm order success to the customer — if it’s placed on a page with no resolvable order context, the tokens won’t substitute, so always pair it with real testing against a completed checkout, not just editor preview (which silently substitutes the latest store order).
  • Keep the HTML Tag semantically correct for the page: since this is usually the primary heading of the order-received page, H1 is the right default — reserve H2/H3 for cases where this widget sits below another true page H1 elsewhere in your layout.
  • If you want a shorter confirmation (no order number, just a name), simply remove the {order_id} token from the Text field — unused tokens don’t need to be “disabled” anywhere else.
  • Because {email} pulls the order’s billing email directly, avoid using it in headings on shared/public-facing screens (like an in-store kiosk) where displaying a customer’s email address might not be appropriate.

Frequently asked questions

Outside the Elementor editor, if no order can be resolved from the order-received query var or an ?order= parameter, the tokens in the Text field are never substituted, so visitors would see the literal unresolved text like ‘{first_name}’ and ‘{order_id}’ — this widget is designed to live only on an actual thank-you/order-received template.

Inside the Elementor editor, tiger_woo_current_order() falls back to the store’s single most recent order purely so you have real data to preview and style against. This fallback is editor-only and never happens on the live front end, where only a genuine order-received context is used.

Still stuck?

We’re here to help

Can’t find what you’re looking for, or hit something that looks like a bug? Reach the support team or ask the community.