*** Product Addons Changelog ***

= 8.4.3 - 2026-10-07 =
* Fix - Stopped add-on options whose labels match after formatting from applying each other's prices, including hidden options.
* Fix - Rejected unsupported file-upload values submitted through the Store API.
* Fix - Prevented submitted URLs from impersonating completed classic-cart file uploads.
* Fix - Limited daily guest upload volume while preserving existing uploads.
* Fix - Enforced required add-ons when Store API requests omit their configuration.
* Fix - Limited order file links to verified local file-upload add-ons.
* Fix - Prevented duplicate deserialization of add-on metadata during CSV export.
* Fix - Fixed radio add-ons to accept one selection and preserve the first matching choice when reordering legacy orders.
* Fix - Kept image swatch labels as text in product and order forms while preserving zero-valued choices and legacy surcharge text; data-price contained price markup only and data-label supplied the label.
* Fix - Fixed date add-on validation and preserved prices for accepted date selections.
* Fix - Kept empty optional date selections valid when an integration retains the companion timestamp.
* Fix - Fixed Store API add-on pricing to use the validated request data.
* Fix - Rejected malformed list choices before resolving add-on options.
* Fix - Preserved empty selections passed as null list placeholders by integrations.
* Fix - Refreshed global add-on membership and required-option buttons after group and category changes while avoiding cache work for unrelated metadata.
* Fix - Kept required global add-ons and their prices when adding variations through the Store API.
* Fix - Validated, displayed and priced retained legacy select and radio add-ons in cart and Store API requests while preserving their selections and radio group labels.
* Fix - Kept custom add-on prices finite and bounded through cart pricing while preserving validation-only filters and legacy optional price keys.
* Fix - Fixed missing cart prices for add-on options labeled zero.
* Fix - Preserved zero-valued radio selections when editing cart items.
* Fix - Fixed historical file-upload formatting after changing an add-on to a textarea.
* Fix - Fixed legacy file-upload metadata validation; uploads outside the standard directory displayed as plain text.
* Fix - Kept shopper text add-ons as plain text in orders and emails.
* Fix - Preserved radio selections, defaults and prices when labels shared a slug or filtered options had sparse keys; refreshed radio template overrides to retain defaults for colliding labels.
* Fix - Prevented duplicate add-on charges by skipping unsupported definitions, including those with a missing display setting.
* Fix - Hid the "Display as" option for Short Text add-ons when the product add-ons panel first loaded.
* Tweak - Raised minimum requirements to WordPress 6.9 and WooCommerce 10.9.
* Tweak - Declared compatibility with WordPress 7.1 and WooCommerce 11.2.
* Dev - Updated development dependencies to address security advisories.
* Dev - Hardened release artifact verification, release pull request checks, and WordPress test metadata.
* Dev - Updated the development toolchain to Node 24.18 and @wordpress/scripts 35.
* Dev - Corrected hook docblocks and other PHPStan findings that do not change behavior.
* Dev - Raised the PHPStan analysis level to 2.
* Dev - Switched the version headings in changelog.txt to the WordPress.org format.

= 8.4.2 - 2026-09-02 =
* Fix - Prevented tax calculations from exposing prices of non-public products to shoppers without access.
* Fix - Restricted global add-on deletion to authorized add-on groups.
* Fix - Refreshed the global add-on cache when a group is deleted through the REST API.
* Fix - Escaped product titles, add-on names, and option labels in subtotal displays.
* Fix - Preserved radio and checkbox selections and legacy pricing defaults after canonicalization.
* Fix - Preserved normalized input-multiplier quantities through pricing.
* Fix - Made new customer file-upload URLs unpredictable with random per-upload paths.
* Fix - Enforced custom-text requirements and content rules on cleaned server-side values.
* Fix - Limited Store API checkbox selections to prevent excessive cart-processing work.
* Fix - Restricted order-edit add-on templates to supported field types.
* Fix - Rejected negative customer-defined prices and input-multiplier quantities.
* Fix - Preserved file upload type restrictions when importing add-ons.
* Fix - Preserved add-on order when importing add-ons.
* Tweak - Added a tooltip and screen reader text to the required add-on field marker.
* Dev - Pinned the secret-bearing AI review workflow to an immutable revision.
* Dev - Managed changelog entries with Jetpack Changelogger: pull requests add a change file under changelog/ instead of editing changelog.txt.
* Dev - Removed redundant and low-value tests.
* Dev - Made Store API unit tests resilient to WooCommerce price-markup changes.

= 8.4.1 - 2026-08-19 =
* Fix - Added a directory-listing placeholder to add-on file upload directories, and backfilled existing directories in the background.
* Fix - Secured zero-priced product calculations while preserving Smart Coupons credit amounts.
* Fix - Prevented "Translation loading was triggered too early" notices when the installed WooCommerce or PHP version is not supported.
* Fix - Fixed add-on data being dropped when adding products to the cart through the Store API `/batch` endpoint.
* Fix - Prevented a failed Store API add-to-cart validation from leaving a stale error notice behind for later requests.
* Fix - Prevented unauthorized access to order-item add-on configuration.
* Dev - Restored TLS certificate verification and fail-closed error handling in the release deployment script.
* Dev - Fixed the unit-test CI matrix so coverage config matches this repository, and restored the PHP 8.0 job.
* Dev - Enabled JavaScript linting in the release pipelines.
* Dev - Pinned and checksum-verified the WP-CLI executable used in release builds.
* Dev - Updated cross-env to v7 and PHP_CodeSniffer to 3.13.6 (security release).
* Dev - Added Markdown, dependency license, and WordPress.org Plugin Check gates to the pull request CI.
* Dev - Updated the npm build toolchain to resolve all remaining Dependabot security alerts.
* Dev - Standardized the package license identifier on GPL-3.0-or-later.
* Dev - Exposed the shared `.ai/commands` to agent tooling and documented the isolated worktree setup.
* Dev - Enabled CSS linting in CI and fixed source style violations.
* Dev - Enabled JavaScript linting in CI and migrated the ESLint setup to the flat config format required by ESLint 10, aligning the lint and formatting toolchain with WooCommerce core.
* Dev - Removed release credentials from pull request E2E jobs.
* Dev - Update wp-coding-standards/wpcs to 3.4.1 (security release) in the phpcs lint tooling.
* Dev - Update development Composer dependencies (PHPUnit, Guzzle PSR-7, PsySH, Symfony YAML) to resolve security advisories in the PHP test toolchain.
* Dev - Update development npm dependencies to resolve security advisories in the build toolchain.
* Dev - Hardened the QIT test workflow: pinned the QIT CLI version and stopped workflow inputs from being interpolated into shell source.

= 8.4.0 - 2026-07-22 =
* Add - Important: WordPress 6.8+ is now required.
* Add - Important: WooCommerce 10.6+ is now required.
* Add - Added sorting by Name column in the global add-ons list table.
* Add - Added search functionality to filter global add-ons by name.
* Add - Added per-page screen option for the global add-ons list table, compatible with the existing `woocommerce_pao_admin_edit_add_ons_per_page` filter.
* Fix - Fixed mini-cart add-on prices displaying without taxes.
* Fix - Resolved an issue where the default selection for the first checkbox option was not retained after reloading the product in admin.
* Fix - Fixed deleting dropdown add-on options containing double quotes.
* Fix - Fixed global add-ons list table sorting to apply across all pages instead of only within the current page.
* Fix - Fixed sorting by 'Number of fields' column to correctly sort by field count.
* Tweak - Bumped WooCommerce tested up to version to 11.0.

= 8.3.1 - 2026-06-16 =
* Add - Added initial read-only WordPress abilities for Product Add-Ons global groups and product add-ons.
* Fix - Prevented a JavaScript error that could break add-ons when tipTip is dequeued.
* Fix - Fixed an issue where "Order again" silently dropped add-ons whose name had changed since the original order was placed.
* Tweak - Security updates.
* Tweak - Bumped WooCommerce tested up to version to 10.9.
* Dev - Updated the JavaScript build toolchain to the React 18.3 line and added React 19 readiness guards.

= 8.3.0 - 2026-05-05 =
* Fix - Disallowed space-only option names.
* Fix - Improved server-side validation of add-on values during add-to-cart.
* Fix - Preserved per-line coupon discounts and original line totals when editing add-ons in admin.
* Tweak - Bumped WordPress tested up to version to 7.0.
* Tweak - Bumped WooCommerce tested up to version to 10.7.

= 8.2.0 - 2026-02-25 =
* Add - Added 'Limit file types' option for File Upload add-ons to restrict the type of uploaded files per add-on.
* Fix - Fixed an issue that prevented adding products with preconfigured Add-Ons to the cart via URL.
* Tweak - Bumped WooCommerce tested up to version to 10.5.
* Dev - Important: Updated File Upload template.

= 8.1.2 - 2025-12-03 =
* Tweak - Replaced wc_enqueue_js with wp_add_inline_script according to the recommended WordPress core script patterns.
* Tweak - Bumped WordPress tested up to version to 6.9.
* Tweak - Bumped WooCommerce tested up to version to 10.4.

= 8.1.1 - 2025-11-12 =
* Fix - Replaced deprecated script handles for compatibility with WooCommerce 10.3+.

= 8.1.0 - 2025-10-02 =
* Fix - Allow 0 pre-filled value for Price and Quantity add-ons.
* Fix - Fixed an issue where dropdown options getting hidden when deleting an option.

= 8.0.0 - 2025-09-22 =
* Tweak - Important: Updated frontend templates.
* Fix - Improved accessibility.

= 7.9.2 - 2025-07-29 =
* Fix - Fixed an issue where jQuery TipTip tooltips were not loaded.

= 7.9.1 - 2025-07-02 =
* Fix - Fixed an issue where subscription products with add-ons couldn't be configured in admin orders.
* Fix - Fixed an issue that prevented manually paying for subscriptions with required add-ons.

= 7.9.0 - 2025-05-20 =
* Fix - Fixed an issue that prevented add-on options from being saved correctly when an add-on was removed.
* Dev - Removed deprecated WC_PAO_Core_Compatibility::wc_current_theme_is_fse_theme.
* Tweak - Removed name attribute from product_addons_export_string to improve compatibility with certain hosts.
* Tweak - Updated all json_encode functions with wp_json_encode.

= 7.8.2 - 2025-05-06 =
* Tweak - Replaced the use of deprecated function wc_current_theme_is_fse_theme.
* Tweak - Deprecated WC_PAO_Core_Compatibility::wc_current_theme_is_fse_theme.
* Tweak - Added validation when re-ordering a product with add-ons. Can be disabled via: 'woocommerce_product_addon_reorder_disable_validation'.

= 7.8.1 - 2025-04-10 =
* Fix - Improved handling of add-ons display to prevent conflicts when the global product object is missing.

= 7.8.0 - 2025-04-08 =
* Tweak - Important: Updated the image.php template, which is responsible for displaying Multiple Choice add-ons as images.
* Tweak - Added width and height attributes on multiple choice option images.
* Fix - Resolved some styling issues in the Products > Add-Ons configuration screen

= 7.7.0 - 2025-03-10 =
* Add - Added support for Product Add-Ons selection in Store API.
* Fix - Fixed an issue with long multiple choice options not being selected.
* Fix - Fixed a display issue with flat fees pricing when purchasing more than one product in the Cart block.

= 7.6.0 - 2025-03-03 =
* Add - Added a visibility option to Multiple Choice and Checkboxes add-ons.
* Add - Important: Updated the Multiple Choice and Checkboxes templates.
* Fix - Fixed an issue where a dropdown was wrongfully appearing for Multiple choice add-ons displayed as images.
* Fix - Fixed a compatibility issue with PayPal and the cart/checkout block that removed add-on prices in cancelled orders.

= 7.5.0 - 2025-02-11 =
* Add - Added a 'Clear' button to File Upload add-ons.
* Tweak - Important: Removed compatibility with the new Product Editor.
* Tweak - Important: Updated the File Upload template.

= 7.4.0 - 2025-01-22 =
* Add - Added support for default values in Multiple Choice, Checkbox, Quantity and Price add-on types.
* Add - Updated the REST API integration to support default add-on values.
* Tweak - Updated the REST API integration to support decimal values for min/max Price add-on fields.
* Fix - Fixed an issue where multiple choice options could be assigned to the incorrect add-on when add-ons are being moved around.

= 7.3.1 - 2025-01-15 =
* Fix - Fixed an error triggered when clicking on the cart item link of a product with a un-configured custom price add-on.

= 7.3.0 - 2025-01-14 =
* Tweak - Important: Updated the template for displaying Price add-ons.
* Tweak - Supported decimal values for Price add-ons, based on the store's decimal separator.
* Tweak - Removed use of global product variable in the context of the admin page.
* Fix - Fixed dates before 1970 in Date Picker add-on not being allowed.
* Fix - Fixed non-display of add-ons in single product block.

= 7.2.1 - 2024-12-02 =
* Fix - Fix fatal error when the cart permalink is cleared.
* Fix - Fixed selected image add-on price not displaying in admin orders.
* Fix - Fixed empty return while using the 'woocommerce_add_cart_item_data' filter.
* Fix - Fixes issue with admin order editing of global add-ons with category filtering on product variants.
* Fix - Fixed Tracker error when invalid global add-on is encountered.

= 7.2.0 - 2024-11-20 =
* Add - Added compatibility with WordPress 6.7.
* Add - Added support for pre-populating add-ons when clicking on a cart item link.
* Add - Introduced the 'woocommerce_pao_reset_file_link' filter to modify the file input clear link.
* Add - Introduced the 'woocommerce_product_addons_cart_permalink' filter to control when to pre-populate add-ons from a cart item link.
* Add - Introduced the 'woocommerce_product_addons_parse_cart_addons' filter to modify the add-ons parsed from a cart item link.
* Tweak - Templates have been updated to support pre-populating add-on values.
* Tweak - Allowed decimal values for the Limit Price option for Price add-ons.
* Fix - Enforce minimum epoch date for date pickers in add-ons.
* Fix - Resolved an issue that caused global add-ons to not be saved when editing a variation order item in the admin context.
* Fix - Resolved an issue with price calculations that can result in the customer being shown the incorrect price on the product page with slow servers or connections.

= 7.1.2 - 2024-10-22 =
* Fix - Fixed a regression with front-end validation for image add-ons.
* Fix - Fixed a regression with front-end validation for file upload add-ons.

= 7.1.1 - 2024-09-30 =
* Add - Important: Data migrations from versions before 3.0 are disabled by default. Introduced 'woocommerce_product_addons_enable_migration_3_0' filter to allow this to be overridden.

= 7.1.0 - 2024-09-17 =
* Add - Important: Product Add-Ons now requires Composite Products 10.1+ for the integration between the two plugins to work.
* Add - Important: Product Add-Ons now requires Product Bundles 8.1+ for the integration between the two plugins to work.
* Add - Added support for configuring bundled product add-ons in admin orders.
* Add - Added support for configuring component add-ons in admin orders.
* Fix - Support add-ons configuration in admin orders for variations.

= 7.0.3 - 2024-09-03 =
* Fix - Resolved warning triggered by global add-ons without ID.

= 7.0.2 - 2024-08-27 =
* Add - Added full validation to order add-on configuration in the admin.
* Add - Use global add-on ID for class names in global add-ons.
* Fix - Resolved a PHP warning triggered when adding a product with add-ons to the cart, while using WooCommerce 9.2+.
* Fix - Resolved PHP warnings triggered when doing a REST API v2 request with missing data.
* Fix - Corrects the validation for quantity fields to validate the min and max values even if the field is not required.
* Fix - Prevent negative values for Customer-defined price and Quantity add-on types.
* Fix - Fixed Add-On type display value in admin for the Heading Add-On type.
* Fix - Resolved an issue that prevented percentage add-on prices from showing correctly for Name Your Price products in the order confirmation page.
* Tweak - Removed WooCommerce Navigation integration.
* Tweak - Improved display of field type in the admin for narrow browser windows.
* Tweak - Improve contrast of field type and ID in the admin.
* Tweak - Add defensive is_array checks to prevent errors when fetching add-ons with filters.

= 7.0.1 - 2024-07-31 =
* Fix - Deactivate plugin for WooCommerce versions prior to 8.2 to avoid fatal errors.

= 7.0.0 - 2024-07-30 =
* Add - Important: PHP 7.4+ is now required.
* Add - Important: WooCommerce 8.2+ is now required.
* Add - Important: WordPress 6.2+ is now required.
* Add - Important: Removed all previously deprecated code.
* Add - Updated the 'woocommerce_product_addons_update_product_price' filter to modify the flat fees sum associated with a cart item, as well. Used in WooPayments MultiCurrency 8.1+.
* Fix - Normalised the way that custom price fields are saved.
* Fix - Fixed a pay-for-order conflict with WooPayments.
* Tweak - Cleaned up frontend hooks from admin templates.
* Tweak - Removed trailing [] from radio button input name attribute in 'templates/addons/radiobutton.php'.

= 6.9.0 - 2024-07-03 =
* Add - Important: Product Add-Ons now requires Product Bundles 7.2+ for the integration between the two plugins to work.
* Add - Important: Product Add-Ons now requires Composite Products 9.1+ for the integration between the two plugins to work.
* Add - REST API v2.
* Add - Introduced compatibility with the new Product Editor.
* Add - Added support for add-ons configuration in admin orders.
* Tweak - Started recording raw prices and user supplied values for orders created with add-ons.
* Fix - Fixed Add-On type display value in admin for the Checkboxes Add-On type.

= 6.8.4 - 2024-06-04 =
* Fix - Improved validation of values when getting maintenance and dismissed notices from the DB.

= 6.8.3 - 2024-05-14 =
* Fix - Important: Security improvements.
* Fix - Fixed an issue where add-on IDs change on each save.
* Tweak - Added more classes in add-ons subtotals.

= 6.8.2 - 2024-04-09 =
* Tweak - Updated the way of identifying hydration context in Store API requests.

= 6.8.1 - 2024-03-26 =
* Fix - Fixed an issue that prevented importing add-ons to new global add-on groups.

= 6.8.0 - 2024-03-12 =
* Add - Introduced Date Picker add-on type.
* Add - Introduced 'Add placeholder' option for text add-ons.

= 6.7.0 - 2024-03-05 =
* Add - Important: Product Add-Ons now requires Product Bundles 7.0+ for the integration between the two plugins to work.
* Add - Important: Product Add-Ons now requires Composite Products 9.0+ for the integration between the two plugins to work.
* Tweak - Reveal add-on subtotals only when an add-on has been selected in products with only optional add-ons.
* Fix - Resolved a PHP error that can occur when multiple choice add-on's value is empty
* Fix - Resolved a PHP error that can occasionally occur when using WooPayments

= 6.6.0 - 2024-01-24 =
* Add - Important: Used JSON encoding for importing/exporting add-ons. Serialized export data created by previous plugin versions will no longer work.
* Add - Added compatibility with PHP 8.3
* Fix - Removed WooPayments express checkout buttons from product pages with add-ons due to avoid compatibility issues.
* Fix - Removed Stripe express checkout buttons from product pages with add-ons due to avoid compatibility issues.
* Fix - Removed PayPal smart buttons from product pages with add-ons due to avoid compatibility issues.
* Fix - Resolved an issue that enforced min/max quantity rules even when Limit Quantity was disabled.
* Fix - Resolved PHP warning triggered when editing a product with a deleted add-ons meta.
* Tweak - Improved the handling of the global product object to avoid compatibility issues with other plugins using it.
* Tweak - Defer frontend scripts.

= 6.5.2 - 2023-12-20 =
* Add - Introduced the 'woocommerce_addons_cloned_product_with_filtered_price' to allow plugins to not discount add-on prices.
* Fix - Resolved a styling issue with quantity-based add-on prices on the single product page.

= 6.5.1 - 2023-11-29 =
* Tweak - Introduced admin validation to ensure that add-on titles do not exceed 255 characters.
* Tweak - Introduced the 'woocommerce_addons_product_page_container_classes' filter to add additional classes to the container add-on elements on the product page.
* Tweak - Updated the description for the 'Use Global add-ons?' option.
* Fix - Fixed the display of negative add-on prices.
* Fix - Updated the image swatches template to display only the add-on name on hover when its price is 0.
* Fix - Fixed a pagination issue with global add-ons.

= 6.5.0 - 2023-10-24 =
* Add - Added onboarding.
* Tweak - Important: Re-designed Product Data > Add-ons and Products > Add-ons tabs.
* Tweak - Important: Updated the process of importing/exporting add-ons to require fewer clicks.
* Tweak - Important: Moved the 'Show incomplete subtotals' setting to WooCommerce > Settings > Products > Add-ons.
* Fix - Resolved an issue that made add-ons show up twice when paying for failed subscription orders.
* Tweak - Declared compatibility with the cart/checkout Blocks.

= 6.4.7 - 2023-09-19 =
* Tweak - Used admin theme colors in admin.
* Tweak - Displayed WC Admin bar on Global Product add-ons pages.
* Fix - Resolved an issue that accidentally selected image swatches in mobile screens while scrolling.

= 6.4.6 - 2023-09-04 =
* Fix - Resolved deprecation warnings when PHP 8.2 is used.

= 6.4.5 - 2023-08-07 =
* Tweak - Important: Updated the 'addon-start.php' template to resolve a warning that showed up for add-ons with missing IDs.

= 6.4.4 - 2023-07-20 =
* Fix - Resolved a fatal error caused by missing regular prices in the product object.
* Fix - Resolved incorrect subtotals in the single product page when a tax suffix was used.
* Tweak - Removed duplicate filters.

= 6.4.3 - 2023-06-27 =
* Tweak - Important: Updated the 'addon-start' template and added the tax status data attribute.
* Fix - Fixed an issue that made tax suffixes show up in non-taxable products with add-ons.
* Fix - Fixed a PHP warning triggered by a duplication of the 'apply_filters_deprecated' call.
* Fix - Resolved an issue that prevented some of the selected checkbox from being added to the cart when ordering again.
* Fix - Resolved an issue that threw a validation error when renewing a subscription with required add-ons.

= 6.4.2 - 2023-06-21 =
* Fix - Resolved a PHP warning triggered when adding a Bundle/Composite without any container-level add-ons to the block-based cart.

= 6.4.1 - 2023-06-19 =
* Fix - Fixed an issue that prevented add-on totals from updating in Variable Products when a tax suffix was used.
* Fix - Fixed an issue that made add-ons show up twice in the cart when renewing a subscription.

= 6.4.0 - 2023-06-13 =
* Tweak - Important: The price of flat fee add-ons is no longer added to the per unit product price in the cart, but directly to the product total.
* Tweak - Important: The add-on prices in the cart are now displayed next to the selected add-on options, instead of the add-on name.
* Tweak - Important: The 'woocommerce_addons_add_price_to_name' filter is now deprecated. Use 'woocommerce_addons_add_product_price_to_value' or 'woocommerce_addons_add_cart_price_to_value' or 'woocommerce_addons_add_order_price_to_value' instead.
* Tweak - Important: Requires Product Bundles 6.20.0+ and Composite Products 8.9.0+.
* Tweak - The prices of flat fee add-ons are now prefixed with a '+' sign in the cart/order templates to indicate that these prices are not included in the per unit product price.
* Tweak - The prices of quantity/percentage based add-ons are now hidden by default in the cart/order templates, as they are already included in the  per unit product prices. To reveal them, use the 'woocommerce_addons_add_cart_price_to_value' or 'woocommerce_addons_add_order_price_to_value' filter.
* Tweak - Added basic telemetry using Tracks.

= 6.3.2 - 2023-06-01 =
* Fix - Fixed styling for dismissible admin notices.

= 6.3.1 - 2023-05-29 =
* Add - Introduced block theme support on existing frontend templates.
* Fix - Improvements in global styles compatibility.

= 6.3.0 - 2023-05-23 =
* Fix - Important: Security improvements.
* Add - Added admin notice to stores that use a PHP version earlier than 7.0.
* Tweak - Added a notice when addons cannot be saved due to a low 'max_input_vars' value.
* Tweak - Updated the logic that determines in which admin screens, Product Add-Ons styles/scripts are loaded.
* Tweak - Optimized the way global addons are saved.
* Fix - Fixed a fatal error triggered when dividing the addon price by a zero quantity.

= 6.2.0 - 2023-04-11 =
* Add - Important: Bumped minimum required versions.
* Fix - Important: Security improvements.
* Fix - Fixed an issue that prevented long text addons from being validated.

= 6.1.3 - 2023-04-04 =
* Fix - Fixed an issue that prevented addons totals from showing up if required Addons were selected before variations.
* Tweak - Introduced basic telemetry to collect data on extension usage when tracking is enabled.

= 6.1.2 - 2023-03-13 =
* Update - Improved performance when calculating addons totals between validation runs.

= 6.1.1 - 2023-03-02 =
* Fix - Fixed an issue that prevented addon totals from showing up when at least one checkbox or radio button was selected.
* Fix - Display a notice when users fill in a negative value in quantity addons.

= 6.1.0 - 2023-02-22 =
* Add - Important: Updated addons templates and removed addons titles from element attributes.
* Fix - Fixed an issue that disabled addons validation when an addon had non-Latin characters in its title.

= 6.0.4 - 2023-02-17 =
* Fix - Fixed an issue that set 'None' as the default option for required multiple choice addons.

= 6.0.3 - 2023-02-16 =
* Fix - Fixed an issue that hid the product form when a custom tax suffix was used.

= 6.0.2 - 2023-02-16 =
* Fix - Fixed an issue that made users select all options in required checkboxes.

= 6.0.1 - 2023-02-15 =
* Fix - Fixed an issue that prevented addon totals from being updated when the product quantity changed.

= 6.0.0 - 2023-02-14 =
* Update - Important: Updated the single product form validation for required and restricted addons.
* Update - Important: Updated all frontend addon templates.
* Add - Product Add-Ons is now compatible with Product Bundles 6.18.0+.
* Add - Product Add-Ons is now compatible with Composite Products 8.7.0+.
* Fix - Fixed an issue that required users to click away from the addons form in order for addon totals to show up.
* Fix - Fixed an issue that prevented importing addons with descriptions that contained HTML.
* Fix - Added image swatch labels in mobile views.
* Fix - Resolved an issue that cleared the add-ons form when validation failed for multiple image add-ons.
* Fix - Resolved an issue that changed the position of the Add to Cart button when a long text add-on was configured.

= 5.0.3 - 2023-01-04 =
* Feature - Added compatibility with the core WooCommerce Importer/Exporter for importing/exporting product-level addons.

= 5.0.2 - 2022-11-08 =
* Tweak - Introduced compatibility with the new High-Performance Order Storage.
* Fix - Removed unnecessary meta boxes sanitization.
* Fix - Resolved an issue that made addons with identical titles show up multiple times in the cart when re-ordering.

= 5.0.1 - 2022-11-01 =
* Fix - Resolved PHPCS security issues.
* Tweak - Updated numeric addons to be compatible with mobile browsers.
* Tweak - Declared incompatibility with the new High-Performance Order Storage.

= 5.0.0 - 2022-05-25 =
* Fix - Add renovate bot configuration.
* Tweak - WC 6.5 compatibility.
* Tweak - WP 6.0 compatibility.

= 4.9.0 - 2022-04-12 =
* Tweak - WC 6.3.1 compatibility.
* Tweak - WP 5.9 compatibility.

= 4.8.2 - 2022-04-12 =
* Fix - 'woocommerce_price_trim_zeros' sets precision, but doesn't actually trim.
* Fix - Bookings add-on "Multiply cost by person count" can't be unchecked.
* Tweak - WC X compatibility.
* Tweak - WP X compatibility.

= 4.8.1 - 2022-04-05 =
* Fix - Fixed an issue that prevented the Product Addons subtotals from showing up for bundled/composited items.

= 4.8.0 - 2022-04-04 =
* Fix - Fix potential crash with 3rd themes and plugins.
* Fix - Include vendor assets in composer.json.

= 4.7.0 - 2022-02-16 =
* Fix - Hook to toggle the price from add-ons name does not work.
* Fix - Incorrect add-on price according to the location-based tax.
* Fix - Remove duplicate entries from the exclude list in composer.json.
* Fix - Text character limit doesn't show until you start typing in field.
* Fix - The HTML structure for checkboxes and radio buttons is improved.
* Fix - Updated script that reads 'show-incomplete-sub-total' data. Fixes conflict with Composite Products extension.

= 4.6.0 - 2022-02-08 =
* Fix - Add option to show incomplete subtotal.
* Fix - Fix CI build errors.

= 4.5.0 - 2022-01-12 =
* Fix - Fixed an issue where the subtotal price for a variable product was shown incorrectly on a product page.
* Fix - Fixes an issue in the admin panel when adding add ons.
* Tweak - WC 6.1 compatibility.
* Tweak - WP 5.8 compatibility.

= 4.4.0 - 2021-11-16 =
* Fix - Escape output in some places across the plugin.
* Fix - Improve performance when displaying many global product addons.
* Tweak - WC 5.9 compatibility.
* Tweak - WP 5.8 compatibility.

= 4.3.0 - 2021-10-26 =
* Tweak - Add filters to allow for extensibility.

= 4.2.0 - 2021-09-21 =
* Fix - Fix page going off center after submitting an invalid form in some themes.
* Tweak - WC 5.8 compatibility.

= 4.1.0 - 2021-06-15 =
* Fix - Reduce the number of events that trigger an add-on price calculation in the product page.
* Tweak - WC 5.5 compatibility.
* Tweak - WP 5.8 compatibility.

= 4.0.0 - 2021-05-11 =
* Fix - Fix a notice when adding a product with an addon to the cart.
* Tweak - WC 5.3 compatibility.

= 3.9.1 - 2021-04-29 =
* Fix - Fix uncompressed release archive by reintroducing postarchive step.

= 3.9.0 - 2021-04-28 =
* Fix - Move to dart-sass to support M1.
* Fix - Refactor Cart price calculation to prevent conflicts with other plugins.
* Fix - Update build scripts and tooling.

= 3.8.0 - 2021-04-13 =
* Fix - Sort Global Add-ons in the backend by priority.

= 3.7.0 - 2021-04-06 =
* Fix - Honor taxes in Customer Defined Price add-ons when store shows prices including tax.

= 3.6.0 - 2021-03-30 =
* Fix - Prevent negative input on price addons when min restrictions are enabled.
* Fix - Removed support for versions of WC 3.0 and below.
* Fix - Reordering Product Add-Ons with email address should not remove @ characters.
* Fix - Use h2 instead of h3 element for addon headings.
* Fix - Wrap addons in a `wc-pao-addons-container` div.
* Tweak - WC 5.1 compatibility.
* Tweak - WP 5.7 compatibility.

= 3.5.0 - 2021-03-09 =
* Fix - Add Better guards for WC Navigation not being enabled.

= 3.4.1 - 2021-03-03 =
* Fix - Fix products with add-ons not accepting coupons set to exclude sale items.

= 3.4.0 - 2021-02-22 =
* Fix - Improve display of products with add-ons in Cart and Checkout blocks.
* Fix - Prevent products with required addons being added to the cart without options selected.
* Fix - Update node-sass to 4.14.1.

= 3.3.1 - 2021-01-27 =
* Fix - Scroll to required multiple choice add-ons of rabio button type when trying to add to cart a product without choosing the add-on.
* Fix - Product total price will update instantly when writing a number in a quantity add-on.

= 3.3.0 - 2020-12-07 =
* Fix - Fix Checkbox add-on not showing required styles when all are unselected.
* Fix - Fix addon start template in WooCommerce versions prior to 3.0.
* Fix - Remove usage of jQuery :last selector.

= 3.2.0 - 2020-11-25 =
* Fix - Add plugin page to new WooCommerce Navigation.
* Tweak - WC 4.7 compatibility.
* Tweak - WP 5.6 compatibility.

= 3.1.1 - 2020-11-14 =
* Fix - Calculate the selected addons subtotal, even if the date for a bookable product hasn't been chosen yet.
* Fix - Change field name upon selection when there is a description.

= 3.1.0 - 2020-09-29 =
* Fix - Sanitize data when importing product addons.
* Fix - Include quantity in calculation for customer defined price fields.
* Tweak - Change quantity string for RTL languages.
* Tweak - WC 4.5 compatibility.
* Tweak - WP 5.5 compatibility.

= 3.0.35 - 2020-06-23 =
* Fix - Update API.

= 3.0.34 - 2020-06-10 =
* Fix - Prevent PHP notice on cart when _product_type is empty.
* Tweak - WC 4.2 compatibility.

= 3.0.33 - 2020-05-12 =
* Fix - All Products for WooCommerce Subscriptions: Reset subscription details in add-ons total when reverting to the one-time purchase option.
* Tweak - Improve error handling on filesize limits.

= 3.0.32 - 2020-04-30 =
* Tweak - WC 4.1 compatibility.

= 3.0.31 - 2020-04-17 =
* Fix - Fix issue on cart file add-on.

= 3.0.30 - 2020-04-14 =
* Fix - Readd addon file when ordering again.

= 3.0.29 - 2020-04-08 =
* Fix - Wrap price strings with amount class to allow for dynamic currency conversions.
* Tweak - WP 5.4 compatibility.

= 3.0.28 - 2020-03-29 =
* Fix - Only show addon description if enabled.

= 3.0.27 - 2020-03-17 =
* Fix - Double label for quantity input multiplier.

= 3.0.26 - 2020-03-11 =
* Fix - Always use quantity based pricing for customer defined price field.
* Tweak - Remove legacy code.
* Fix - Fatal error when a product does not exist in the display (e.g. compat plugin creating products on runtime).

= 3.0.25 - 2020-03-04 =
* Fix - Fix accessibility warnings for addon input labels.
* Tweak - WC 4.0 compatibility.

= 3.0.24 - 2020-02-14 =
* Fix - Minified missing JS file.

= 3.0.23 - 2020-02-12 =
* Fix - Unescaped HTML on the frontend.

= 3.0.22 - 2020-02-12 =
* Fix - Display addons prices excluding tax when a user is tax exempt.
* Fix - Allow prices to be displayed correctly when using a price display suffix.
* Fix - Show addon totals when multiplying by a time duration.

= 3.0.21 - 2020-01-14 =
* Fix - Don't clear data on Add To Cart when required un-checked checkbox is in the product page.
* Fix - Set character set when decoding entities.
* Tweak - WC 3.9 compatibility.

= 3.0.20 - 2019-11-12 =
* Fix - Bug calculating taxes on orders with percentage-based addons.

= 3.0.19 - 2019-11-04 =
* Tweak - WC 3.8 compatibility.

= 3.0.18 - 2019-10-30 =
* Fix - Short Text field validation with value 0

= 3.0.17 - 2019-10-15 =
* Fix - Display of prices when using WooCommerce Bookings Accommodations.

= 3.0.16 - 2019-09-24 =
* Fix - Image swatch double tap required on iOS.

= 3.0.15 - 2019-08-28 =
* Fix - Legacy Order data triggers fatal error.

= 3.0.14 - 2019-08-08 =
* Tweak - Add compatibility with All Products For Subscriptions.
* Tweak - WC 3.7 compatibility.

= 3.0.13 - 2019-07-10 =
* Tweak - Addon setting name from "Name Your Price" to "Customer Defined Price".

= 3.0.12 - 2019-07-02 =
* Fix - Wrong "Subtotal" when "None" option is selected.

= 3.0.11 - 2019-04-16 =
* Tweak - WC 3.6 compatibility.

= 3.0.10 - 2019-03-08 =
* Fix - PHP 7.3 compatibility warnings.

= 3.0.9 - 2019-02-27 =
* Fix - When paired with variable subscriptions, subtotal suffix label not displaying correct duration.
* Fix - Product title showing undefined in add-ons list with certain themes.

= 3.0.8 - 2019-02-06 =
* Fix - Quantity and flat fee cost calculation regression.

= 3.0.7 - 2019-02-04 =
* Fix - Missing minified javascript files.

= 3.0.6 - 2019-02-01 =
* Fix - Quantity based price calculations were being performed on flat fee addons.
* Fix - Subtotals were hidden on non-bookable products if the bookings addon was active when selecting addons.

= 3.0.5 - 2018-12-11 =
* Fix - Decode currency character correctly to support all WooCommerce currencies.
* Fix - Product page displaying incorrect price for per-person and per-block addons with WooCommerce Bookings.
* Fix - Handle option descriptions with value '0'.
* Fix - Numeric option descriptions are displaying incorrectly.
* Fix - Price update pushes "Add to Cart" button out of the way.

= 3.0.4 - 2018-11-21 =
* Fix - Ensure prices are displayed correctly on the frontend when using a comma as decimal separator.

= 3.0.3 - 2018-11-12 =
* Fix - Currencies with comma separator not saving.
* Fix - Revert per line item level add-ons.

= 3.0.2 - 2018-11-07 =
* Selective testing.

= 3.0.1 - 2018-10-29 =
* Fix - Admin settings display sometimes not refreshed to new 3.0 version. Add versioning to CSS.
* Fix - Non required radio buttons causes undefined error when selecting on None.
* Fix - Remove file upload path from displaying on line item summary.
* Fix - When show tax inclusive on shop/pages is enabled, summary amount not reflecting tax.
* Fix - When saving price type settings, the type gets reverted to previous settings in certain cases.

= 3.0.0 - 2018-10-23 =
* Add - Flat fee based pricing.
* Add - Percentage based pricing.
* Add - Image swatches.
* Add - Display add-ons as line items.
* Fix - Plugin prefix has been added to meta data so its identifyable.
* Fix - Cannot edit product if default label is empty.
* Add - Error handling on filesize limits.

= 2.9.7 - 2018-09-26 =
* Update - WC 3.5 compatibility.

= 2.9.6 - 2018-05-23 =
* Update - WC 3.4 compatibility.

= 2.9.5 - 2018-05-15 =
* Fix - Use proper conditional for trim trailing zeroes on precision.

= 2.9.4 - 2018-05-11 =
* Revert - Labels should be required in 2.9.3.

= 2.9.3 - 2018-05-02 =
* Fix - No respect for the price_trim_zeros filter.
* Fix - Cannot remove labels prior to saving changes.
* Fix - Labels should be required.

= 2.9.2 - 2018-03-05 =
* Update - POT file.
* Fix - Display issue when subscription and simple products are combined in shortcodes.
* Fix - Add-ons with negative price (or discounts) do not alter price.
* Fix - PHP 7.1 compatibility notice
* Fix - Line Breaks of a Custom Input add-on not shown in the order details page.

= 2.9.1 - 2017-12-12 =
* Fix - When re-ordering, not all addons accounted for.
* Fix - Do not show addon totals before variations have been selected.
* Fix - When removing old global addons after import, all addons disappears.
* Fix - Taxes not calculating correct on display when using {price_including_tax} in price suffix.
* Update - Changed default Grand Total verbiage to Sub total for a more accurate description.
* Update - WC tested up to version.

= 2.9.0 - 2017-07-13 =
* Fix - Further updates for WooCommerce 3.0 compatibility.
* Fix - Minor code cleanup (unused variable, PHPDocs).
* Fix - Variable products with required custom textarea not able to add to cart.
* Fix - Prevent global addon fields not saving when no name is entered.
* Fix - Issue resetting global product.
* Fix - Don't make custom price input required when not set.
* Add - new REST API endpoints for managing global and product addons
* Fix - Fatal error when combined with the Memberships extension.
* Fix - When grouped product contains simple and subscription product amount suffix shown incorrectly.
* Fix - Re-order addons were not being added.
* Fix - Notices when product object not found.
* Fix - Prevent filtering prices twice due to context issue.
* Fix - Inline VAT/TAX pricing not updating correctly on product page on addon grand total.
* Add - Added the new Woo plugin header, for WooCommerce 3.1 compatibility.
* Add - Compatibility with Smart Coupons Credit/gift coupon.

= 2.8.1 - 2017-04-03 =
* Fix - Update for WooCommerce 3.0 compatibility.

= 2.8.0 - 2017-02-23 =
* Fix - When re-adding items to cart, similar named addons is missing.

= 2.7.26 - 2016-12-09 =
* Fix - Issue where required fields are failing to add to the cart using the order again option.
* Fix - Issue product add-ons are not being re-added when paying for pending or failed renewal orders.
* Fix - Update deprecated API of WooCommerce being used this extension.

= 2.7.25 - 2016-10-26 =
* Fix - Text field type addon is not accounting for multibyte characters.

= 2.7.24 - 2016-09-29 =
* Fix - Undefined error when variation data is not found.
* Fix - Product totals not updated instantly when clicking up and down number input.
* Fix - In Safari browser, validation not working when minimum set to 0.

= 2.7.23 - 2016-09-06 =
* Fix - Addon totals were displayed on top of options due to last version.

= 2.7.22 - 2016-08-10 =
* Tweak - Relocate addon fields to be after the variation description.

= 2.7.21 - 2016-07-16 =
* Fix - Tax inclusive display is not showing on addons in cart/checkout.

= 2.7.20 - 2016-07-07 =
* Tweak - Load frontend CSS with wp_enqueue_script hook instead of get_header

= 2.7.19 - 2016-06-14 =
* Fix - Product addons not applying to grouped products when using global addons.

= 2.7.18 - 2016-05-26 =
* Tweak - Adjusts the 'Product Data' icon to use Dashicons
* Fix - Ensure compatibility with bookings where the price was not affected by the cost multiplier.

= 2.7.17 - 2016-04-04 =
* Fix - Options total/grand total does not work with "Free" product.
* Fix - Missing minified quickview.js.

= 2.7.16 - 2016-03-20 =
* Fix - When fields are not required and left empty, prevented add to cart from working.
* Fix - Compatibility with Subscriptions title when addon is present.
* Tweak - Compatibility with Composite Products.
* Tweak - Clear addon fields when clear variations link is clicked.
* Tweak - Using custom multiplier if zero is entered, don't show addons in cart.
* Update - POT file.
* Remove - accounting.js file in favor of using the one that comes with WC core.

= 2.7.15 - 2016-01-26 =
* Tweak - Show the price display suffix on the grand total.

= 2.7.14 - 2016-01-14 =
* Fix - WooCommerce 2.5 compatibility.
* Fix - Made the 'required' tooltip translatable.

= 2.7.13 - 2015-11-24 =
* Fix - Compatibility fix for WooCommerce Photography. The "select options" button should now lead to the correct screen when using WC Photography 1.0.6.
* i18n / translation updates

= 2.7.12 - 2015-11-06 =
* Fix - Compatibility fix for WooCommerce Photography. Users can no longer add photography products to cart without filling any required add-on fields.
* Fix - The "default label" place holder now clears when you click into it.
* Fix - Fix toggle display on "global add-ons" page.
* Fix - Compatibility fix for WooCommerce Quick View. Prices with variations now quickly display the correct grand total on single product pages.

= 2.7.11 - 2015-09-29 =
* Limit input element names in HTML to less than 64 characters to avoid issues on some hosts

= 2.7.10 - 2015-08-20 =
* Automatically add a default option when a new add-on group is added to a product
* Prevent merchant from removing all options in a given add-on group
* Add custom email as an add-on field option
* Add custom letters only text, digits only text and letters and digits only text as add-on field options
* Add subscription period to add-on prices and totals for simple subscriptions too (not just those with variations)

= 2.7.9 - 2015-07-29 =
* Fix - 2.4 compatibility.
* Tweak - Improved bundles/composite compatibility.
* Tweak - Don't auto select radio buttons.
* Tweak - add filter woocommerce_product_addons_validate_value

= 2.7.8 - 2015-07-04 =
* Fix - Using the POST data to get the product ID caused issues with 3rd party plugins. The issue around grouped products this was added to fix needs to be tackled by a different approach. In this case we decided to..
* Tweak - Make children products inherit addons from the parent (e.g the grouped product parent).
* Tweak - Don't allow addons with required fields to be purchased from grouped product pages.

= 2.7.7 - 2015-07-03 =
* Fix - Compatibility with OPC and other plugins which change the add to cart process.

= 2.7.6 - 2015-06-28 =
* Fix - Only add file upload cost if a file was actually uploaded .

= 2.7.5 - 2015-06-19 =
* Fix - Link product-level add-ons to grouped products when adding to cart
* Fix - Use the correct ID for validation
* Tweak - Allow plugins to hide grand total.

= 2.7.4 - 2015-05-27 =
* Bookings compatibility.

= 2.7.3 - 2015-03-13 =
* Fix duplicates when ordering again.

= 2.7.2 - 2015-03-02 =
* Fix woocommerce_order_item_display_meta_value
* Fix totals calc when currency contains decimal.

= 2.7.1 - 2015-02-24 =
* Filter upload dir
* Upload attachments linked in the notification emails

= 2.7.0 - 2015-01-27 =
* Renamed main file.
* Make addons script hookable.
* Added WC 2.3.0 compatibility.

= 2.6.11 - 2014-12-18 =
* Reverted previous change

= 2.6.10 - 2014-12-12 =
* Fixed unwanted capitalization on attribute label in order item details of thank you page.

= 2.6.9 - 2014-12-02 =
* Fixed the checkbox add-ons when using re-order action.
* Fixed the file upload path on order confirmation page and order review page.

= 2.6.8 - 2014-11-28 =
* Added hooks to allow Global Add-ons for custom taxonomies.
* Added compressed assets.

= 2.6.7 - 2014-09-01 =
* Fix notices when ordering again.
* Hooks for WPML.

= 2.6.6 - 2014-07-21 =
* input multiplier - Set default value to avoid "This must be a number!".
* Added POT file.
* wc_format_decimal needs to be used on save.
* Correct display after saving global addon.

= 2.6.5 - 2014-06-30 =
* Fixed notices when re-adding item to cart.

= 2.6.4 - 2014-06-09 =
* Fixed undefined variable.
* Fixed frontend option with zero price.
* Fixed undefined variable when custom textarea used.

= 2.6.3 - 2014-05-29 =
* Implemented wc_input_price field for addon costs
* Show addon prices inc/ex tax based on shop settings.
* Additional filters.

= 2.6.2 - 2014-05-21 =
* Fix text domains

= 2.6.1 - 2014-05-02 =
* Fix closing label tags

= 2.6.0 - 2014-04-22 =
* Extra filters for wider plugin compatibility
* Bookings support
* Class refactor
* Impoved 'order again' code
* Updated textdomain
* Fix conflict with quick view

= 2.5.6 - 2014-03-21 =
* Fix upload dir when "subdir" is not set.

= 2.5.5 - 2014-02-23 =
* Fix cart button text for required addons in 2.1

= 2.5.4 - 2014-02-20 =
* Styling fixes

= 2.5.3 - 2014-01-16 =
* 2.1 compat

= 2.5.2 - 2013-12-06 =
* Check for subscription product type for add to cart urls

= 2.5.1 - 2013-12-06 =
* Increased add_to_cart_text hook priority so that it applies to subscriptions too

= 2.5.0 - 2013-12-02 =
* Removed legacy support
* Order again - restore addons

= 2.4.5 - 2013-10-10 =
* Allow zero value for custom text inputs

= 2.4.4 - 2013-10-10 =
* Only set addons to array when not set already

= 2.4.3 - 2013-10-10 =
* Added min attribute when min is 0

= 2.4.2 - 2013-10-10 =
* Prevent negative multiplier

= 2.4.1 - 2013-10-10 =
* get_product_addons filter

= 2.4.0 - 2013-09-16 =
* New custom input multipler field type which multiples an input value by the price. Thanks Andrew Beeken.

= 2.3.0 - 2013-09-08 =
* Exclude products from Global Addons option

= 2.2.0 - 2013-08-22 =
* Various tweaks to support composite products

= 2.1.3 - 2013-07-31 =
* Corrected product type checking
* Unique class per addon

= 2.1.2 - 2013-07-23 =
* Better compatibility with quick view

= 2.1.0 - 2013-07-18 =
* Allow HTML in the addon descriptions
* Improved sanitization of posted options

= 2.0.9 - 2013-06-28 =
* Global addons - include_children false so sibling category addons are not found.

= 2.0.8 - 2013-06-27 =
* Rename addon totals string

= 2.0.7 - 2013-06-07 =
* Change event on page load to show totals if needed
* Currency converter compatibility

= 2.0.6 - 2013-06-07 =
* Labels are optional
* Select first radio element by default

= 2.0.5 - 2013-06-07 =
* Variable product support when variations all cost the same

= 2.0.4 - 2013-06-07 =
* Variable product support

= 2.0.3 - 2013-06-03 =
* Fix global import

= 2.0.2 - 2013-05-31 =
* get_woocommerce_price_format fallback
* Stripslashes fix

= 2.0.1 - 2013-05-29 =
* Fix escaping of user defined data

= 2.0.0 - 2013-02-01 =
* Complete rewrite for WooCommerce 2.0 with new interface.
* Global forms which can be applied to any product.
* Custom price inputs.
* More hooks for extending the plugin.
* Template based overrides for fields.
* Dynamic total cost display
* Removed upload size filter for the benefit of WP MU
* When required, select box default is "Select an option" rather than "None"
* Add to cart button on archives links to product page for products with required add ons
* Removed colon for text fields when label is empty
* required-product-addon class on wrapper div for required fields
* Add option to provide id for product_addons function

= 1.2.0 - 2013-02-09 =
* WC 2.0 Compat

= 1.1.1 - 2012-12-04 =
* New updater

= 1.1 - 2012-01-26 =
* Required fields
* Textarea field type
* File upload field type
* Import/export forms between products
* Validation hook - woocommerce_validate_posted_addon_data

= 1.0.2 - 2012-01-26 =
* Small plugin header update
* Strip tags from prices/meta

= 1.0.1 - 2011-12-01 =
* Woo Updater
* Hook change

= 1.0 - 2011-11-17 =
* First Release
