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.