web_wishlist Shortcode

The web_wishlist shortcode displays a shared public product list. It does not render the current customer's My Account list-management screen or the browser-owned Favorite Posts list.

Usage

[web_wishlist]

Attributes

Attribute Default Accepted values Purpose
el_class — String unless stated otherwise Adds one or more custom CSS classes to the outer element.
el_id — Unique HTML ID Optional anchor on the wrapper.
show_title yes yes, no Shows or hides the list title.
title_tag h3 h2–h6 Semantic title level; existing H3 appearance is retained.
button_label Translated “View product” Plain text, up to 500 characters Product-page link label; not a cart action.
empty_message Translated empty-list message Plain text, up to 500 characters Shown when no saved product is currently public and visible.
unavailable_message Translated not-found message Plain text, up to 500 characters Identical response for missing, private and unavailable lists.
device_visibility — Comma-separated web-hide-on-lg, web-hide-on-md, web-hide-on-sm, web-hide-on-xs Hides the view in the selected device ranges.

Required URL context

The shortcode reads the public wishlist token from the list query parameter:

https://example.com/wishlist/?list=PUBLIC_TOKEN

It displays only an explicitly public, published, unprotected wishlist that matches the case-sensitive token. Missing, unknown, ambiguous, unpublished or private lists produce the same public notification, without exposing the list's title.

WooCommerce requirement

This output requires WooCommerce and the corresponding POM Theme e-commerce feature to be active and configured.

The shortcode remains registered with the Legacy Page Builder administration disabled. Products must currently be published, unprotected, permitted and visible in WooCommerce. Selected variations retain their destination and also require a visible public parent and enabled variation. Prices and stock status are read at rendering time. Unavailable products are skipped without modifying the saved list.

The public view accepts complete saved lists, loading product data in batches. Unreadable lists produce the unavailable message. An empty accessible list uses the empty message.

Place the shortcode once on the page used by generated share URLs. Exclude that page and its list query URLs from full-page/CDN caching, rather than merely varying a cached response by token. The renderer's no-cache headers cannot repair responses served before WordPress executes.

The public table reuses existing theme/WooCommerce styles and does not request a wishlist-management script. Real My Account and product-page controls retain that script. The Gutenberg Wishlist block shares the same renderer and options.

Verification

Test a public link, an invalid token, a private list, an empty list and a selected variation while signed out. Change the public list to private and verify immediate removal of its title and products. Check current prices, stock, responsive presentation and product-page destinations.

See the Wishlist block guide and customer wishlist configuration.