=== WishlistGenius for WooCommerce ===
Contributors: wishlistgenius
Tags: wishlist, woocommerce, save for later, favorites
Requires at least: 7.0
Tested up to: 7.1
Requires PHP: 8.2
Stable tag: 0.3.38
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A free WooCommerce wishlist plugin with guest saving, product variations, link sharing and a dashboard for customers' saved products.

== Description ==

WishlistGenius lets WooCommerce shoppers save products, add private notes and share by link without signup.

[Live Free and Pro demos](https://wishlistgenius.com/demo/) | [Documentation and PDF manual](https://wishlistgenius.com/docs/manual/) | [Free vs Pro](https://wishlistgenius.com/free-pro/) | [Support](https://wishlistgenius.com/support/)

= What is included in Free? =

* One wishlist per guest or account, with up to 1,000 saved selections.
* Save simple products and selected product variations; add items to the cart individually.
* Private notes and optional sharing by link. Shared views exclude notes and account details.
* Search, sorting, manual ordering and grid/list views for saved products.
* CSV export and print or save as PDF through the browser's print dialog.
* Wishlist, save-button and counter blocks and shortcodes, plus an Elementor widget.
* Button labels, icon, colours and placement; guided header/mobile wishlist links.
* Guided setup, wishlist management and read-only product inspection.
* Wishlist export and erasure, plus WordPress personal-data tools. Privacy cleanup also covers retained Pro records while the add-on is inactive or removed.

Free works locally without payment, signup or a time limit. Reporting and newsletter signup are optional.

= Try the live demos =

Explore real WordPress/WooCommerce stores: [Free shopper](https://plugins.shop/wishlistgenius-demo/?edition=free&task=shopper), [Free store owner](https://plugins.shop/wishlistgenius-demo/?edition=free&task=merchant), [Pro shopper](https://plugins.shop/wishlistgenius-demo/?edition=pro&task=shopper) or [Pro store owner](https://plugins.shop/wishlistgenius-demo/?edition=pro&task=merchant).

No signup or purchase. Separate Free/Pro stores last 30 minutes. Use fictional details; no payments or external email. Messages appear locally.

= Optional Pro add-on =

The paid Pro add-on offers requested restock/price-drop alerts, reminders, campaigns, product reports, circular heart-only buttons and supported image overlays, multiple lists, wishlist quantities, bulk cart, cart save-for-later, public discovery, quotes and imports.

Sending requires configuration and customer permission. Saves/previews never subscribe anyone. WooCommerce cart quantities work in Free.

Free shows labelled, hideable Pro previews with fictional data. Working Pro tools require the add-on and successful licence activation; previews never enable sending.

== Installation ==

Requires single-site WordPress 7.0+, WooCommerce 10.0+, PHP 8.2+ and JavaScript. Multisite is unsupported.

1. Activate WooCommerce, then WishlistGenius Free. Individual activation opens Setup & settings.
2. Choose the wishlist page, buttons and header/mobile access; Save and continue. Detailed options: Customize further.
3. Save choices & finish or Finish without sharing. Finish setup without changing choices preserves existing choices.
4. Choose Try your wishlist, save a product, then check View wishlist and a cart action. Publish a product first if needed. Exit focus returns to WordPress.
5. For Pro, install matching Pro 0.3.38 after Free; keep both active, then activate your Pro licence in Licence & updates. Update Free first without uninstalling.

Bulk/CLI activation and updates do not redirect. Test on staging.

== Frequently Asked Questions ==

= Can guests save products without signup? =

Yes; a cookie reconnects the browser to its guest wishlist.

= Can I see which products customers saved in Free? =

Yes: in Customer wishlists, select a list name or View products on desktop. The read-only viewer excludes private notes/identities. Pro reports are separate.

= How do I place a wishlist or save button on a page? =

Use the wishlist, button or counter blocks, the Elementor widget, or:

* `[wishlist_genius]` for the wishlist.
* `[wishlist_genius_button product_id="123"]` for a product button; replace 123 with its ID.
* `[wishlist_genius_counter]` for the saved-selection count.

= Which products are supported? =

Simple and variable products are supported. Add-on, bundle, booking and subscription options need adapters and testing. WooCommerce native wishlists remain separate; account navigation is configurable.

= Will uninstalling remove my wishlists? =

Data stays by default. Set `WG_DELETE_DATA_ON_UNINSTALL` to the literal boolean true before uninstalling Free to remove plugin data/settings, database-backed previews, generated coupons and scheduled work. Orders, products and pages remain. Removing Pro alone retains wishlists/quantities; Free wishlist purchases then add one unit. Explicit deletion clears local licence credentials; Disconnect first to release a remote seat. Cache-only previews/proofs expire separately; see the manual.

== Screenshots ==

1. A private shopper wishlist with saved products and individual-item cart actions.
2. Save a product, then use View wishlist or Undo in its confirmation.
3. Guided storefront setup with header and mobile wishlist access.
4. Customer wishlists in the administrator workspace.
5. Separate, optional installation-reporting and email choices, both unchecked.
6. Free shopper wishlist on a phone.
7. Read-only saved products in Customer wishlists, excluding private notes.

== Privacy ==

Local data: products/variations, quantities, notes, lists/sharing, account/guest IDs, activity, cart operations and purchase attribution. Matching account purchases suppress relevant notifications; unrelated order products are not copied. Staff access requires WooCommerce management permission.

The signed wgg_guest cookie defaults to 30 days (configurable 1-365). Cron removes expired guest data. Activity/jobs default to 90-day retention; cart records expire after one day. Account lists stay until deleted; purchase-suppression records until no matching selection remains. Orders follow store retention settings.

Lists start private. Link sharing excludes notes/account details. Pro public sharing/discovery and retained public links follow the store's directory setting. Export/erasure covers account data and purchase attribution. Explain retention and mail providers in your privacy policy.

The merchant workspace uses a consistent light appearance. Focus-mode choices stay in-browser. Tab/workflow preferences are local per admin/store; requested tasks expire in seven days with no recipient data or approvals. Local journey counts default off, expire in 90 days and are deleted when disabled. Manual export only; no transmission or paid-conversion claims. Expired data is hidden pending cleanup. The overview does not track visits.

Review invitations are off pending listing verification. Eligibility keeps a first-save time, last day and capped activity count locally, without identity/transmission. If enabled: 30 days/three save days; review/postpone/dismiss without rewards or rating conditions. Dismissal retains only that choice.

== Optional external service ==

Setup offers two independent, unchecked, skippable choices after the storefront save. Change them in Privacy & email preferences. They do not authorize shopper mail, Pro licence connection or publisher update checks.

* [Service endpoint](https://wishlistgenius.com/newsletter-api/v1/plugin-welcome/)
* [Privacy policy](https://wishlistgenius.com/privacy/#plugin-welcome)
* [Service terms](https://wishlistgenius.com/terms/)

Installation sharing sends hostname, reported edition, plugin/WordPress/PHP versions and language, at most weekly via cron. It excludes URL paths/queries, shopper records and orders. Address changes pause reporting pending review. Reports do not prove ownership or count all installations.

Email signup sends the entered address and reported edition for tips, releases, articles and occasional Pro offers. A locally prefilled admin email is sent only on selecting/saving that choice; email-only signup sends no hostname. New signups need inbox confirmation and start with all topics/weekly articles; recipients can change topics or unsubscribe. Existing preferences remain. Purchase-history personalization/link tracking require separate choices. Edition does not prove purchase.

Requests use a random connection ID, protected credential and consent version. The service records consent/report times and receives the network address for security logging. No shopper data, orders, names, wishlist contents or plugin lists are sent.

Stopping a scope stops local reporting before remote withdrawal; failures are retryable. Stopping email/edition sharing cancels that connection's pending signup. Confirmed subscriptions require the email's preferences/unsubscribe link. Skipping creates no connection; deactivation stops reporting, not confirmed subscriptions.

Reports/connection records expire after 90 days without refresh; pseudonymous revocation records may remain that long. Pending emails expire after 48 hours; confirmed records within 730 days unless explicitly renewed. Consent/suppression history lasts 180 days. Cleanup, outages/backups affect deletion. Acceptance does not prove delivery/subscription.

WordPress export/erasure covers local choices for the supplied admin email. Stop domain-only connections in Privacy & email preferences. Workflow counts are never transmitted.

== Changelog ==

= 0.3.38 =
* Keep wishlist buttons, counters, text links and the merchant preview readable with light or dark brand colours.
* Keep keyboard focus visible while preserving the chosen accent colour.

= 0.3.37 =
* Bring merchant request feedback into view when the page is scrolled.
* Refresh the Restore hidden Pro suggestions control immediately after hiding a suggestion.
* Use a consistent light merchant workspace, including dialogs and Pro previews, without a theme selector.
* Return keyboard focus to the original product button after closing the list picker.
* Keep toast actions readable when themes change button hover, focus or pressed colours.

= 0.3.36 =
* Keep wishlist controls readable on hover and keyboard focus when themes add their own button styles.
* Return keyboard focus to Email preferences after closing its dialog.
* Preserve existing wishlist actions, saved data and access requirements.


= 0.3.35 =
* Keep wishlist menu counters compact and readable when themes apply link spacing or hover styles.
* Preserve saved products, counter behavior and Free/Pro access rules.


= 0.3.34 =
* Matched release for clearer Pro email setup and translatable merchant licence messages. Free wishlist features and the admin-session correction are unchanged.


= 0.3.33 =
* Opening the merchant workspace no longer creates an empty shopper wishlist or changes customer-wishlist totals.
* Merchant requests retain permission, nonce and write-rate checks. Real storefront saves, including those by store administrators, still create and use wishlists normally.

= 0.3.32 =
* Match the Pro activation requirement while keeping Free wishlists, saved-data access and privacy tools available.
* Distinguish an installed Pro add-on from unlocked Pro features.

= 0.3.31 =
* Compact search, sorting and layout controls on narrow wishlists while keeping all actions available.
* Reach the optional-sharing skip action before the form, and see a clear sideways-scroll cue on mobile overview tables.
* Matching Pro release improves email setup summaries and alert navigation.


= 0.3.30 =
* Shorter setup, optional-choice actions and a first-save walkthrough.
* Failed shared-list paging and initial drawer loads keep recovery actions.

= 0.3.29 =
* Export, erasure and retention cover retained data with Pro inactive/removed. Erased guest identities and recovery access are revoked.
* Bounded activity retention; explicit storage-failure reporting.

[Earlier changes](https://wishlistgenius.com/changelog/)
