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

Private guest and account wishlists with secure sharing and individual-item cart actions.

== Description ==

Launch edition boundary: Free: one guest/account wishlist with up to 1,000 saved selections, selected variations, private notes, sharing, styling, individual-item cart addition, privacy export/erasure. Pro: editable wishlist quantities and selected/all-item cart actions, plus existing multiple lists, requested alerts, quotes/imports and reporting. Ordinary WooCommerce cart quantities stay available. On Pro deactivation saved quantities remain stored; individual wishlist purchases add one unit. No shopper vendor upsell. Install Free 0.3.19 before Pro 0.3.19 without uninstalling.
WishlistGenius lets guests and signed-in shoppers save products for later, keep their list private, share a link when they choose, and add saved selections to the WooCommerce cart. Free includes one wishlist with many saved selections, private notes, variation-aware saving, individual-item add-to-cart, and list export and erasure. Pro adds editable wishlist quantities and selected/whole-list cart actions. The separately installed Pro add-on provides cart save-for-later, public wishlist discovery, multiple lists, reports and consent-based notifications.

Version 0.3.19. Requires WordPress 7.0+, WooCommerce 10.0+, PHP 8.2+ and single-site WordPress; multisite is not supported. Check your database setup, theme, product options, cart and other extensions.

Wishlist features run locally without a developer account or time limit. Optional administrator-selected installation reporting and email signup start off and are described below. Shopper wishlists and reporting records stay in your store database.

Review invitations remain off until the official directory listing is verified. When enabled, the local invitation becomes eligible after 30 days and successful shopper saves on at least three different days. Administrators can choose Review, Remind me later or Do not ask again. No reward or positive-rating requirement applies.

WooCommerce native wishlists keep their own data and controls. When that feature is active, automatic account navigation gives WishlistGenius a separate account endpoint. Setup also offers an always-separate endpoint or the wishlist page only.

== Privacy ==
Wishlist data is stored in your WordPress database. This includes saved products and variations, quantities, notes, list names, sharing choices, account or guest identifiers, wishlist activity, cart-operation records, and saved-item attribution on orders. For signed-in shoppers, it records paid purchases that match their existing saved selections so purchased products can be excluded from relevant notifications. Unrelated order products are not copied into the wishlist purchase records. Store staff with the relevant WooCommerce management permission can access administrative wishlist information.

Review eligibility stores the first successful shopper-save date and at most three distinct activity dates locally. It does not store shopper identities or transmit review eligibility. A permanent dismissal retains only the dismissal choice.

Guest wishlists use the signed wgg_guest cookie to reconnect the browser with its saved list. Its default lifetime is 30 days, configurable from 1 to 365 days. Guest data is removed by scheduled cleanup after expiry. Wishlist activity and notification jobs use the configured retention period, 90 days by default. Cart-operation records expire after one day. Account wishlists are retained until deleted. Purchase-suppression records are removed by scheduled cleanup once no matching saved selection remains; order information follows your store's order-retention settings. Scheduled cleanup depends on WordPress cron running.

Lists start private. A shopper can choose link sharing. Pro adds public sharing and discovery when the merchant enables the directory. Existing public lists keep their saved sharing choices and direct links, subject to the merchant's directory setting. Shared views exclude private notes and account details. The wishlist includes export and erase controls; registered-account data and saved-item order attribution also integrate with the WordPress personal-data export and erasure tools. Store owners should explain these features, their retention choices and any configured mail provider in their own privacy policy.


Workspace theme and focus preferences stay in the current browser, scoped to this site and administrator. The overview reads current local wishlist totals and recent list summaries; it does not track visits or send data.

Merchant workflow preferences are stored locally per administrator. Dismissals persist, and a requested advanced task is retained for seven days without recipient data or approvals. Optional local journey counts start off, expire after 90 days and can be deleted by turning the preference off. They describe this administrator's actions, not paid conversions, and are never transmitted to WishlistGenius. Downloading them is a separate manual action. Normal WordPress scheduled cleanup removes expired task and measurement data when it runs; expired data is excluded from the interface immediately.

Optional merchant connection choices

Guided setup includes a separate optional Privacy & email preferences step after saving the storefront settings. Administrators can reopen guided setup from Setup & settings at any time. Both choices start unchecked and can be skipped; neither is required to use Free or Pro. The choices are separate from shopper notifications, Pro licence activation and publisher update checks.

Installation sharing sends only the site hostname, reported Free/Pro edition, plugin version, WordPress version, PHP version and site language to https://wishlistgenius.com/newsletter-api/v1/plugin-welcome/ . It sends a random connection identifier and secret token to authenticate reports and withdrawals. It does not send URL paths, query strings, shopper records or order data. Accepted reports refresh at most weekly when WordPress cron runs. A changed site address pauses reporting until new choices are reviewed. These are consented, self-reported installations, not verified domain ownership or a count of all installations.

The independent email choice sends the entered email address and reported Free/Pro edition for setup tips, product releases, articles and occasional Pro offers. The address can be prefilled locally from the site administration email configured in WordPress but is not sent unless that choice is selected and saved. Email-only signup does not send the site hostname. New requests require inbox confirmation; an accepted request does not prove delivery or an active subscription. Existing subscribers retain their existing preferences. Edition updates help avoid irrelevant Free-to-Pro offers; they do not verify a purchase.

Privacy & email preferences lets administrators stop either reporting scope, retry a failed request, and review what was selected. Stopping email/edition reporting cancels a pending signup created by that connection, but confirmed newsletters are independent: use the private preferences or unsubscribe link in an email to stop those. Local reporting stops before a remote withdrawal is attempted. A failed withdrawal can be retried. Skipping does not create a connection. Deactivation stops scheduled reporting; it is not a newsletter unsubscribe.

The service expires installation and connection reports after 90 days without an accepted refresh; a bounded pseudonymous revocation record may remain for that period. Pending email requests expire after 48 hours. Confirmed newsletter records expire after at most 730 days unless renewed through a separate explicit choice; consent history and unsubscribe suppression records have a 180-day retention period. The service receives the connection IP; ordinary security-request logging is described at https://wishlistgenius.com/privacy/#plugin-welcome . Local connection choices integrate with WordPress personal-data export/erasure for the administrator's supplied email; the domain-only connection can be stopped in Privacy & email preferences. Local-only workflow measurements remain separate and are never transmitted.

== Installation ==
Install WooCommerce 10.0+ on single-site WordPress, then WishlistGenius Free. If you use Pro, install the matching Pro version after Free and keep both active. Deliberate individual activation opens guided Setup & settings in focus mode, including reactivation or reinstalling with retained data. Create or select the wishlist page, review the button settings, and choose Save and continue to review optional privacy and email choices. Both choices start unchecked and can be skipped. Existing settings and saved sharing choices are preserved. Back to WordPress and Exit focus remain available. Normal updates, bulk activation and CLI activation do not redirect. Open guided setup from Setup & settings whenever needed.

== Manual ==
Online Free/Pro manual: https://wishlistgenius.com/docs/manual/
Versioned printable PDF: https://wishlistgenius.com/docs/manual/#download

== Frequently Asked Questions ==
= Does Free require Pro or a developer account? =
No. Its included wishlist, link sharing, cart actions, export and erasure work without payment, an account with the developer, or a time limit. Pro is an optional, separately installed add-on with its own advanced implementation.

= Does uninstall delete data? =
No, data is retained by default. To request removal, define the literal boolean WG_DELETE_DATA_ON_UNINSTALL as true before uninstalling Free. This also removes plugin settings, database-backed saved previews, generated coupons and scheduled plugin work. Temporary Pro previews stored only in an external object cache expire according to the cache instead of being removed immediately. Their default lifetimes are 20–30 minutes; host filters can change these lifetimes. Store orders, products and pages remain. Removing Pro alone retains the shared wishlist data.

= Are all product types supported? =
Simple products and selected or unselected variable products are supported. Additional add-on, bundle, booking or subscription options need dedicated adapters.

= What should I check before using this release? =
Test the wishlist page, your theme, product variations, cart and checkout on staging before using it on a live store. Back up your database and plugin files before later updates. Install the Free package first, followed by the matching optional Pro add-on.

= Is source code included? =
Yes. This ZIP includes the editable PHP, JavaScript and CSS used by the plugin; runtime files run directly without a compilation step. WordPress and WooCommerce supply their own libraries and must be installed separately. A translation template can be regenerated from this plugin directory with `wp i18n make-pot . languages/wishlist-genius.pot --domain=wishlist-genius`.

== Changelog ==

= 0.3.19 =
* Fix visible checkbox and radio selection in the merchant workspace.
* Include optional privacy and email choices in a two-step guided setup.
* Open focused Free setup or Pro licence settings after deliberate individual activation, including reinstalls with retained data.
* Keep saved wishlists, settings and sharing choices; bulk, CLI and automatic updates do not trigger an activation redirect.


= 0.3.18 =
* Add local usage-based review eligibility with three dismissal choices, dormant until the directory listing is verified.
* Keep WooCommerce native wishlists on their own account endpoint and offer explicit coexistence choices.
* Link the complete online and printable Free/Pro manual.


= 0.3.17 =
* Open first manual activation in focused setup; offer independent optional installation/email choices after setup, clarify Customer wishlists and show contextual Pro examples without changing shopper features.


= 0.3.16 =
* Matched release for the Pro ZIP-install activation-link correction. Update Free first, then matching Pro, without uninstalling. Free feature behavior is unchanged.

= 0.3.15 =
* Correct current version and installation guidance; use matching Free and Pro packages, updating Free first without uninstalling. Plugin behavior and the Pro minimum Free version remain unchanged.

= 0.3.14 =
* Move editable wishlist quantities and selected/all-item cart selection to the separate Pro add-on. Keep variation saving, notes and individual-item cart additions. Stored quantities survive add-on deactivation.

= 0.3.13 =
* Clarify removal of database previews and expiry of temporary previews in external object caches.

= 0.3.12 =
* Make first wishlist-page creation visible when setup is incomplete.
* Show locally packaged examples of the actual Pro shopper interface with fictional data.

= 0.3.11 =
* Put saved wishlist activity first, simplify everyday wording and improve workspace readability.
* Expand the Free/Pro comparison and move optional local activity counts into Diagnostics.

= 0.3.10 =
* Restored the wishlist-genius plugin folder and text domain for the directory submission.
* Added the Plugins.shop author link and WishlistGenius product link.

= 0.3.9 =
* Removed the private-beta workspace label and updated current release wording.

= 0.3.8 =
* Adopted the WishlistGenius name and text domain for the directory submission.
* Moved add-on publishing and automation settings fully into the separate add-ons.
* Filtered Elementor extension output with an explicit safe HTML policy.
* Preserved existing wishlists, sharing links and legacy installation identifiers.
