=== Advanced Product Fields (Product Addons) for WooCommerce ===
Contributors: studiowombat,maartenbelmans
Tags: woocommerce product addons, woocommerce, woocommerce product options, product addons, product fields
Requires at least: 4.5
Tested up to: 6.9
Requires PHP: 5.6
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Stable tag: 1.6.18

Add options (addons) to your WooCommerce products so your customers can personalize their products. Product forms for everyone!

== description ==

Advaced Product Fields (Product Addons) for WooCommerce allows you to add extra product options (form input fields) to your WooCommerce product pages. Whether you want to create a pizza configurator or add extra options, this plugin has got you covered!

Allow customers to personalize their product with a handful of extra choices, input fields, etc... These product addons can increase the final product price too. The extra form data submitted by the customer will be shown on the cart and checkout pages and will be saved on the backend order.

The backend looks & works similar to ACF, so you are familiar with setting up the extra product options without a hassle.

This plugin is the best modern free WooCommerce Product Addons alternative currently available.

[&raquo; Demos](https://product-demo.studiowombat.com/?utm_source=wporg&utm_medium=referral&utm_campaign=readme) | [&raquo; More info](https://studiowombat.com/plugin/advanced-product-fields-for-woocommerce/?utm_source=wporg&utm_medium=referral&utm_campaign=readme)

== 👉️ Features ==

* Intuitive and beautiful backend builder which looks like Advanced Custom Fields
* 10 different form elements to choose from:
  * **Text field** - A normal text input field to collect single-line text
  * **Text area** - To collect multi-line text
  * **Email** - An input field to accept only email addresses
  * **URL** - A text field to accept only links (URLs)
  * **Number** - A number field to accept both decimal or whole numbers
  * **Select (drop-down)** - A dropdown field to select one option from a list of options
  * **Checkboxes** - To choose one or more options
  * **Radio buttons** - To select one option from multiple options
  * **True/false** - A single "yes or no" checkbox, which you usually know from "accept the terms of conditions" fields
  * **Paragraph** - If you want to add static blocks of text in between input fields, this does the trick!
* Conditional logic (show/hide fields based on other input fields)
* Increase final product price: add a flat fee to your products depending on the field value(s)
* Works with your WooCommerce tax settings
* Optimized for speed and faster than other plugins in this genre
* Visibility options: decide on which product(s) to show your fields
* Works with both simple & variable products and also supports variable products over ajax
* Frontend already translated in English, French, German, Spannish, and Dutch
* Translation-ready for other languages

<strong>👉 How can our plugin be useful and what should you use it for?</strong>

WooCommerce only has limited features to display extra product options (often also called product addons) on your product pages. You can use their "variable products" which can add a few select (dropdown) lists to a product.

But what if you're selling customizable t-shirts where customers can print their name on a t-shirt? Or what if you'd like your customers to build their own pizza where they can freely choose extra toppings?
These product types can't be built with WooCommerce out-of-the-box. That's where our plugin comes in. It allows you to build more complex WooCommerce products that can easily be personalized by your customer.

When should you use WooCommerce built-in variations versus our plugin? We wrote [a handy blog post](https://www.studiowombat.com/blog/when-to-use-a-plugin-for-product-options-in-woocommerce-versus-variations/?utm_source=wporg&utm_medium=referral&utm_campaign=readme) to answer that question.

== 👉️  What makes our plugin different from the competition? ==

During your research, you may have seen other plugins that do (more or less) the same. Here is how we are different:

✅️  Our plugin is younger than the competition. It does not have to support older WooCommerce or WordPress versions, so you benefit from modern code.
✅️  Quality above quantity. We carefully choose what & how we implement features so the plugin remains lightweight and fast.
✅️  The plugin's frontend scripts are tiny (~7kb) and doesn't impact your SEO score.
✅️  Easy-to-use modern backend (based on ACF) which follows WordPress & WooCommerce standards.
✅️  Regular updates to stay on top of new WordPress & WooCommerce versions.
✅️  Our plugin runs fewer database queries because we've spent time optimizing how data is stored.
✅️  No nags! We do not like to plaster your WP admin with unnecessary ads or asking for a review. We do hope you leave a review to help us grow.

We understand these statements are meaningless without <strong>additional proof</strong> to back them up, so here are a few links to help make up your mind:

* Check out the WordPress [reviews here](https://wordpress.org/support/plugin/advanced-product-fields-for-woocommerce/reviews/).
* [Plugin comparison](https://www.studiowombat.com/blog/best-woocommerce-product-addons-plugin/?utm_source=wporg&utm_medium=referral&utm_campaign=readme) with screenshots and proof.
* [Unofficial plugin test & rating](https://wphive.com/plugins/advanced-product-fields-for-woocommerce/).

Having doubts? Just contact us with your questions!

== 👉️  Why Studio Wombat? ==

* ✅ A small but friendly team of WooCommerce professionals.
* ✅ We do this full-time, we are not hobby-developers.
* ✅ Over 50,000 happy customers.
* ✅ We understand your success is our success, so we do our absolute best to help you out.
* ✅ Dedicated support team.
* ✅ Ahead of time, we test our plugins the latest WordPress and WooCommerce versions.
* ✅ We choose quality over quantity: not every feature makes it in the plugins, but those that do are quality coded.
* ✅ We care about your site speed.

== 👉️  Requirements ==

 * WooCommerce 3.6.0 or higher
 * WordPress 4.7 or higher
 * PHP 7.0 or higher

== 👉️  Limitations of the free version ==
Our free version is great for small stores or stores that don't need to add many complex options (product addons) to their products.
There are a few limitations of the free version that you should be aware of:

* The free version doesn't integrate with 3rd party plugins such as WooCommerce Subscriptions or a multi-currency plugin (unless they write an integration).
* It doesn't work with themes using Ajax technology for their product "add to cart" button.
* The free version allows only allows you to add an extra flat fee ( = not quantity based) to your product price.
* You can't add fields to separate variations.

If you need those features, you may consider our premium version. You can read ahead what's included with premium.

== 👉️  Premium Features ==

Everything from the free version, plus:

* Works on these product types: Simple, Variable (including separate variations), and Subscriptions.
* More field types:
  * **File upload** - allowing your customers to upload one or multiple files
  * **Image swatches** - multi and single choice options with images (and image zoom)
  * **Color swatches** - multi and single color options
  * **Text swatches** - text options
  * **Date** - adds a calendar picker
  * **Calculation** - adds an informative calculation (like "square meters") or a separate extra cost calculation.
  * **Image with quantities** - image swatches with quantity inputs underneath.
  * **Child products** - select other products from your store as options (and enjoy stock control).
  * **Cards** - clickable cards with nicely layout information.
* Content fields to add content to your product pages (no form inputs):
  * **Image** - to add extra images
  * **Text/HTML** - to add extra text, HTML, or even shortcodes
  * **Section** - to group fields in a section
* Support for modern themes using "ajax add to cart" technology
* The product image on the frontend can be changed when different options are selected
* Set a minimum/maximum allowed number of selections on multi-select fields
* More pricing options: formula-based pricing, quantity-based pricing, percentage-based pricing, value-based pricing, and character length pricing
* You can also give discounts (negative pricing) on options
* Repeatable fields: repeat fields if your visitors press an 'add new' button
* Quantity-based fields: fields can repeat based on the quantity the customer selects
* Works with page/product builders like Elementor, Oxygen, Beaver Builder, and Divi
* Variable builder for more complex pricing possibilities
* More options to attach one field group to multiple products at once (via product name, variation, category, tag, ...)
* Support for multilingual stores through WPML or Polylang
* Works with your WooCommerce tax settings
* Support for multi-currency stores via the WOOCS plugin
* More integrations with other plugins (such as WooCommerce Subscriptions) & popular themes. [See here](https://www.studiowombat.com/knowledge-base/which-plugins-and-themes-are-compatible-with-advanced-product-fields-for-woocommerce/?utm_source=wporg&utm_medium=referral&utm_campaign=readme)
* More options for text fields: min. and max. length, or HTML validation (regex pattern)
* Actions & filters so you can extend the plugin with additional features
* HTML output allowing you to more easily style certain aspects with CSS
* Great tutorials to display a multi-step form, make a donation product, build a pizza configurator, etc ...
* Add-on plugins to make it even more powerful. You can create product configurators with live preview, powerup file uploads, add an image editor, integrate with ACF, ...
* And more..!

[Premium Demos](https://product-demo.studiowombat.com/?utm_source=wporg&utm_medium=referral&utm_campaign=readme) | [Premium WP admin demo](http://wapf-admin.studiowombat.com/pro/wp-admin/?utm_source=wporg&utm_medium=referral&utm_campaign=readme) | [More info](https://studiowombat.com/plugin/advanced-product-fields-for-woocommerce/?utm_source=wporg&utm_medium=referral&utm_campaign=readme)


== Installation ==

From your WordPress dashboard

1. **Visit** Plugins > Add New
2. **Search** for "Advanced Product Fields for WooCommerce"
3. **Activate** the plugin from your Plugins page
4. **Click** on the new menu item WooCommerce > Product Fields and create your first Custom Field Group (product addons).

== Screenshots ==
1. Example of a product with extra options.
2. Example of the backend settings.

== Frequently Asked Questions ==

= What are the system or server requirements? =

 You'll need WooCommerce 3.6.0 or higher, WordPress 4.7 or higher, and PHP 7.0 or higher to make this plugin work.

== Changelog ==

= 1.6.18 =
 * Improvement: added extra security for the "duplicate" field group logic.
 * Other: verify WP 6.9 and Woo 10.4 compatibility.

= 1.6.17 =
 * Improvement: the "Field groups" list now also displays private groups.
 * Improvement: translation improvements.
 
= 1.6.16 =
 * Improvement: improved compatibility with variable products and the pricing summary.
 * Fix: fixed an issue where the default value "0" wouldn't be shown on number fields.

= 1.6.15 =
 * Improvement: better integration with WooCommerce tax settings.

= 1.6.14 =
 * Improvement: better integration with theme builders who don't adhere to Woo standards.

= 1.6.13 =
 * Fix: fixed a few translation strings.
 * Other: added changelog.txt.
 * Other: verified Woo 9.8 pre-release compatibility.
 * Dev: fixed developer filters for field and container classes.
 
= 1.6.12 =
 * Fix: a few texts were not translatable yet. This is now fixed.
 * Other: verified compatibility with the upcoming WP version 6.7.
 
= 1.6.11 =
 * Fix: fixed a PHP 8 deprecation warning.

= 1.6.10 =
 * Fix: products with a large amount of variations and no fields present wrongly called our "calculate" method.

= 1.6.9 =
 * Fix: fixed a pricing issue when no quantity input can be found on the page.
 * Other: test compatibility with the latest Woo & WP versions.
 
= 1.6.8 =
 * Improvement: removed outdated code.
 * Other: test compatibility with Woo & WP.

= 1.6.7 =
 * Other: bumped minimum required WooCommerce version to 3.8.
 * Other: test compatibility with Woo 8.8 (beta).

= 1.6.6 =
 * Fixed: fixed a fatal PHP error.

= 1.6.5 =
 * Improvement: minor code improvements.
 * Other: soft-increase minimum PHP verion to 7.0 in accordance with the new WordPress minimal requirements. This is not a breaking change for now.
 * Other: readme changes to reflect limitations.


= 1.6.4 =
 * Improvement: started redesigning the admin fields, beginning with new field icons.
 * Other: add rate link.
 * Other: tested compatibility with WordPress 6.4 (beta release).

= 1.6.3 =
 * Other: declare compatibility with the upcoming WooCommerce HPOS update.

= 1.6.2 =
 * Fix: fixed readme formatting error.
 * Other: verify latest WP and Woo compatibility.

= 1.6.1 =
 * Fix: fixed an error when adding conditionals to fields in the backend (and a content field was present).
 * Fix: a few texts had the wrong translation textdomain.

= 1.6 =
 * New: new option for "number" field to allow decimal numbers as well.

= 1.5.10 =
 * Fix: fixed a translation issue in German.
 * Fix: Add WPML config file for add-to-cart text in the settings.

= 1.5.9 =
 * Improvement: minor performance improvements.
 * Improvement: price labels now take into account WooCommerce price arguments and "hide zeros" filter.
 * Other: compatibility test with WordPress 6.2 (beta 1).
 * Other: compatibility test with WooCommerce 7.4 (beta 1).
 * Other: minimum WooCommerce version will be bumped up to 3.8 in the next release.

= 1.5.8 =
 * Fix: include content.php.

= 1.5.7 =
 * Fix: fixed a PHP warning when outputting the paragraph field in some cases.
 * Other: tested WooCommerce 7.3 beta release.

= 1.5.6 =
 * Improvement: modernized admin CSS, resulting in a smaller footprint.
 * Other: verify Woo 7.3 (beta 1) compatibility.

= 1.5.5 =
 * Other: verify Woo 7.1 compatibility.
 * Other: update internal links to their proper addresses.

= 1.5.4 =
 * Other: verify WP 6.1 compatibility.
 * Other: verify Woo 7.0 compatibility.

= 1.5.3 =
 * Fix: fixed an error when duplicating field groups with fields containing conditionals.

= 1.5.2 =
 * New: new field type "paragraph", allowing you to add static content (text) in between other fields.

= 1.5.1 =
 * Improvement: added styling to support modern page builders & themes like Elementor, Astra, and the Avada theme.

= 1.5.0 =
 * New: included "order again" functionality.
 * Other: tested & verified new Woo version.

= 1.4.9 =
 * Other: tested and verified new major WP release + WooCommerce version.
 * Other: bumped minimum required WooCommerce version from 3.4 to 3.6.

= 1.4.8 =
 * Fix: fixed a bug with a field limit alert dialog showing incorrectly.

= 1.4.7 =
 * Improvement: adding to cart via the URL (with '?add-to-cart=') now validates required fields.

= 1.4.6 =
 * Improvement: the "True/False" fields's labels 'true' or 'false' can now be translated.
 * Other: verify compatibility with latest WooCommerce & WordPress version.

= 1.4.5 =
 * Other: verify compatibility with Woo 6.2.

= 1.4.4 =
 * Fix: fixed a PHP warning.
 * Other: verify compatibility with latest Woo version.

= 1.4.3 =
 * New: added Danish translations.

= 1.4.2 =
 * Other: verify compatibility with new WP & Woo version.

= 1.4.1 =
 * Fix: fixed an issue with some "add to cart" validations.
 * Fix: fixed an issue with "required" translation string.
 * Other: verify compatibility with current Woo version.

= 1.4.0 =
 * Fix: fixed a bug where some configurations would result in a general "add to cart" error.
 * Other: verify compatibility with current Woo version.

= 1.3.9 =
 * Update: changed all array() functions to shorthand syntax.
 * Update: enhanced/secured "add to cart" validation.
 * Other: verify compatibility with upcoming WP & Woo versions.

= 1.3.8 =
 * Update: changed links to new version of the documentation.
 * Update: verify WooCommerce & WP version tags.

= 1.3.7 =
 * Update: verify WooCommerce & WP version tags.
 * Update: minimum WooCommerce version is now set to 3.4.0. We ensure compatibility with previous minimum version (3.2.0) for the time being.

= 1.3.6 =
 * Update: added translations for Italian, Norwegian, Swedish & Portuguese.
 * Fix: fixed an issue with VAT-inclusive prices in combination with 0% VAT classes and calculating incorrect base price in the cart.
 * Fix: fixed an edge case bug where reordering fields in the backend didn't work.

= 1.3.5 =
 * Fix: fixed an issue with "wp_slash" for versions older than WP 5.5.
 * Fix: removed some deprecated functions in jQuery.
 * Other: tested & updated WP & Woo version tags.

= 1.3.4 =
 * Update: allow more HTML tags in field labels & descriptions (while still being secure).
 * Fix: fixed an issue where saved product fields were serialized twice.

= 1.3.3 =
 * Fix: fixed PHP some notices when saving fields in the backend.

= 1.3.2 =
 * Fix: minor styling issues in WP 5.5+.
 * Fix: fixed "advanced" tab of Yoast SEO plugin not showing.

= 1.3.1 =
 * Added: support for Polylang.
 * Fix: fixeded cart showing options with "(+$ 0.00)" when no pricing method was selected for this option.

= 1.3.0 =
 * Fix: changed translations text-domain to match the plugin slug so transating via translate.wordpress.org is possible.

= 1.2.1 =
 * Fix: fixed a PHP warning with stripslashes().

= 1.2.0 =
* Update: enhanced how field data is stored in the database: as array instead of objects. This ads more compatibility with migration/export plugins.
* Update: disable stripe "pay now" buttons on the product page as they can't pick up custom pricing.
* Fix: fixed an issue when a user entered text with a quote symbol, a slash would appear before it in cart/checkout.

= 1.1.7 =
 * Added: the plugin now fully supports your WooCommerce tax settings.
 * Update: added CSS to make the admin backend play nicer with the new WP styling.
 * Fix: fixed a bug where empty fields were still shown in cart.
 * Fix: fixed a bug where some fields would be wrapped in a new row unintentionally.
 * Fix: fixed a bug with duplicating field groups under "WooCommerce > Product Fields". field ID's weren't unique when duplicating.

= 1.1.6 =
 * Update: changed frontend JS a bit to support more themes.
 * Update: verify Woo 4.0 & 4.0.1 compatibility.
 * Fix: fixed an issue with cart validation of radio buttons, select lists or checkboxes.

= 1.1.5 =
 * Update: UX improvement: admin won't save if choice field labels are not set and display the error.
 * Update: UX improvement: show error message when duplicating field groups doesn't work.
 * Update: allow 5 field groups in free version instead of just 4.
 * Update: tested compatibility with latest Woo version and updated tags.

= 1.1.4 =
 * Fix: fixed a bug when creating a 4th field group. Adding fields to it wasn't possible.
 * Fix: removed a PHP warning.

= 1.1.3 =
 * Fix: fixed typo in "checkbox" template.

= 1.1.2 =
 * Update: added WPML support.

= 1.1.1 =
 * Update: support for "ajax add to cart" themes and "required" fields.
 * Fix: "select options" was sometimes incorrectly showing.

= 1.1.0 =
 * Update: the dropdown label "choose an option" now only appears when necessary.
 * Update: added frontend translations for Dutch, French, German, and Spannish.
 * Fix: fixed an issue with column widths.

= 1.0.9 =
 * Update: better dependency checking on the frontend.
 * Fix: fixed an issue with select lists and pricing.
 * Fix: fixed an issue with true-false field price labeling.

= 1.0.8 =
 * Fix: fixed an issue with duplicating some fields in the backend.
 * Fix: fixed an issue with hidden fields validating on the frontend.
 * Fix: fixed an issue with decimal pricing on the frontend.

= 1.0.7 =
 * Update: When searching for products in the backend, you can now also find products in draft.
 * Update: added extra info dialogs to the pricing options, so you better understand all options available.
 * Update: support variations via ajax.
 * Fix: fixed pricing calculation when a variation is selected by a user.
 * Fix: fixed an issue with hidden fields wrongly validating in cart.
 * Fix: fixed an issue with product price not updating when the user select a variation.

= 1.0.6 =
 * Fix: fixed an issue with decimal price formatting on the single product page.

= 1.0.5 =
 * Update: added .pot file for translators.
 * Update: added filter for devs to change the "product totals" HTML.
 * Update: allow some HTML in field descriptions & labels.

= 1.0.4 =
 * Fix: fixed a bug with item pricing when changing item quantity on the cart page.

= 1.0.3 =
 * Update: small backend Javascript bugfix.

= 1.0.2 =
 * Update: Made frontend Javascript file 19% smaller, to 5.9kb.

= 1.0.1 =
 * HTML Changes so it can more easily be styled with CSS

= 1.0.0 =

Initial release

== Upgrade Notice ==

= 1.3.0 =
If you've generated your own .po/.mo files, you'll need to rename those to match the new slug "advanced-product-fields-for-woocommerce".