Getting Started

Logicfire Wishlist & Registry for WooCommerce

The best free WooCommerce wishlist and gift registry plugin. Let customers save products, create registries for weddings & baby showers, share lists, and buy from shared wishlists — with real-time purchase notifications.

What is this plugin?

Logicfire Wishlist & Registry for WooCommerce extends your store with a full-featured wishlist and gift registry system. Customers can save favorite products, create multiple wishlists, share them via link, email, or social media, and friends can purchase items directly from shared lists.

The plugin is lightweight, built with a modern Vue.js-powered UI, and fully compatible with WooCommerce HPOS, block themes, Gutenberg, and Elementor.

📸
Screenshot

[Placeholder: Screenshot of the wishlist page showing the dashboard with multiple wishlists, items with heart icons, and sharing options]

Feature Highlights

  • Multiple wishlists — Create and manage unlimited wishlists per user
  • Guest wishlists — Non-logged-in users can save products via cookies
  • Gift registries — Add event dates to convert wishlists into registries
  • Sharing — Share via link, email, Facebook, Twitter, Pinterest
  • Privacy controls — Public, private, or shared visibility per list
  • Counter widgets — Heart icon with badge count in header/navigation
  • Gutenberg blocks + Elementor widgets — Wishlist Button, Wishlist Counter, Registry Counter
  • Email notifications — Purchase alerts, back-in-stock, wishlist shared
  • REST API — Full API for wishlists, items, shares, and claims
  • WooCommerce My Account — Integrated wishlists endpoint

Free vs Pro

FeatureFreePro
Multiple wishlists & guest wishlists
Gift registries with event dates
Sharing (link, email, social)
Privacy controls & invite access
Counter widgets (Gutenberg + Elementor)
Email notifications
REST API
"I'll buy this" claims
Ship to registry recipient
Analytics dashboard
Purchase/fulfillment tracking
Show purchaser names on registry
Claim expiry & notifications
Getting Started

Installation

Install the plugin in under 60 seconds using the WordPress admin or manual upload.

Installing the Free Plugin

1
Install WooCommerce

Make sure WooCommerce is installed and activated.

2
Install the Plugin

Go to WP Admin → Plugins → Add New and search for Logicfire Wishlist. Click Install Now, then Activate.

3
Configure Settings

Navigate to WooCommerce → Settings → Wishlist & Registry to configure.

4
Create Wishlist Page

Create a page and add the shortcode [lfwlr_wishlist_registry_page]. Then select this page under the Wishlist Page setting.

Installing Pro (Add-on)

1
Install the Free Plugin First

The Pro add-on requires the free Logicfire Wishlist & Registry plugin to be active.

2
Upload Pro Plugin

Go to Plugins → Add New → Upload Plugin. Upload the .zip file and activate.

3
Configure Pro Settings

Pro settings (Claims, Analytics) appear automatically under WooCommerce → Settings → Wishlist & Registry and the WooCommerce → Logicfire Analytics submenu.

⚠️
Important

If the free plugin is not active, the Pro add-on will display an admin notice and will not load any features.

Getting Started

Requirements

Minimum and recommended software versions.

SoftwareMinimumTested up to
WordPress5.86.9
PHP7.48.1+
WooCommerce6.010.6.1
WooCommerce HPOSOptional but fully supported
💡
Pro Add-on

The Pro plugin additionally requires the free Logicfire Wishlist & Registry for WooCommerce plugin (v2.1.0+) to be installed and activated.

Configuration

General Settings

Core settings found under WooCommerce → Settings → Wishlist & Registry.

Enable/Disable

SettingOption IDTypeDefaultDescription
Enable Wishlist & Registrylfwlr_enabledCheckboxyesTurn wishlist functionality on or off site-wide.
Enable Registrylfwlr_enable_registryCheckboxnoEnable all registry functionality. When disabled, registry options and registry lists are hidden on the frontend.
Guest Wishlistslfwlr_guest_enabledCheckboxyesAllow non-logged-in visitors to save products via cookies.

Button Positions

SettingOption IDTypeDefaultDescription
Button Position (Product Cards)lfwlr_heart_positionSelecttoprightWhere to display the wishlist heart button on product cards (shop, category, search). Options: topleft, topright.
Button Position (Single Product)lfwlr_single_button_positionSelectbefore_add_to_cartWhere to display the wishlist button on single product pages. Options: before_add_to_cart, after_add_to_cart, after_summary, shortcode_only.
Compact Layoutlfwlr_compact_layoutCheckboxnoUse a compact heart-only button on single product pages instead of the full banner.

Counter Widget

SettingOption IDTypeDefaultDescription
Wishlist Counter Menu Locationlfwlr_counter_menu_locationSelectprimaryInject a live wishlist counter (heart badge) into a navigation menu. The counter updates via AJAX.

Wishlist Page

SettingOption IDTypeDefaultDescription
Wishlist Pagelfwlr_page_idSelect (pages)The page containing [lfwlr_wishlist_registry_page]. Used for "View Wishlist" links throughout the site.

Cart & Purchase Behavior

SettingOption IDTypeDefaultDescription
Remove on Add to Cartlfwlr_remove_on_add_to_cartCheckboxnoRemove the product from the wishlist when the customer adds it to their cart.
Remove on Purchaselfwlr_remove_on_purchaseCheckboxyesRemove the product from the customer's wishlists when their order is completed.
Configuration

Sharing Settings

Control how wishlists and registries can be shared.

SettingOption IDTypeDefaultDescription
Enable Sharinglfwlr_share_enabledCheckboxyesAllow users to share their wishlists via link, email, and social media.
Share Email Sender Namelfwlr_share_email_from_nameTextSite titleThe "From" name used when sharing wishlists via email.
Share Email Sender Addresslfwlr_share_email_from_addressEmailAdmin emailThe "From" email used for share emails.
💡
Sharing Options

When sharing is enabled, users can share via:

  • Direct link — Copy a shareable URL
  • Email — Send via the built-in email form
  • Social media — Facebook, Twitter/X, Pinterest
Configuration

Appearance Settings

Customize the look and feel of wishlist elements.

Colors

SettingOption IDTypeDefaultDescription
Primary Colorlfwlr_primary_colorColor#e8475fMain color for buttons, hearts, and active states.
Hover Colorlfwlr_hover_colorColor#d63a51Color for hover states on interactive elements.
Active Colorlfwlr_active_colorColor#e8475fColor for active/filled wishlist hearts.

Style

SettingOption IDTypeDefaultDescription
Icon Stylelfwlr_icon_styleSelectheartHeart icon style. Options: heart, bookmark, star.
Border Radiuslfwlr_border_radiusText12pxCorner radius for cards and panels. Any valid CSS value (e.g. 8px, 0, 1rem).
Configuration

Notification Settings

Email notifications sent to wishlist owners and users.

SettingOption IDTypeDefaultDescription
Notify on Purchaselfwlr_notify_purchasedCheckboxyesEmail the wishlist owner when someone purchases an item from their list. Uses WooCommerce email templates (WooCommerce → Settings → Emails).
Back in Stock Alertslfwlr_notify_back_in_stockCheckboxyesEmail users when a wishlisted out-of-stock product becomes available again.
Notify on Claim Prolfwlr_notify_claimedCheckboxyesEmail the wishlist owner when someone claims an item from their registry. Only visible when Pro is active.

WooCommerce Email Classes

The plugin registers three email classes with WooCommerce (found under WooCommerce → Settings → Emails):

EmailClassTrigger HookDescription
Item PurchasedLFWLR_Email_Item_Purchasedlfwlr_item_purchasedSent to the wishlist owner when someone purchases an item from their list.
Back In StockLFWLR_Email_Back_In_Stockwoocommerce_product_set_stock_statusSent to all users who have the product wishlisted when it comes back in stock.
Wishlist SharedLFWLR_Email_Wishlist_SharedShare email REST endpointSent to the recipient when a user shares their wishlist via email.
Configuration

Advanced Settings

Shortcode reference and custom CSS.

Shortcodes Quick Reference

These shortcode references are shown in the admin settings for convenience:

ShortcodePurpose
[lfwlr_wishlist_registry_page]Full wishlist/registry dashboard page
[lfwlr_wishlist_button product_id="123"]Wishlist heart button for a specific product
[lfwlr_wishlist_counter]Wishlist counter badge with dropdown (icon + count)
[lfwlr_registry_counter]Registry counter badge with dropdown (icon + count)

Custom CSS

SettingOption IDTypeDefaultDescription
Custom CSSlfwlr_custom_cssTextareaemptyAdd custom CSS to override LFWLR styles. Rendered in <style> on the frontend.

Pro: Claim Expiry

SettingOption IDTypeDefaultDescription
Claim Expiry (hours) Prowishlist_registry_pro_claim_expiry_hoursNumber48Hours before an uncompleted claim expires and the item becomes available again. Cleanup runs hourly via Action Scheduler (or WP-Cron fallback).
Features

Wishlists

Everything about creating, managing, and using wishlists.

Overview

Users can create multiple wishlists and add any WooCommerce product (including variable products with specific variations). A default wishlist is automatically created for each user on first interaction.

Creating Wishlists

Wishlists can be created from:

  • The wishlist dashboard page (via the [lfwlr_wishlist_registry_page] shortcode)
  • The My Account → Wishlists endpoint
  • The REST API (POST /lf-wlr-wc/v1/wishlists)

Wishlist Properties

PropertyTypeDescription
titleStringDisplay name of the wishlist
visibilityStringpublic, shared, or private
descriptionStringOptional description
event_dateDate (Y-m-d)When set, converts the wishlist into a registry
is_defaultBooleanWhether this is the default list (one per type)
slugStringURL-friendly identifier for sharing

Managing Items

Items are added via the heart button on product cards and single product pages. Each item stores:

  • Product & Variation ID
  • Quantity — Editable, especially useful for registries
  • Priority — Sort order within the list
  • Note — Optional personal note
  • Quantity Fulfilled — Tracked by Pro purchase tracker

Guest Wishlists

When lfwlr_guest_enabled is set to yes, visitors without an account receive a guest token stored in a cookie. Guest wishlists are fully functional and can later be merged when the guest logs in or creates an account.

The guest token is passed to the REST API via the X-LFWLR-Guest-Token HTTP header.

Features

Gift Registry

Create gift registries for weddings, baby showers, birthdays, and more.

Overview

A registry is a wishlist with an event_date. When the Enable Registry setting is active, users can create registries from the wishlist dashboard by adding an event date. Registries have their own default list separate from regular wishlists.

Registry-Specific Features

  • Event date — Displayed on the shared registry page
  • Quantity & fulfillment — Each item shows needed vs. fulfilled quantities
  • Fulfillment progress — Visual progress bar on shared page (Pro)
  • Claims — "I'll buy this" reservation system (Pro)
  • Ship to recipient — Items ship to the registry owner (Pro)

Sharing Registries

Registries have their own URL format: /registry/{slug}/ (vs /wishlist/{slug}/ for regular wishlists). The shared registry page shows fulfillment progress and allows visitors to add items to their cart or claim items (Pro).

Features

Sharing & Privacy

Control who can see and interact with wishlists.

Visibility Levels

VisibilityDescription
publicAnyone with the link can view and purchase from the list
sharedOnly invited users (via token) can view the list
privateOnly the owner can see the list

Sharing Methods

  • Copy Link — Generates a shareable URL
  • Email — Built-in email form via REST API (POST /lf-wlr-wc/v1/share)
  • Social — One-click sharing to Facebook, Twitter/X, Pinterest

Invite-Based Sharing

For shared visibility lists, owners can create share invitations via the REST API (POST /lf-wlr-wc/v1/wishlists/{id}/shares). Each invite generates a unique token and can have an access level:

  • view — Can view items only
  • purchase — Can view and add to cart

URL Structure

TypeURL Pattern
Wishlist/wishlist/{slug}/
Registry/registry/{slug}/
With token/wishlist/{slug}/?token={token}
💡
Rewrite Rules

The plugin registers rewrite rules for /wishlist/ and /registry/ prefixes. If shared URLs return 404, flush permalinks via Settings → Permalinks → Save Changes.

Features

Counter Widgets

Display a live wishlist counter (heart badge) in your site header.

Navigation Menu Counter

The easiest way to add a counter is via the Wishlist Counter Menu Location setting. Select a registered nav menu location and the plugin injects a heart icon with a badge count automatically.

Gutenberg Blocks

Two blocks are available in the WordPress block editor:

  • Wishlist Counter — Displays a heart icon with the total item count
  • Registry Counter — Displays a gift icon with the total registry item count

Elementor Widgets

Two Elementor widgets are available under the "Logicfire" category:

  • Wishlist Counter — Same as the Gutenberg block, with Elementor styling controls
  • Registry Counter — Same as above, for registry items
Features

Shortcodes

Embed wishlist components anywhere using shortcodes.

Wishlist Dashboard Page

Shortcode
[lfwlr_wishlist_registry_page]

Renders the full wishlist and registry management dashboard. Place this on a dedicated page and select that page in the plugin settings.

Attributes: None

Wishlist Button

Shortcode
[lfwlr_wishlist_button product_id="123" style="auto" position="topright"]

Place a wishlist heart button for a specific product anywhere on your site.

AttributeTypeDefaultDescription
product_idIntegerAuto-detectedProduct ID. Required when outside a product context.
styleStringautoauto (single on product page, loop elsewhere), single, or loop.
positionStringFrom settingstopleft or topright — for loop style only.

Wishlist Counter

Shortcode
[lfwlr_wishlist_counter icon="heart" show_label="no" label="Wishlist"]

Displays a wishlist counter widget with a badge showing the user's total wishlisted item count. Includes a dropdown preview of items and a link to the wishlist page. Ideal for headers, sidebars, or any widget area.

AttributeTypeDefaultDescription
iconStringheartIcon to display. Options: heart, bookmark, star.
show_labelStringnoShow a text label next to the icon. yes or no.
labelStringWishlistLabel text (only visible when show_label="yes").

Registry Counter

Shortcode
[lfwlr_registry_counter icon="gift" show_label="no" label="Registry"]

Displays a registry counter widget with a badge showing the user's total registry item count. Only renders when the Registry feature is enabled. Includes a dropdown preview and a link to the registry page.

AttributeTypeDefaultDescription
iconStringgiftIcon to display. Options: gift, heart, star.
show_labelStringnoShow a text label next to the icon. yes or no.
labelStringRegistryLabel text (only visible when show_label="yes").
💡
Registry Counter Visibility

The [lfwlr_registry_counter] shortcode outputs nothing if the Registry feature is disabled (lfwlr_enable_registry = no).

Features

Gutenberg Blocks

Native WordPress block editor integration.

Three blocks are available in the block editor under the "Logicfire" category:

Wishlist Button Block

Renders a wishlist heart button for a product. Configure the product ID in the block's sidebar settings.

Wishlist Counter Block

Displays a heart icon with a badge showing the user's total wishlisted item count. Ideal for header templates.

Registry Counter Block

Same as the Wishlist Counter, but counts items from registries (wishlists with event dates).

Features

Elementor Widgets

Drag-and-drop wishlist widgets for Elementor.

Three widgets are available in Elementor under the "Logicfire" category:

  • Wishlist Button — Heart toggle for a specific product
  • Wishlist Counter — Heart badge with total item count
  • Registry Counter — Gift badge with registry item count

Each widget supports Elementor's style controls for colors, typography, and spacing.

Pro Feature

Claims — "I'll Buy This"

Prevent duplicate gifts by letting visitors reserve registry items before purchasing.

How It Works

  1. A visitor opens a shared registry page
  2. They click "I'll buy this" on an available item
  3. They enter their email, name, and desired quantity
  4. The item is reserved — other visitors see the remaining claimable quantity
  5. When the visitor purchases the item, the claim transitions to purchased
  6. If the visitor doesn't complete the purchase within the expiry period, the claim expires automatically

Claim Statuses

StatusDescription
claimedVisitor has reserved the item but hasn't purchased yet
purchasedThe claim was fulfilled (order completed/processing)
expiredClaim row is deleted when expiry runs (item becomes available again)

Claim Expiry

Uncompleted claims expire after the configured number of hours (default: 48 hours). The cleanup runs hourly via Action Scheduler (preferred) or WP-Cron as fallback.

Configure via: WooCommerce → Settings → Wishlist & Registry → Claim Expiry (hours)

REST API

MethodEndpointDescription
POST/lf-wlr-wc/v1/claimsCreate a new claim
DELETE/lf-wlr-wc/v1/claims/{id}Cancel a claim

Developer Hooks

HookTypeParametersDescription
lfwlr_item_claimedAction$item_id, $email, $wishlist_id, $claimFires when an item is claimed
lfwlr_claim_cancelledAction$claim_id, $claimFires when a claim is cancelled
lfwlr_claim_expiredAction$claim_id, $claimFires when a claim expires
lfwlr_claim_purchasedAction$claim_id, $order_id, $claimFires when a claim transitions to purchased
Pro Feature

Ship to Registry Recipient

Registry items automatically ship to the registry owner's address instead of the purchaser's.

How It Works

  1. A visitor adds a registry item to their cart from a shared registry page
  2. At checkout, the cart is split into packages: one for registry items (shipping to the registry owner) and one for the customer's own items
  3. A notice appears at checkout: "Registry items in your cart will ship to the registry recipient."
  4. The purchaser sees "Registry recipient" as the package name — the owner's actual address is masked
  5. In the admin order view, a prominent notice shows the registry recipient's address for fulfillment

Address Resolution

The registry owner's shipping address is resolved from WooCommerce customer meta (shipping address fields, falling back to billing address). The address is stored as order item meta (_wlrp_ships_to_registry) for admin reference.

Address Masking

Purchasers never see the registry owner's full address. The shipping package is labeled "Registry recipient" at checkout.

Pro Feature

Analytics Dashboard

Insights into wishlist and registry activity.

Accessing Analytics

Navigate to WooCommerce → Logicfire Analytics in the WordPress admin. Requires the manage_woocommerce capability.

Available Statistics

MetricDescription
Total WishlistsTotal number of wishlists (all types)
Total ItemsTotal items across all wishlists
Unique UsersNumber of unique registered users with wishlists
Total PurchasesItems with purchased status
Active ClaimsItems with claimed status
Top 10 Wishlisted ProductsMost popular products by wishlist count, with product details
Recent PurchasesLast 10 fulfilled purchases with product and purchaser info

Developer: Extend Analytics

PHP — Filter analytics data
add_filter( 'lfwlr_analytics_stats', function( $stats ) {
    // Add custom metrics
    $stats['my_custom_metric'] = calculate_something();
    return $stats;
});
Pro Feature

Purchase Tracking

Track fulfillment of wishlist and registry items through the order lifecycle.

How It Works

The purchase tracker monitors WooCommerce order status changes and updates wishlist item fulfillment:

  • Order completed/processing — Increments quantity_fulfilled for matching items, transitions claims from claimedpurchased
  • Order cancelled/refunded — Reverts fulfilled quantities and transitions claims back to claimed
  • Payment complete — Also triggers fulfillment if order status qualifies

Order Meta

The tracker stores data on order items and orders:

Meta KeyOnDescription
_lfwlr_item_idOrder ItemWishlist item ID being fulfilled
_lfwlr_claim_idOrder ItemClaim ID if purchased via a claim
_lfwlr_purchases_processedOrderFlag to prevent double-processing
_lfwlr_direct_fulfillmentsOrderArray of item_id/quantity/claim_id for revert on cancellation

Developer Hooks

HookTypeParametersDescription
lfwlr_item_purchasedAction$item_id, $order_id, $claim_id|nullFires when a wishlist item is purchased
lfwlr_item_fulfilledAction$item_id, $wishlist_idFires when an item's fulfilled quantity reaches its needed quantity
lfwlr_claim_purchasedAction$claim_id, $order_id, $claimFires when a claim transitions to purchased
Developer

REST API

All endpoints use the namespace /wp-json/lf-wlr-wc/v1/. Authentication uses WordPress nonces or the X-LFWLR-Guest-Token header for guests.

Wishlists

MethodEndpointAuthDescription
GET/wishlistsYesList user's wishlists. Query param: with_items=full|ids|count|none
POST/wishlistsYesCreate wishlist. Body: title (required), visibility, description, event_date
GET/wishlists/{id}YesGet a single wishlist
PUT/PATCH/wishlists/{id}YesUpdate wishlist. Body: title, visibility, description, event_date, is_default
DELETE/wishlists/{id}YesDelete a wishlist and all its items

Items

MethodEndpointAuthDescription
POST/wishlists/{id}/itemsYesToggle item (add/remove). Body: product_id, variation_id
PUT/PATCH/items/{id}YesUpdate item. Body: quantity, priority, note
DELETE/items/{id}YesRemove item from wishlist
PUT/PATCH/items/{id}/quantityYesUpdate item quantity only

Utility

MethodEndpointAuthDescription
GET/status/{product_id}YesCheck if product is in any of user's wishlists
GET/countYesGet total item count across all wishlists
GET/shared/{slug}NoGet a shared wishlist by slug (public access)
POST/guest-tokenNoCreate a new guest token

Sharing

MethodEndpointAuthDescription
POST/shareYesSend share email. Body: wishlist_id, recipient_email, sender_name, message
GET/wishlists/{id}/sharesYesList share invitations for a wishlist
POST/wishlists/{id}/sharesYesCreate share invitation. Body: email, access_level (view|purchase)
DELETE/shares/{id}YesRevoke a share invitation

Pro Endpoints

MethodEndpointAuthDescription
POST/claimsNoCreate claim. Body: item_id, wishlist_id, email, name, quantity, token
DELETE/claims/{id}NoCancel a claim
GET/product-in-wishlistsYesCheck which wishlists contain a product. Query: product_id, variation_id

Authentication

Authenticated endpoints require either:

  • A valid WordPress cookie + nonce (X-WP-Nonce header)
  • A guest token via X-LFWLR-Guest-Token header
  • When guest wishlists are enabled, anonymous requests are allowed (guest tokens created on demand)
Developer

Hooks & Filters

Extend and customize plugin behavior via WordPress actions and filters.

Lifecycle Actions

HookParametersDescription
lfwlr_initFires after the plugin is fully initialized
wishlist_registry_pro_loadedFires after the Pro plugin loads (Pro)
wishlist_registry_pro_initFires after Pro classes are initialized (Pro)
lfwlr_register_rest_routesFires after base REST routes are registered; add custom routes here

Wishlist Actions

HookParametersDescription
lfwlr_wishlist_created$wishlist_id, $argsAfter a wishlist is created
lfwlr_wishlist_updated$wishlist_id, $argsAfter a wishlist is updated
lfwlr_before_delete_wishlist$wishlist_idBefore a wishlist is deleted
lfwlr_wishlist_deleted$wishlist_idAfter a wishlist is deleted

Item Actions

HookParametersDescription
lfwlr_item_added$item_id, $wishlist_id, $product_id, $variation_idAfter an item is added
lfwlr_before_remove_item$item_id, $itemBefore an item is removed
lfwlr_item_removed$item_id, $wishlist_id, $product_idAfter an item is removed
lfwlr_item_updated$item_id, $argsAfter an item is updated
lfwlr_item_added_to_cart$product_id, $wishlist_id, $variation_id, $qtyWhen a wishlisted product is added to cart
lfwlr_item_purchased$item_id, $order_id, $claim_id|nullWhen a wishlist item is purchased
lfwlr_item_fulfilled$item_id, $wishlist_idWhen fulfilled quantity reaches needed quantity (Pro)

Claim Actions (Pro)

HookParametersDescription
lfwlr_item_claimed$item_id, $email, $wishlist_id, $claimWhen an item is claimed
lfwlr_claim_cancelled$claim_id, $claimWhen a claim is cancelled
lfwlr_claim_expired$claim_id, $claimWhen a claim expires
lfwlr_claim_purchased$claim_id, $order_id, $claimWhen a claim transitions to purchased

Filters

FilterParametersDescription
lfwlr_settings_fields$settingsModify admin settings fields array
lfwlr_before_create_wishlist$argsModify wishlist data before creation
lfwlr_before_update_wishlist$args, $idModify wishlist data before update
lfwlr_before_add_item$data, $wishlist_id, $product_idModify item data before adding
lfwlr_before_update_item$args, $item_idModify item data before update
lfwlr_wishlist_data$row, $idFilter wishlist data after retrieval
lfwlr_user_wishlists$wishlists, $user_id, $guest_tokenFilter user's wishlist list
lfwlr_total_item_count$count, $user_id, $guest_tokenFilter total item count
lfwlr_default_wishlist_title$titleChange the auto-created wishlist name
lfwlr_rest_identity$identity, $requestOverride user/guest identity resolution
lfwlr_share_url$url, $wishlistModify the generated share URL
lfwlr_can_view_shared_wishlist$can_view, $wishlist, $tokenOverride shared page access check
lfwlr_shared_page_config$config, $wishlist, $itemsModify shared page JS config
lfwlr_enriched_item$enriched, $item, $productAdd data to enriched item objects
lfwlr_remove_on_add_to_cart$should_remove, $product_idOverride remove-on-add-to-cart per product
lfwlr_heart_html$html, $product_idModify loop heart button HTML
lfwlr_banner_html$html, $product_idModify single product banner HTML
lfwlr_wishlist_button_shortcode_html$html, $product_id, $attsModify shortcode button HTML
lfwlr_template_args_{name}$argsFilter template variables
lfwlr_analytics_stats$statsExtend analytics data (Pro)
Developer

Template Overrides

Override plugin templates from your theme.

How It Works

The plugin uses the lfwlr_locate_template() function to resolve template paths. It checks:

  1. your-theme/logicfire-wishlist-registry-for-woocommerce/{template_name}
  2. plugin/templates/{template_name} (default)

Example: Override Email Template

To customize the "item purchased" email template:

File path
your-theme/logicfire-wishlist-registry-for-woocommerce/emails/item-purchased.php

Copy the original from the plugin's templates/emails/item-purchased.php and modify as needed. Template variables are passed via extract() and can be filtered with lfwlr_template_args_{template_name}.

Help

Frequently Asked Questions

Yes. Both the free and Pro plugins declare HPOS compatibility and work with custom order tables.

Yes. Enable Guest Wishlists in settings. Guest data is stored via a cookie-based token and can be merged when the user creates an account.

Three options: (1) Select a nav menu location in the Counter Menu Location setting, (2) Use the Wishlist Counter Gutenberg block in your header template, or (3) Use the Wishlist Counter Elementor widget.

Flush your permalinks: go to Settings → Permalinks and click Save Changes. The plugin registers rewrite rules for /wishlist/ and /registry/ prefixes.

A registry is a wishlist with an event date. Registries support quantity tracking, fulfillment progress, claims (Pro), and ship-to-recipient (Pro).

No. The Pro add-on requires the free Logicfire Wishlist & Registry for WooCommerce plugin. If the free plugin is deactivated, Pro will show an admin notice and not load.

When a visitor clicks "I'll buy this" on a registry item, the item is reserved. Other visitors see the remaining claimable quantity. If the claim isn't completed within the expiry period (default 48 hours), it expires and the item becomes available again.

Yes. Go to WooCommerce → Settings → Wishlist & Registry → Appearance and set the Primary, Hover, and Active colors. You can also use the Custom CSS field for more advanced styling.

Help

Changelog

Free Plugin

  • Fix – registry fulfillment bar no longer shows for plain wishlists
  • Fix – quantity stepper respects stock limits on shared page
  • Fix – shared-page "Add to Cart" respects stock quantity and displays stock-aware messages
  • Fix – note icon tooltip hidden behind header on some themes
  • Fix – "No wishlists yet" flash replaced with a proper loading skeleton
  • New – Notify on Claim setting (under Notifications section; visible when Pro is active)
  • New – WooCommerce email class LFWLR_Email_Wishlist_Shared
  • Fix – variation images now display correctly in wishlist items
  • Fix – REST identity filter applies to all authenticated endpoints
  • New – Elementor widgets: Wishlist Button, Wishlist Counter, Registry Counter
  • New – lfwlr_enriched_item filter for extending item REST responses
  • Fix – guest token cookie path scoped to site home
  • New – Privacy controls: public, shared, and private visibility per list
  • New – Invite-based sharing with access levels (view / purchase)
  • Fix – counter badge updates correctly after quick add
  • New – Multi-wishlist support with drag & drop reordering
  • New – Registry support with event dates and fulfillment tracking
  • New – REST API v1 with full CRUD operations
  • Refactor – Vue.js-powered frontend replacing legacy jQuery UI

Pro Plugin

  • Fix – claim event hook prefix corrected to lfwlr_
  • Fix – scheduled actions use correct hook name
  • Fix – claim status transitions handle edge cases
  • Fix – asset enqueue uses correct file names
  • Fix – purchase tracker bootstrap initialization
  • Fix – analytics page query performance improvements
  • New – Claims system ("I'll buy this") for gift registries
  • New – Ship to registry recipient with cart splitting and address masking
  • New – Analytics dashboard
  • New – Purchase and fulfillment tracking
  • New – REST API endpoints for claims