# Frequently Asked Questions

## General

### Does Bizzwishlist require WooCommerce?

Yes. Bizzwishlist is a WooCommerce addon and requires WooCommerce to be installed and active. Without WooCommerce, the plugin will display an admin notice and will not function.

### Is the plugin free?

Yes. Bizzwishlist is free and open-source, released under the GPLv2 or later license.

### Does it work with my theme?

Bizzwishlist is designed to work with any WooCommerce-compatible WordPress theme. It uses standard WooCommerce hooks and follows WordPress coding standards. If you experience a theme conflict, please report it on the support forum.

### Will it slow down my website?

No. The plugin is built with performance in mind:
- CSS and JavaScript are loaded only on WooCommerce-related pages.
- All wishlist interactions use AJAX (no page reloads).
- The mini wishlist uses fragment loading to avoid impacting initial page load.

---

## Wishlist Functionality

### How does the wishlist work for guest visitors?

Guest visitors receive a unique session key stored in a browser cookie (`bizzwishlist_session`). This cookie lasts for 30 days. Their wishlist items are stored in the database linked to this session key.

### What happens when a guest logs in?

When a guest visitor logs in or creates a new account, their guest wishlist is automatically merged with their user account. No items are lost in the transition.

### Can a customer add the same product twice?

No. The database has a unique constraint that prevents duplicate entries. If a customer tries to add a product that is already in their wishlist, the button toggles and removes it instead.

### How many products can be in a wishlist?

There is no hard limit. Customers can add as many products as they want to their wishlist.

### Does the wishlist persist across devices?

- **Logged-in users:** Yes. The wishlist is linked to the user account and accessible from any device.
- **Guest visitors:** No. The wishlist is tied to the browser cookie, so it is only available on the same browser/device.

---

## Configuration

### How do I change the wishlist button position?

Go to **Bizzwishlist > Settings** and select your preferred position from the **"Wishlist Button Position"** dropdown. Options include: After Add to Cart, Before Add to Cart, After Product Title, Before Product Title, Custom Hook, or None.

### How do I hide the automatic wishlist button?

Set the button position to **"None"** in the settings. You can then manually place the button using the `[bizzwishlist_button]` shortcode or the `do_action( 'bizzwishlist_button' )` hook.

### How do I change the wishlist page?

1. Create a new page with the `[bizzwishlist]` shortcode.
2. Go to **Bizzwishlist > Settings**.
3. Select the new page from the **"Wishlist Page"** dropdown.
4. Save the settings.

### Can I have the mini wishlist as a floating bubble?

Yes. Go to **Bizzwishlist > Settings**, enable **"Auto Display (Floating Bubble)"**, and choose your preferred position. The bubble will appear on every page of your site.

---

## Sharing

### How does wishlist sharing work?

Each customer gets a unique shareable URL. When sharing is enabled, a Share button appears on the wishlist page. The recipient sees the wishlist in a read-only view with the ability to add products to their own cart.

### Can guests share their wishlist?

Yes. Guest visitors also receive a unique shareable link based on their session key.

### Can shared wishlist recipients modify the wishlist?

No. Shared wishlists are displayed in read-only mode. Recipients can view products and add them to their own cart, but they cannot remove or modify items.

---

## Variable Products

### Does it support product variations?

Yes. When the **"Allow Variation Wishlist"** setting is enabled, customers can save specific product variations (e.g., "Blue, Size M") in their wishlist.

### What if variation tracking is disabled?

When disabled, only the parent product is saved. On the wishlist page, customers will see a variation selector and must choose their options before adding to cart.

---

## Developer Questions

### Is there a REST API?

Yes. The plugin provides REST API endpoints at `/wp-json/bizzwishlist/v1/items` supporting GET, POST, and DELETE methods. Authentication is required. See the [REST API documentation](rest-api.md).

### Can I override the wishlist page template?

Yes. Copy `templates/wishlist-page.php` from the plugin to `yourtheme/bizzwishlist/wishlist-page.php` and customize it. See [Template Overrides](template-overrides.md).

### What hooks are available for developers?

- `do_action( 'bizzwishlist_button', $product_id )` — Display the wishlist button
- `do_action( 'bizzwishlist_button_show', $product_id )` — Alternative hook

See [Shortcodes & Hooks](shortcodes.md) for the complete reference.

### Is the plugin HPOS compatible?

Yes. Bizzwishlist declares compatibility with WooCommerce High-Performance Order Storage (HPOS).

### Is the plugin translation-ready?

Yes. The plugin uses the `bizzwishlist` text domain and supports WordPress internationalization (i18n). Translation files can be placed in the `languages/` directory.
