{"id":311821,"date":"2026-05-17T10:29:22","date_gmt":"2026-05-17T10:29:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wishowl-wishlist-for-woocommerce\/"},"modified":"2026-05-17T10:35:01","modified_gmt":"2026-05-17T10:35:01","slug":"wishowl-wishlist-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/su.wordpress.org\/plugins\/wishowl-wishlist-for-woocommerce\/","author":23497932,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.1","stable_tag":"1.0.1","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"WishOwl Wishlist for WooCommerce","header_author":"WishOwl","header_description":"A genuinely free, full-featured wishlist plugin for WooCommerce. Guest wishlists, multiple lists per user, shareable links, price tracking. No premium tier, no upsells.","assets_banners_color":"cec5c0","last_updated":"2026-05-17 10:35:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wishowl.app\/woocommerce","header_author_uri":"https:\/\/wishowl.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"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":"wishowl1","date":"2026-05-17 10:35:01"}},"upgrade_notice":{"1.0.1":"<p>Compliance fixes for WordPress.org plugin directory review. No behavior changes.<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3534449,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3534449,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3534449,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3534449,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"wishowl\/wishlist-widget":{"name":"wishowl\/wishlist-widget","title":"WishOwl Wishlist Widget"}},"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3534449,"resolution":"1","location":"assets","locale":"","width":2560,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3534449,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3534449,"resolution":"3","location":"assets","locale":"","width":2560,"height":1600},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3534449,"resolution":"4","location":"assets","locale":"","width":2560,"height":1600},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3534449,"resolution":"5","location":"assets","locale":"","width":2560,"height":1600},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3534449,"resolution":"6","location":"assets","locale":"","width":1920,"height":1200}},"screenshots":{"1":"The Add to Wishlist button on a product page.","2":"The full wishlist with multiple items, price-drop badges, and remove buttons.","3":"The shareable wishlist view that recipients see.","4":"Settings page \u2014 General tab.","5":"Settings page \u2014 Privacy tab.","6":"Sidebar widget with thumbnails and item count."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[132672,248113,1666,65269,286],"plugin_category":[45],"plugin_contributors":[263236],"plugin_business_model":[],"class_list":["post-311821","plugin","type-plugin","status-publish","hentry","plugin_tags-gift-registry","plugin_tags-guest-wishlist","plugin_tags-wishlist","plugin_tags-wishlist-for-woocommerce","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-wishowl1","plugin_committers-wishowl1"],"banners":{"banner":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/banner-772x250.jpg?rev=3534449","banner_2x":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/banner-1544x500.jpg?rev=3534449","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/icon-128x128.png?rev=3534449","icon_2x":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/icon-256x256.png?rev=3534449","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/screenshot-1.png?rev=3534449","caption":"The Add to Wishlist button on a product page."},{"src":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/screenshot-2.png?rev=3534449","caption":"The full wishlist with multiple items, price-drop badges, and remove buttons."},{"src":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/screenshot-3.png?rev=3534449","caption":"The shareable wishlist view that recipients see."},{"src":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/screenshot-4.png?rev=3534449","caption":"Settings page \u2014 General tab."},{"src":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/screenshot-5.png?rev=3534449","caption":"Settings page \u2014 Privacy tab."},{"src":"https:\/\/ps.w.org\/wishowl-wishlist-for-woocommerce\/assets\/screenshot-6.png?rev=3534449","caption":"Sidebar widget with thumbnails and item count."}],"raw_content":"<!--section=description-->\n<p><strong>WishOwl Wishlist for WooCommerce<\/strong> is a free, no-upsell wishlist plugin for WooCommerce stores. Most \"free\" wishlist plugins gate the features people actually need (guest wishlists, multiple lists, price tracking, shareable links) behind a paid tier. We don't. Every feature listed below works in the free version, forever.<\/p>\n\n<p>Built for store owners who want a clean, fast, theme-friendly wishlist that just works \u2014 without the upsell prompts, dashboard ads, or \"premium\" modal that pops up the moment a customer tries to share their list.<\/p>\n\n<h4>Why another wishlist plugin?<\/h4>\n\n<p>WishOwl makes a <a href=\"https:\/\/wishowl.app\/\">universal wishlist app<\/a> \u2014 a mobile + web product where customers save items from any store (Amazon, Etsy, your store, anywhere) into one place, share with friends and family, and coordinate gifts. We built this WooCommerce plugin because store owners kept asking for a real wishlist that didn't paywall the basics. Using the WordPress plugin doesn't require any WishOwl account or external service \u2014 it's fully self-contained.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Add to Wishlist<\/strong> button on product pages and shop loops, with configurable position (before \/ after Add to Cart, floating heart, or shop-loop only).<\/li>\n<li><strong>Guest wishlists<\/strong> \u2014 works without an account. Stored in a cookie, persisted server-side, expires after a configurable interval.<\/li>\n<li><strong>Multiple wishlists per user<\/strong> \u2014 let logged-in customers create lists like \"Birthday\", \"Christmas\", \"Wedding\".<\/li>\n<li><strong>Shareable wishlist links<\/strong> with three privacy modes: Private, Shared (link-only), or Public (discoverable).<\/li>\n<li><strong>Share-token rotation<\/strong> \u2014 owners can rotate the share link to instantly invalidate the old one.<\/li>\n<li><strong>Variable product support<\/strong> \u2014 wishlist a specific size or color, not just the parent product.<\/li>\n<li><strong>Price tracking<\/strong> \u2014 store the price when an item is added; surface a price-drop badge when the item later goes on sale.<\/li>\n<li><strong>Sidebar widget<\/strong> in three flavors: classic widget, Gutenberg block, and <code>[wishowl_wishlist_widget]<\/code> shortcode.<\/li>\n<li><strong>Wishlist page shortcode<\/strong> <code>[wishowl_wishlist]<\/code> with table or grid layout.<\/li>\n<li><strong>Theme-friendly<\/strong> \u2014 minimal CSS that inherits theme colors and typography. Tested on Storefront, Astra, Hello Elementor, GeneratePress, Twenty Twenty-Four.<\/li>\n<li><strong>HPOS-compatible<\/strong> \u2014 declares compatibility with WooCommerce's High-Performance Order Storage.<\/li>\n<li><strong>Translations-ready<\/strong> \u2014 text domain <code>wishowl-wishlist-for-woocommerce<\/code>, includes <code>.pot<\/code>.<\/li>\n<li><strong>GDPR-compliant<\/strong> \u2014 integrates with WordPress's Personal Data Export and Erasure tools.<\/li>\n<li><strong>No premium tier, no upsells, no dashboard ads.<\/strong><\/li>\n<\/ul>\n\n<h4>Settings<\/h4>\n\n<p>Everything is configurable under <strong>WooCommerce \u2192 Wishlist<\/strong>:<\/p>\n\n<ul>\n<li><strong>General<\/strong>: button label, button position, wishlist page, guest wishlists on\/off, guest expiry (30\/90\/180 days).<\/li>\n<li><strong>Display<\/strong>: toggle every column on the wishlist table independently \u2014 variations, price, \"price at add\" comparison, stock status, date added. Switch between table and grid layouts.<\/li>\n<li><strong>Privacy<\/strong>: default privacy mode for new wishlists, allow public mode (yes\/no), allow indexing of public wishlists by search engines (default off).<\/li>\n<li><strong>Price tracking<\/strong>: enable\/disable, cron frequency (hourly \/ 6-hourly \/ daily), snapshot retention (30\/60\/90 days).<\/li>\n<\/ul>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li><code>[wishowl_wishlist]<\/code> \u2014 the full wishlist page (auto-created on activation).<\/li>\n<li><code>[wishowl_wishlist_widget]<\/code> \u2014 compact widget for sidebars or any block area.<\/li>\n<li><code>[wishowl_button]<\/code> \u2014 manual placement of the Add to Wishlist button (auto-detects current product, or pass <code>product_id=\"123\"<\/code>).<\/li>\n<\/ul>\n\n<h4>Theme overrides<\/h4>\n\n<p>Place a copy of any template from <code>public\/views\/<\/code> in <code>your-theme\/wishowl-wishlist\/<\/code> to override.<\/p>\n\n<h4>About WishOwl<\/h4>\n\n<p>WishOwl is built by the team at <a href=\"https:\/\/wishowl.app\/\">wishowl.app<\/a>, makers of a universal wishlist app for iOS, Android, and the web. Customers can save items from any site into one wishlist, share with friends and family, and coordinate gifts. The mobile app complements your store's wishlist \u2014 it doesn't replace it. Learn more at <a href=\"https:\/\/wishowl.app\/woocommerce\">wishowl.app\/woocommerce<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin, go to <strong>Plugins \u2192 Add New<\/strong> and search for \"WishOwl Wishlist\". Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Visit <strong>WooCommerce \u2192 Wishlist<\/strong> and review the settings.<\/li>\n<li>The plugin auto-creates a wishlist page at <code>\/wishlist<\/code>. To use a different page, paste the <code>[wishowl_wishlist]<\/code> shortcode into any page and pick it under <strong>WooCommerce \u2192 Wishlist \u2192 General<\/strong>.<\/li>\n<\/ol>\n\n<p>Manual install:<\/p>\n\n<ol>\n<li>Download the <code>.zip<\/code> from this listing.<\/li>\n<li>Upload to <code>wp-content\/plugins\/<\/code> and unzip, or upload via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20really%20free%3F\"><h3>Is this really free?<\/h3><\/dt>\n<dd><p>Yes. Every feature listed in the description works in the free version. There is no premium tier, no add-ons, and no upsells inside the plugin. WishOwl makes its money from a separate consumer mobile app, not from selling plugin features.<\/p><\/dd>\n<dt id=\"does%20this%20work%20without%20wishowl%20accounts%3F\"><h3>Does this work without WishOwl accounts?<\/h3><\/dt>\n<dd><p>Yes. The plugin is fully self-contained. It stores all data in your own database. No API calls to WishOwl, no external dependencies. There's an <strong>optional<\/strong> \"Powered by WishOwl\" link to wishowl.app that you can turn on in <strong>WooCommerce \u2192 Wishlist \u2192 General<\/strong>. It's off by default \u2014 nothing is shown on the public site unless you explicitly enable it.<\/p><\/dd>\n<dt id=\"can%20guests%20save%20items%20without%20logging%20in%3F\"><h3>Can guests save items without logging in?<\/h3><\/dt>\n<dd><p>Yes. Guest wishlists are stored in a cookie + custom database table and persist for 30, 90, or 180 days (configurable). When a guest later registers and logs in, their items are automatically merged into their account.<\/p><\/dd>\n<dt id=\"does%20it%20support%20variable%20products%20%28size%2C%20color%2C%20etc.%29%3F\"><h3>Does it support variable products (size, color, etc.)?<\/h3><\/dt>\n<dd><p>Yes. Customers can wishlist a specific variation, and the wishlist table shows the chosen attributes.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20wishlist%20count%20or%20compact%20widget%20to%20my%20sidebar%3F\"><h3>How do I add a wishlist count or compact widget to my sidebar?<\/h3><\/dt>\n<dd><p>Drop the <strong>WishOwl Wishlist<\/strong> widget into any sidebar via <strong>Appearance \u2192 Widgets<\/strong>, or insert the <strong>WishOwl Wishlist Widget<\/strong> block in the block editor, or use the <code>[wishowl_wishlist_widget]<\/code> shortcode anywhere shortcodes work (Elementor, theme builders, etc.).<\/p><\/dd>\n<dt id=\"how%20does%20price%20tracking%20work%3F\"><h3>How does price tracking work?<\/h3><\/dt>\n<dd><p>A WordPress cron job runs at your configured frequency (hourly, 6-hourly, or daily) and records a price snapshot for every product currently in a non-expired wishlist. When a customer views their wishlist, items whose current price is lower than the price-at-add show a \"Price drop\" badge. No emails are sent in v1.0; rule-based email notifications are planned for v1.1.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20emails%3F\"><h3>Does the plugin send emails?<\/h3><\/dt>\n<dd><p>Not in v1.0. Rule-based price-drop and back-in-stock emails are on the v1.1 roadmap, with frequency caps and a one-click unsubscribe.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Is it compatible with HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares compatibility with WooCommerce's HPOS, the modern custom-tables order storage system.<\/p><\/dd>\n<dt id=\"is%20it%20elementor-compatible%3F%20block-editor%20compatible%3F\"><h3>Is it Elementor-compatible? Block-editor compatible?<\/h3><\/dt>\n<dd><p>Both. The shortcodes work inside Elementor templates, and the widget ships as a native Gutenberg block.<\/p><\/dd>\n<dt id=\"how%20does%20sharing%20a%20wishlist%20work%3F\"><h3>How does sharing a wishlist work?<\/h3><\/dt>\n<dd><p>Each wishlist has one of three privacy modes:<\/p>\n\n<ul>\n<li><strong>Private<\/strong>: only you can view. No share URL exists.<\/li>\n<li><strong>Shared<\/strong>: a long, unguessable token URL works for anyone with the link, but search engines are told not to index.<\/li>\n<li><strong>Public<\/strong>: same URL, plus the page is allowed to be indexed if the store admin has opted in.<\/li>\n<\/ul>\n\n<p>You can rotate the share link at any time, which invalidates the old URL.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wpml%20or%20polylang%3F\"><h3>Does it work with WPML or Polylang?<\/h3><\/dt>\n<dd><p>The plugin is translation-ready. Full WPML \/ Polylang compatibility hooks are planned for v1.1.<\/p><\/dd>\n<dt id=\"how%20do%20i%20migrate%20from%20yith%20or%20ti%20woocommerce%20wishlist%3F\"><h3>How do I migrate from YITH or TI WooCommerce Wishlist?<\/h3><\/dt>\n<dd><p>A migration tool is not included in v1.0. It's on the post-launch roadmap if there's demand. In the meantime, both the YITH and WishOwl tables can coexist while you transition.<\/p><\/dd>\n<dt id=\"how%20do%20i%20customize%20the%20wishlist%20page%20template%3F\"><h3>How do I customize the wishlist page template?<\/h3><\/dt>\n<dd><p>Copy any file from <code>wp-content\/plugins\/wishowl-wishlist\/public\/views\/<\/code> into <code>your-theme\/wishowl-wishlist\/<\/code> (preserving the filename). The plugin will load your theme's copy instead of its bundled template.<\/p><\/dd>\n<dt id=\"where%20is%20the%20data%20stored%3F\"><h3>Where is the data stored?<\/h3><\/dt>\n<dd><p>Four custom tables: <code>{prefix}wishowl_wishlists<\/code>, <code>{prefix}wishowl_wishlist_items<\/code>, <code>{prefix}wishowl_price_snapshots<\/code>, <code>{prefix}wishowl_email_log<\/code>. All scoped to your own database. The plugin integrates with WP's Personal Data Export and Erasure tools so customers can request a copy or deletion via <strong>Tools \u2192 Export \/ Erase Personal Data<\/strong>.<\/p><\/dd>\n<dt id=\"will%20uninstalling%20delete%20my%20data%3F\"><h3>Will uninstalling delete my data?<\/h3><\/dt>\n<dd><p>Yes. On full uninstall (delete, not deactivate), all four tables and the plugin options are removed. Deactivating preserves data so you can reactivate without loss.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Compliance: text domain renamed to <code>wishowl-wishlist-for-woocommerce<\/code> to match the plugin slug.<\/li>\n<li>Compliance: all inline <code>&lt;style&gt;<\/code> and <code>&lt;script&gt;<\/code> blocks moved to the WordPress enqueue API (<code>wp_add_inline_style()<\/code> \/ <code>wp_add_inline_script()<\/code>).<\/li>\n<li>Compliance: added the <code>Requires Plugins: woocommerce<\/code> header.<\/li>\n<li>Compliance: \"Powered by WishOwl\" link on the wishlist page is now opt-in (off by default).<\/li>\n<li>UX: Design tab ships with sensible \"secondary action\" padding defaults (0.5em \/ 1em) so the wishlist button reads as complementary to Add to Cart on opinionated themes. Disable the Override checkboxes to fall back to the theme's native padding.<\/li>\n<li>UX: Design-tab live preview card is now resizable (drag handle at the bottom) and minimizable. Preferences persist across visits via localStorage.<\/li>\n<li>Tested against WordPress 6.9.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: add\/remove buttons, full wishlist page, sidebar widget (classic + block + shortcode), guest wishlists, multiple wishlists per user, privacy modes with share-token rotation, variable product support, price tracking, GDPR personal-data export + erasure, HPOS compatibility.<\/li>\n<\/ul>","raw_excerpt":"Free, full-featured wishlist plugin for WooCommerce. Guest wishlists, multiple lists per user, shareable links, price tracking.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/311821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=311821"}],"author":[{"embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wishowl1"}],"wp:attachment":[{"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=311821"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=311821"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=311821"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=311821"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=311821"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/su.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=311821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}