=== WooCommerce Product Dependencies ===

Contributors: automattic, woocommerce, SomewhereWarm
Tags: woocommerce, products, dependencies, prerequisite, restrict
Requires at least: 6.2
Tested up to: 6.6
WC requires at least: 8.2
WC tested up to: 9.1
Stable tag: 2.0.1
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Restrict access to any WooCommerce product, depending on the ownership and/or purchase of other required products.


== Description ==

Looking for a way to restrict product access in WooCommerce? Don't want to set up a full-fledged [memberships](https://woocommerce.com/products/woocommerce-memberships/) site?

This tiny plugin allows you to restrict access to any WooCommerce product, depending on the ownership or purchase of other, required products.

Features:

* **Conditional product access** based on the ownership and/or purchase of other required products.
* Support for "ownership", "purchase" and "ownership/purchase" dependency types.

Developers can checkout and contribute to the source code on the plugin's [GitHub Repository](https://github.com/woocommerce/woocommerce-product-dependencies/).

**Important**: Requires WooCommerce 2.2+. WooCommerce 3.0+ or higher recommended.

Like this plugin? You'll love our official WooCommerce Extensions:

* [WooCommerce Product Bundles](https://woocommerce.com/products/product-bundles/)
* [WooCommerce Composite Products](https://woocommerce.com/products/composite-products/)
* [WooCommerce Conditional Shipping and Payments](https://woocommerce.com/products/conditional-shipping-and-payments/)
* [WooCommerce Product Recommendations](https://woocommerce.com/products/product-recommendations/)
* [All Products for WooCommerce Subscriptions](https://woocommerce.com/products/all-products-for-woocommerce-subscriptions/)


== Installation ==

1. Download the plugin.
2. Go to your WordPress Dashboard and then click **Plugins > Add New**.
3. Click **Upload Plugin** at the top.
4. Click **Choose File** and select the .zip file you downloaded in **Step 1**.
5. Click **Install Now** and **Activate** the plugin.


== Documentation ==

Dependencies are evaluated when customers attempt to add a product to their cart. If validation fails, the product cannot be added to the cart and a notice is displayed. In order to evaluate "Ownership"-type dependencies, customers are prompted to log in.

= Creating Dependencies =

To add dependencies to a product:

* Go to the **Product Data > Dependencies** tab.
* Use the **Product Dependencies** field to search for and add some products and/or variations.
* Choose a **Dependency Type**.
* **Update** to save your changes.

The "Ownership" dependency type is evaluated by checking if the customer has purchased a required product in a previous order. The "Purchase" dependency type requires the customer to have a required product in the cart in order to purchase the dependent one.

= Ownership vs Purchase =

The plugin allows you to select between 3 different dependency types:

* **Ownership**: Access is granted only to customers that already own any of the products added to the Product Dependencies field.
* **Purchase**: The product can be purchased only in combination with any of the items added to the Product Dependencies field. Ownership is not taken into account.
* **Either**: Access is granted with ownership or purchase of any item added to the Product Dependencies field.


== Screenshots ==

1. Product dependencies can be created from the **Dependencies** tab, found under **Product Data**, and adding products/variations to the **Product Dependencies** field.
2. If the ownership and/or purchase conditions are not met, products with dependencies cannot be added to the cart and a notification is displayed.


== Changelog ==

= 2.0.0 =
* Tweak - Updated author links.

= 2.0.0 =
* Important - New: PHP 7.4+ is now required.
* Important - New: WooCommerce 8.2+ is now required.
* Important - New: WordPress 6.2+ is now required.

= 1.2.8 =
* Feature - Declared compatibility with the new High-Performance Order Tables.

= 1.2.7 =
* Fix - Prevent products from satisfying their own dependencies.

= 1.2.6 =
* Tweak - Declared support for WooCommerce 5.0.

= 1.2.5 =
* Tweak - Declared support for WooCommerce 4.2.

= 1.2.4 =
* Tweak - Declared support for WC 4.1 and WP 5.4.

= 1.2.3 =
* Tweak - Updated plugin headers to declare support for WC 3.9 and WP 5.3.

= 1.2.2 =
* Fix - Remove esc_html when rendering custom notices.

= 1.2.1 =
* Fix - Products with "Purchase"-type category dependencies cannot be added to the cart although a variation of a product that belongs to the required category has been added to the cart.

= 1.2.0 =
* Feature - Introduced category-based dependencies.
* Feature - Added custom dependency notices.
* Feature - Added AND/OR dependency relationship. Can be activated for specific products using the 'wc_pd_dependency_relationship' filter.
* Tweak - Tweaked default notices.

= 1.1.3 =
* Tweak - Updated description.
* Tweak - Added WooCommerce version headers.

= 1.1.2 =
* Fix - Variable product dependencies not validated correctly in the cart.

= 1.1.1 =
* Fix - Dependencies not working under WC < 3.0 after last update. Fixed!

= 1.1.0 =
* Refactored and cleaned up plugin.
* Fix - Added support for WooCommerce 3.0.
* Tweak - Add links to dependent products in notices.

= 1.0.7 =
* Fix - Stray "or" in dependent products list when only one dependency is present.
* Localization - Added Brazilian Portuguese translation.

= 1.0.6 =
* Fix - PHP array_values warning.

= 1.0.5 =
* Fix - WC 2.3 support.

= 1.0.4 =
* Localization - Added Brazilian translation (robertopc)

= 1.0.3 =
* Fix - Saving bug

= 1.0.2 =
* Fix - WC detection fix

= 1.0.1 =
* Tweak - Styling support for WooCommerce v2 write-panels

= 1.0 =
* Initial release


== Upgrade Notice ==

= 1.2.7 =
Prevent products from satisfying their own dependencies.
