Skip to content

Shortlist

Shortlist adds a wishlist to WooCommerce. Shoppers save products with one click on shop listings and the product page, including specific variations, and view their list in My Account, on a dedicated page, or via [shortlist].

Shortlist is one lightweight wishlist with guest support, merge on login and vanilla JS in the footer, not a heavy suite. Shoppers save for later without leaving the catalog. The free edition is the full GPL product.

Saved items live in one custom table, {prefix}shortlist_items, created by the plugin’s database migration. Each row holds product_id, created_at and exactly one owner: user_id for a logged-in customer or session_id for a guest. A product appears at most once per owner, and lists are returned newest first. Nothing is kept in user meta or in the shortlist_settings option.

For a variable product the row stores the chosen variation ID, not the parent: the shopper picks options first, and a toggle sent for the parent product is refused.

With Allow guests on (the default), a logged-out shopper’s first save creates the shortlist_session cookie: a random UUID, valid for 6 months, HttpOnly, SameSite=Lax, and Secure on HTTPS sites. The cookie only identifies the guest; the items themselves are in the table under that session ID. Turn Allow guests off and logged-out shoppers are sent to the login page instead, and no cookie is set.

Guest items move to the account on the set_logged_in_cookie action, not wp_login, so the merge also runs when WooCommerce signs a new customer in after registering on My Account or at checkout. Items the account already holds are dropped from the guest list first, then the remaining guest rows are reassigned to the user ID. The guest list is gone after the merge; nothing is duplicated.

Action Who What it does
shortlist_wishlist_toggle guests and logged-in Adds or removes product_id (nonce shortlist_wishlist). Returns in_wishlist, the new count and the button text. Errors: 403 when guests are off and the visitor is logged out, 404 for a missing or unreadable product, 422 for a variable parent.
shortlist_wishlist_count guests and logged-in Returns the current count, the saved product ids and the menu label; the storefront script uses it to update the [shortlist_count] badge.
Hook Type Arguments Fires
shortlist_wishlist_item_actions action $product, $settings Under each item in the wishlist grid (Shortlist uses it to show the Waitlist form when Waitlist is active and the waitlist integration setting is on).
shortlist_after_wishlist_items action $products, $settings After the wishlist grid (Quotlet uses it for its quote button).
shortlist/booted action the plugin instance Once the plugin has booted.
shortlist/show_pro_cta filter true Return false to hide the PRO promotion in wp-admin.

Remove when added to cart is off by default. When on, adding a saved product to the cart removes it from the wishlist (for a variable product, the saved variation), and so does raising the quantity of a cart line that already holds it.

Deleting the plugin drops the shortlist_items table and removes the shortlist_settings and shortlist_db_version options on every site of a network. Shortlist also registers a personal data exporter and eraser (Shortlist Wishlist Items) under Tools > Export / Erase Personal Data.

  • Free and GPL, listed in the WordPress.org plugin directory, single wishlist, guests, variations, dedicated page, My Account, shortcode.
  • Pro for multiple named lists, share links, price-drop and back-in-stock alerts, and analytics.

Polski includes a built-in wishlist module. Do not install Shortlist on the same store if that module is enabled. See Standalone storefront plugins in Polski.

Free and PRO

Shortlist Pro is a separate paid plugin that extends Shortlist. The free edition is not a trial and its features stay available without a time limit.

FeatureFreePRO
Wishlist buttonYesYes
My Account tabYesYes
[shortlist] shortcodeYesYes
Guest supportYesYes
AJAX add and removeYesYes
Multiple named lists-Yes
Share links-Yes
Wishlist analytics-Yes
Price alerts-Yes