=== Addonify - WooCommerce Wishlist ===

Contributors: addonify
Tags: wishlist, woocommerce wishlist, product wishlist, add to wishlist, save for later
Requires at least: 6.3
Tested up to: 6.9.1
Stable tag: 2.0.16
Requires PHP: 7.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Addonify WooCommerce Wishlist is a light-weight yet powerful tool that adds a wishlist functionality to your e-commerce shop.

== Description ==

Addonify Wishlist is a light-weight yet powerful tool that adds wishlist functionality to your e-commerce shop. Addonify Wishlist is packed with various functionalities that will help the shop owner to customize the wishlist behavior.

👉 [Live demo preview](https://demo.addonify.com/woo/01/wishlist/)
👉 [Documentation guide](https://docs.addonify.com/kb/woocommerce-wishlist/)

The primary goal of the Addonify Wishlist plugin is to allow website visitors to add products to their shopping wishlist so they can focus on buying the product rather than wasting their time finding it whenever they visit the store. Whereas, the secondary goal of the Addonify team is to keep the plugin light-weight so that the website shouldn't compromise its performance.

> *Researches have shown that an online e-commerce store having products wishlist functionality is likely to sell more than the store that doesn't have wishlist functionality.*

💰 *Not using a wishlist plugin yet? Let's start using it today. Addonify Wishlist is **FREE** & it will remain **free forever.*** Start using Addonify Wishlist today and increase your online store conversion.


#### 🔔 BENEFITS & IMPORTANCE OF HAVING WISHLIST FUNCTIONALITY

- Saves customers time (Assume that you are having 1500+ products in your e-commerce store).
- Helps to boost revenue.
- Increases checkout conversions.
- Improves customers shopping experience.


#### ⏳ CORE FEATURES

- Light-weight & powerful.
- Adds "Add to Wishlist" button to WooCommerce product catalog and product single.
- Choose the position of "Add to Wishlist" button in WooCommerce product catalog.
- Set custom "Add to Wishlist" button label.
- Show/Hide icon on wishlist button.
- Allow only logged-in users to add product in wishlist.
- Display modal popup to let your customers know the product is either added to, removed from, or already in the wishlist.
- Sticky off-canvas sidebar drawer to show the wishlist.
- Display wishlist items in sidebar drawer for quick navigation.
- Custom label & icon for sidebar drawer trigger button.
- Save for later button on WooCommerce cart table.
- Shortcode that can use used anywhere to display the wishlist.
- Shortcode to display wishlist icon with wishlist items count.
- Shortcode to display custom wishlist button.
- Require login before a user can add products to wishlist.
- Remove item from wishlist immediately after it has been added to cart.
- Redirect to checkout page immediately if an item is added to cart.
- Add to wishlist and remove from wishlist functionality with/without ajax call.
- Add to cart functionality with/without ajax call.
- Color option for "Add to Wishlist" button.
- Option to reset all settings.
- Option to export all options.
- Option to import all options.
- Support for custom CSS.
- Well documented.
- Users & developers friendly.

#### 🎨 DESIGN FEATURES

- Color options for "Add to Wishlist" button.
- Color options for popup modal notification.
- Color options for off-canvas sidebar wishlist drawer.
- Option to choose wishlist buttons icons.
- Custom CSS.

#### 🔧 TOOLS

- Generate wishlist page: This tool will generate a wishlist page with a shortcode that can be used to display the wishlist table in any page.
- Reset all settings: This tool will reset all the plugin settings to default.
- Export all settings: This tool will export all the plugin settings in a JSON file.
- Import all settings: This tool will import all the plugin settings from a JSON file.
- Remove data on plugin un-installation: This tool will remove all the plugin data from the database on plugin un-installation.


#### 🔐 GDPR COMPLIANT

Addonify Wishlist does not collect any personal or sensitive data from website visitors which makes our plugin GDPR compliant.


#### ⚔️ DEVELOPER

Addonify Wishlist is developer friendly. We know that we have wonderful developers all around us and wish to customize our plugin's functionality when using it in their projects. Keeping that in mind, we have build Addonify Wishlist to be developer friendly and customizable. If you are a developer willing to integrate Addonify Wishlist in your project do check out our [*developer documentation guide here.*](https://docs.addonify.com/kb/woocommerce-wishlist/developer/)


#### 🐛 DISCUSSION & REPORTING A BUG

We are open to any kind of discussions on that can help improve our plugin. So, we would like to welcome you to be part of the discussions. Feel free to share your ideas, ask questions related to plugin, report bugs, ask for features, and participate in poll.

👉 [Create a new discussion](https://github.com/addonify/addonify-wishlist/discussions)
👉 [Report a bug](https://github.com/addonify/addonify-wishlist/issues)


####  🎭 TRANSLATION GUIDELINES

If you wish Addonify Wishlist to be translated in your language, feel free to contribute translating at [*translate.wordpress.org*](https://translate.wordpress.org/projects/wp-plugins/addonify-wishlist) directly.


== Frequently Asked Questions ==

= Do you have documentation guide? =

Yes, we do have documentation guide. Please visit our [documentation site.](https://docs.addonify.com/kb/woocommerce-wishlist/)

= Will this plugin work without WooCommerce? =

No, this plugin will not work without WooCommerce.

= Will this plugin work with my theme? =

Yes, Addonify Wishlist should work with all WordPress themes. But it might not work on some themes if the theme authors have overridden the default WooCommerce template files. In this case please ask your theme author to make their themes compatible with our plugin by following our [*developer documentation guide.*](https://docs.addonify.com/kb/woocommerce-wishlist/)

= How can I display wishlist table in any page? =

You can use this `[addonify_wishlist]` shortcode to display the wishlist table in any page.

= How can I display wishlist icon in the header? =

Use `[addonify_wishlist_icon]` shortcode to display wishlist icon in the header. Shortcode attributes `id`, `class`, `display_badge`, and `badge_position` are available. The attribute `display_badge` can be used to display wishlist items count and `badge_position` can be used to position the badge. The available positions for `badge_position` are `top-right` and `top-left`.

= Is there shortcode to display wishlist button? =

Yes, there is. Use `[addonify_wishlist_button]` shortocde to display wishlist button. The available shortcode attributes are `product_id`, `button_label`, `added_to_wishlist_button_label`, `already_in_wishlist_button_label`, `classes`, and `button_icon_position`. For the attribute `button_icon_position`, you can use `none`, `left`, or `right`. You can also use the shortcode to display wishlist button in a product loop.

== Installation ==

1. Download the plugin.
2. Unzip the downloaded zip file.
3. Upload the plugin folder into the `wp-content/plugins/` directory of your WordPress site.
4. Activate `Addonify Wishlist` from Dashboard > Plugins.

== Screenshots ==

1. Addonify wishlist setting page on admin dashboard - 1
2. Addonify wishlist setting page on admin dashboard - 2
3. Addonify wishlist setting page on admin dashboard - 3
4. Added to wishlist modal popup.
5. Add to wishlist button in product catalog.
6. Addonify wishlist canvas sidebar.
7. Addonify wishlist page table.
8. Add to wishlist button in product single page.
9. Save for later (Add to wishlist) button in cart page.

== Changelog ==

= 2.0.16 - 15 February, 2026 =

- Fix: Broken Access Control in UDP Agent (CVSS 5.3). Credits to Legion Hunter. Unauthenticated attacker can update option value for "udp_agent_allow_tracking" via "init" hook due to missing authorization and nonce check in it's callback function "on_init".

= 2.0.15 - 31 March, 2025 =

- Fixed : Empty wishlist message for wishlist page and wishlist sidebar.#460

= 2.0.14 - 26 March, 2025 =

- Updated: Frontend templates and action hooks functions.
- Added: Donation link in the plugin's setting page.
- Tweak: Public assets (CSS & JS) path.
- Tweak: Public assets (CSS & JS) file names.
- Dev: Removed Gulp and added [Rollup](https://rollupjs.org/) to compile the public assets.
- Tested: WordPress version 6.8
- Tested: WooCommerce version 9.7.1

= 2.0.13 - 13 December, 2024 =

- Tested: WordPress version 6.7.1
- Tested: WooCommerce version 9.4.3

= 2.0.12 - 6 August, 2024 =

- Fixes: User wishlist not being created when logging in and issue on adding product into the wishlist. [GitHub Issue 435](https://github.com/addonify/addonify-wishlist/issues/435).
- Added: Shortcode for displaying wishlist icon.
- Added: Wishlist tab in my account page.
- Added: Option to display wishlist button over product image in product loop.
- Updated: Plugin tags issue. [GitHub Issue 439](https://github.com/addonify/addonify-wishlist/issues/439).
- Removed: Unwanted files and codes.
- Tested: WordPress version 6.6.
- Tested: WooCommerce version 9.1.4.

= 2.0.11 - 03 April, 2024 =

- Tested: WordPress version 6.5.
- Tested: WooCommerce version 8.7.

= 2.0.10 - 8 February, 2024 =

- Fixed:  Issue of user wishlist's operation. [GitHub Issue #431](https://github.com/addonify/addonify-wishlist/issues/431)
- Tested: WordPress version 6.4.2.

= 2.0.9 - 26 January, 2024 =

- Fixed:  PHP error, `Creation of dynamic property Addonify_Wishlist_Public::$added_to_wishlist_button_label is deprecated`.
- Added:  Loading icon to wishlist button while product is added into or removed from the wishlist.
- Tested: WooCommerce version 8.5.2.
- Tested: WordPress version 6.4.2.

= 2.0.8 - 09 November, 2023 =

- Tested: WordPress v6.4.0
- Tested: WooCommerce v8.2.2

= 2.0.7 - 18 October, 2023 =

- Fix: PHP error while activating the plugin.
- Tested: WooCommerce 8.2.1

= 2.0.6 - 16 October, 2023 =

- Added: Confirmation modal when trying to empty wishlist and new options for popup notice's messages.
- Added: Documentation link, GitHub link, and support link to the plugin row in plugins list table.
- Added: Deprecated files are renamed with suffix, `deprecated`, and are moved to folders named `deprecated`.
- Updated: Optimized database query and avoided duplicate queries.
- Updated: Action hooks `addonify_wishlist_before_adding_to_wishlist` and `addonify_wishlist_after_adding_to_wishlist`. Array argument is passed in both action hooks.
- Updated: Icons.
- Fixed: Migration of user wishlist data when updating from version 1.1.3.
- Fixed: Plugin setting page link in plugins listing page is displayed before `Deactivate` link.
- Fixed: Color picker cursor issue (Vue JS).
- Tweak: Changed DIR for Inter & Manrope fonts files. Now, Using NPM package to install Inter & Manrope fonts.
- Removed: Wishlist button icon color options.
- Tested: WordPress 6.3.2
- Tested: WooCommerce 8.2.0

= 2.0.5 - 29 June, 2023 =

- Fix: Invalid JSON body passed while importing options.

= 2.0.4 - 28 May, 2023 =

- Fix: PHP warnings. [GitHub Issue #374](https://github.com/addonify/addonify-wishlist/issues/374)

= 2.0.3 - 26 May, 2023 =

- Added: Color options for wishlist notice.
- Added: Added to cart notice and related option to match the option `Remove product from wishlist after added to cart`.
- Added: Label options for product stock status.
- Tweak: How reactive state on plugin setting's page is managed (vue js).
- Fix: Add to wishlist button dynamic CSS. #361
- Fix: Notice displays for the guest users.

= 2.0.2 - 18 May, 2023 =

- Removed: Added to cart popup modal displayed when product is added to cart in wishlist page.
- Tweak: Popup modal now closes when clicked on modal overlay.
- Fix: Issue of product stock status not getting displaying in wishlist sidebar when a product is added into the wishlist. [GitHub Issue #344](https://github.com/addonify/addonify-wishlist/issues/344)
- Fix: Unclosed HTML element caused by improperly defined attribute `data-wishlist_id` of add to wishlist button. [GitHub Issue #348](https://github.com/addonify/addonify-wishlist/issues/348)
- Fix: PHP Fatal error:  Uncaught Error: Call to a member function get_type() on bool in /addonify-wishlist/public/class-addonify-wishlist-public.php

= 2.0.1 - 15 May, 2023 =

- Tweak: Wishlist's page table add to cart button display to inline #315
- Updated: Screenshots for WordPress.org.
- Tweak: Removed Google fonts source for "Inter" & "Manrope". Fonts are now saved locally.
- Fix: TypeError cannot read properties of null (reading 'substring') - Color picker #321
- Dev: Element plus library to 2.3.4.

= 2.0.0 - 26 April, 2023 =

- Added: Wishlist database table creation on plugin activate.
- Added: Option to generate wishlist page in tools tab.
- Added: `Save For Later` button for cart items in cart page.
- Added: Notice in the admin dashboard to get feedback from user.
- Update: Redesign of plugin setting page.
- Update: User's wishlist data migration for the compatibility with older version of the plugin.
- Update: Different JS files are loaded for logged in and guest users.
- Update: Product removal notice will not hide automatically, if value for the option, `Undo notice timeout (in seconds)`, is set to 0.
- Removed: Option `Ajaxify Remove from Wishlist Action`.
- Removed: Option `Save Wishlist Cookie for [x] days`.
- Removed: Option `Enable Styles from Plugin`.

= 1.1.3 - 03 March, 2023 =

- Updated: UDP updated.
- Added: Shortcode for 'add-to-wishlist' button.
- Updated: Undo remove from wishlist action. Add undo notice timeout time option, action text, and undo link label.
- Updated: For 0 value of the setting, Save Wishlist Cookie for [x] days, wishlist data remains forever.
- Added: Option for icon position on Add to Wishlist button.
- Added: Text option for empty wishlist in wishlist sidebar and wishlist page.
- Removed: Footer notification for removed product in wishlist sidebar.
- Added: Spinner when performing undo removed item.
- Added: Stock status in each product in wishlist sidebar.

= 1.1.2 - 22 February , 2023 =

- Added: Clear Wishlist button in wishlist shortcode content for removing all items in wishlist.
- Added: JavaScript function for getting wishlist items while handling from client side (Not logged-in).
- Update: Multi-site Data stored in same array.
- Added: Spinner for clear wishlist data.
- Fixed: Data removed from all sites in multi-site on clear all button action.
- Fixed: Wishlist icon and view wishlist button showing on add to cart in wishlist page.
- Update: User wishlist saved as an array with created and updated time.
- Update: Option to remove product from wishlist on clicking on add to wishlist button if already in wishlist.

= 1.1.1 - 30 December, 2022 =

- Added: Option to reset all settings.
- Added: Option to export all settings.
- Added: Option to import all settings.
- Added: User Data Processing. Ref: https://creamcode.org/user-data-processing/
- Added: Spinner on wishlist page.
- Tweak: Now saving wishlist data in browser local storage if the user is not logged-in.
- Removed: Default behavior from "After Add to Wishlist Action" option on settings page.
- Updated: Removed custom add to cart button from wishlist table and added WooCommerce default button.
- Removed: Unwanted settings.
- Fixed: Minor bugs.

= 1.1.0 - 18 November, 2022 =

Improvement: Color picker in settings page.

= 1.0.9 - 31 August, 2022 =

- Fixed: Wishlist sidebar toggle button will not be visible if wishlist sidebar is disabled.
- Tweak: Wishlist sidebar toggle button will not be visible if there are no items in the wishlist.


= 1.0.8 - 31 August, 2022 =

- Tested: with WordPress version 6.0.2.


= 1.0.7 - 2 August 2022 =

- Tweak: When a product is added into the wishlist, on sidebar only the product will be appended. But not the whole wishlist.
- Updated: Read more button will be visible for the out of stock products in the wishlist.


= 1.0.6 - 28 July 2022 =

- Fixed: Issue cookie data on json_decode.
- Fixed: Issue on redirection after product added to wishlist.


= 1.0.5 - 25 July 2022 =

- Added: Demo & documentation guide links.
- Tweak: Disabled wishlist sidebar drawer by default.
- Tweak: Enabled Ajaxify for add to cart & remove from wishlist buttons.
- Tweak: View wishlist & login links HTML markup in wishlist modal window.
- Tweak: CSS variables.


= 1.0.4 - 15 July 2022 =

- Tested: with WordPress version 6.0.1.


= 1.0.3 - 12 July 2022 =

- Fixed: Author name typo.
- Updated: Cookie includes last_updated and wishlist_items fields.
- Updated: Wishlist data is json encoded and decoded to save and retrieve respectively.


= 1.0.2 - 12 July 2022 =

- New: Added graphics for wordpress.org plugin landing page.

= 1.0.1 - 11 July 2022 =

- Updated: Escaped unescaped PHP variables.


= 1.0.0 - 08 July 2022 =

- New: Initial release.
