{"id":358421,"date":"2026-08-28T12:47:49","date_gmt":"2026-08-28T12:47:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/flexa-wishlist-for-woocommerce\/"},"modified":"2026-08-31T04:14:49","modified_gmt":"2026-08-31T04:14:49","slug":"flexa-wishlist-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/flexa-wishlist-for-woocommerce\/","author":23412324,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"6.2","requires_php":"8.2","requires_plugins":null,"header_name":"Flexa Wishlist for WooCommerce","header_author":"FlexaTech","header_description":"A mobile-first, cache-safe wishlist for WooCommerce: one-tap save, guest persistence, silent account merge, a beautiful wishlist page, and effortless sharing.","assets_banners_color":"cae0f6","last_updated":"2026-08-31 04:14:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":90,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"flexatech","date":"2026-08-28 12:47:39","revision":3670366},"1.0.2":{"tag":"1.0.2","author":"flexatech","date":"2026-08-31 03:26:07","revision":3673327},"1.1.0":{"tag":"1.1.0","author":"flexatech","date":"2026-08-31 04:14:49","revision":3673353}},"upgrade_notice":{"1.1.0":"<p>Adds a Share button to the wishlist page with copy-link, native share, and social channels.<\/p>","1.0.2":"<p>Fixes the wishlist page spinner that could keep spinning after items loaded.<\/p>","1.0.1":"<p>Security and compliance fixes: multi-wishlist unlocked for free, item-toggle ownership check, custom CSS removed.<\/p>","1.0.0":"<p>Initial release of Flexa Wishlist for WooCommerce.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3670401,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3670401,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3670401,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3670401,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"flexa-wishlist\/page":{"name":"flexa-wishlist\/page","title":"Wishlist"},"flexa-wishlist\/button":{"name":"flexa-wishlist\/button","title":"Wishlist Button"},"flexa-wishlist\/counter":{"name":"flexa-wishlist\/counter","title":"Wishlist Counter"}},"tagged_versions":["1.0.1","1.0.2","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3673326,"resolution":"1","location":"assets","locale":"","width":1170,"height":658},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3673326,"resolution":"2","location":"assets","locale":"","width":1170,"height":658},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3673326,"resolution":"3","location":"assets","locale":"","width":1170,"height":658},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3673326,"resolution":"4","location":"assets","locale":"","width":1170,"height":658},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3673352,"resolution":"5","location":"assets","locale":"","width":1170,"height":658}},"screenshots":{"1":"The one-tap heart button on product cards, with instant optimistic feedback.","2":"The wishlist page \u2014 a responsive card list with add-to-cart and remove-with-undo.","3":"The admin dashboard \u2014 a quick pulse on how shoppers use their wishlists.","4":"Settings \u2014 presets over knobs, with the accent color following your theme.","5":"Sharing a wishlist \u2014 copy the link, use the native share sheet, or post to social channels."}},"plugin_section":[],"plugin_tags":[282,73318,1666,41996,286],"plugin_category":[45],"plugin_contributors":[255540],"plugin_business_model":[],"class_list":["post-358421","plugin","type-plugin","status-publish","hentry","plugin_tags-ecommerce","plugin_tags-save-for-later","plugin_tags-wishlist","plugin_tags-wishlists","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-flexatech","plugin_committers-flexatech"],"banners":{"banner":"https:\/\/ps.w.org\/flexa-wishlist-for-woocommerce\/assets\/banner-772x250.png?rev=3670401","banner_2x":"https:\/\/ps.w.org\/flexa-wishlist-for-woocommerce\/assets\/banner-1544x500.png?rev=3670401","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/flexa-wishlist-for-woocommerce\/assets\/icon-128x128.png?rev=3670401","icon_2x":"https:\/\/ps.w.org\/flexa-wishlist-for-woocommerce\/assets\/icon-256x256.png?rev=3670401","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/flexa-wishlist-for-woocommerce\/assets\/screenshot-1.png?rev=3673326","caption":"The one-tap heart button on product cards, with instant optimistic feedback."},{"src":"https:\/\/ps.w.org\/flexa-wishlist-for-woocommerce\/assets\/screenshot-2.png?rev=3673326","caption":"The wishlist page \u2014 a responsive card list with add-to-cart and remove-with-undo."},{"src":"https:\/\/ps.w.org\/flexa-wishlist-for-woocommerce\/assets\/screenshot-3.png?rev=3673326","caption":"The admin dashboard \u2014 a quick pulse on how shoppers use their wishlists."},{"src":"https:\/\/ps.w.org\/flexa-wishlist-for-woocommerce\/assets\/screenshot-4.png?rev=3673326","caption":"Settings \u2014 presets over knobs, with the accent color following your theme."},{"src":"https:\/\/ps.w.org\/flexa-wishlist-for-woocommerce\/assets\/screenshot-5.png?rev=3673352","caption":"Sharing a wishlist \u2014 copy the link, use the native share sheet, or post to social channels."}],"raw_content":"<!--section=description-->\n<p>Flexa Wishlist replaces the dated \"table of products with social buttons\" pattern with the wishlist UX shoppers already know from modern commerce apps.<\/p>\n\n<ul>\n<li><strong>One-tap save<\/strong> \u2014 an optimistic heart button on product cards and pages. No modal, instant feedback.<\/li>\n<li><strong>Works for guests<\/strong> \u2014 saved items persist without an account, and merge into the account silently and losslessly on login.<\/li>\n<li><strong>Cache-safe<\/strong> \u2014 no per-user markup in cacheable pages; one small dependency-free script and one batched state request. Correct behind full-page caches.<\/li>\n<li><strong>A designed wishlist page<\/strong> \u2014 a responsive card list with add-to-cart, remove-with-undo, and a proper empty state.<\/li>\n<li><strong>Add to cart from the wishlist<\/strong> \u2014 move a single item or the whole list into the cart in one tap, with clear skip reasons for out-of-stock or variable products.<\/li>\n<li><strong>Easy sharing<\/strong> \u2014 native share sheet on mobile, copy-link + channels on desktop, with correct link-preview meta.<\/li>\n<li><strong>Zero configuration<\/strong> \u2014 beautiful defaults, presets over knobs; the accent color follows your theme out of the box.<\/li>\n<li><strong>Accessible &amp; fast<\/strong> \u2014 WCAG 2.2 AA, no color-only state, tight performance budgets.<\/li>\n<li><strong>Developer friendly<\/strong> \u2014 REST API, action\/filter hooks, <code>fw:<\/code> DOM events, Gutenberg blocks, shortcodes, and Elementor widgets.<\/li>\n<\/ul>\n\n<p>Flexa Wishlist for WooCommerce is a complete, professional wishlist product \u2014 free.<\/p>\n\n<h4>Placement<\/h4>\n\n<p>Everything renders through three shortcodes (also available as Gutenberg blocks and Elementor widgets):<\/p>\n\n<ul>\n<li><code>[flexa_wishlist]<\/code> \u2014 the full wishlist page.<\/li>\n<li><code>[flexa_wishlist_button product_id=\"123\"]<\/code> \u2014 a save button (defaults to the current product in a loop).<\/li>\n<li><code>[flexa_wishlist_counter]<\/code> \u2014 a live saved-items count, ideal for the header\/menu.<\/li>\n<\/ul>\n\n<h3>Source code<\/h3>\n\n<p>The plugin ships a compiled admin interface (<code>assets\/dist\/<\/code>) built from the\nhuman-readable source in <code>apps\/admin\/src\/<\/code>. The full source and build tooling\nare also public at:<\/p>\n\n<p>https:\/\/github.com\/flexatech\/flexa-wishlist-for-woocommerce<\/p>\n\n<p>The admin app is built with pnpm and Vite:<\/p>\n\n<ol>\n<li><code>pnpm install<\/code><\/li>\n<li><code>pnpm run build<\/code>   (or <code>pnpm run dev<\/code> for a watched build)<\/li>\n<\/ol>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload the plugin, or install it from Plugins \u2192 Add New, then click Activate.<\/li>\n<li>On activation a heart button appears on your products and a Wishlist page is created automatically.<\/li>\n<li>Fine-tune under <strong>Wishlist<\/strong> in the admin menu (optional \u2014 the defaults are production-ready).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20page%20caching%3F\"><h3>Does it work with page caching?<\/h3><\/dt>\n<dd><p>Yes. The button markup is user-agnostic; the shopper's real saved state is reconciled from a single request after load, so it stays correct behind full-page caches and CDNs.<\/p><\/dd>\n<dt id=\"do%20guests%20need%20an%20account%3F\"><h3>Do guests need an account?<\/h3><\/dt>\n<dd><p>No. Guest wishlists persist via a first-party cookie and merge into the account automatically, and losslessly, on login.<\/p><\/dd>\n<dt id=\"how%20do%20i%20show%20the%20wishlist%20somewhere%20specific%3F\"><h3>How do I show the wishlist somewhere specific?<\/h3><\/dt>\n<dd><p>Use the <code>[flexa_wishlist]<\/code> shortcode on any page, the \"Flexa Wishlist\" Gutenberg block, or the Elementor widget. A wishlist page is also created for you on activation.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20save%20button%20and%20a%20counter%20to%20my%20theme%3F\"><h3>Can I add a save button and a counter to my theme?<\/h3><\/dt>\n<dd><p>Yes. Use <code>[flexa_wishlist_button]<\/code> (inside a product loop it targets the current product, or pass <code>product_id<\/code>) and <code>[flexa_wishlist_counter]<\/code> for a live count in your header or menu. Both are available as blocks and Elementor widgets too.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20editor%20and%20elementor%3F\"><h3>Does it work with the block editor and Elementor?<\/h3><\/dt>\n<dd><p>Yes. The page, button, and counter are all provided as native Gutenberg blocks and Elementor widgets that mirror the shortcodes.<\/p><\/dd>\n<dt id=\"is%20it%20accessible%3F\"><h3>Is it accessible?<\/h3><\/dt>\n<dd><p>Yes \u2014 WCAG 2.2 AA. Saved state is never communicated by color alone.<\/p><\/dd>\n<dt id=\"can%20shoppers%20add%20wishlisted%20products%20to%20the%20cart%3F\"><h3>Can shoppers add wishlisted products to the cart?<\/h3><\/dt>\n<dd><p>Yes. Each item has an add-to-cart action, and the wishlist page offers \"Add all to cart\". Items that can't be added (out of stock, or variable products that need an option selected) are clearly skipped with a reason.<\/p><\/dd>\n<dt id=\"is%20it%20translation-ready%3F\"><h3>Is it translation-ready?<\/h3><\/dt>\n<dd><p>Yes. All strings use the <code>flexa-wishlist-for-woocommerce<\/code> text domain and a <code>.pot<\/code> template is included under <code>\/i18n\/languages<\/code>.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20when%20i%20uninstall%3F\"><h3>What happens to my data when I uninstall?<\/h3><\/dt>\n<dd><p>Uninstalling removes the plugin's tables and options so nothing is left behind. Deactivating alone keeps your data intact.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Share button on the wishlist page \u2014 generates a stable share link with copy-to-clipboard, the native share sheet, and the social channels enabled in Settings.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: wishlist page loading spinner stayed visible after items loaded; it now hides once the list (or empty state) renders.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Removed all Pro\/licensing gates \u2014 multiple wishlists and every feature are now free.<\/li>\n<li>Security: verify ownership on item toggle to prevent cross-account removal (IDOR).<\/li>\n<li>Removed the custom CSS field; appearance is driven entirely by validated presets.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A mobile-first, cache-safe WooCommerce wishlist: one-tap save, guest persistence, silent account merge, and easy sharing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/358421","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=358421"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/flexatech"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=358421"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=358421"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=358421"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=358421"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=358421"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=358421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}