WooCommerce – Gravity Forms Product Add-Ons – Version –...

2026.08.25 – version 3.8.2
* Fix: On themes that add products to the cart via AJAX, a single click of Add to Cart could add a quantity of 2. Affected products used any attached form, including forms with no pricing fields. These themes (BeTheme is one, when WooCommerce’s “Enable AJAX add to cart buttons on archives” setting is on) take over the Add to Cart button, serialise the whole form with FormData and post it to admin-ajax.php as a woocommerce_add_to_cart request. FormData omits submit buttons but includes hidden inputs, so the hidden “add-to-cart” field we add to the form travelled with that request – and WooCommerce then added the product twice from the one request, once through its form handler (which runs on any request carrying an add-to-cart value) and once through its AJAX handler. WooCommerce’s own templates already carry that value on every purchasable product type – on the submit button for simple products, and on WooCommerce’s own hidden input for variable and grouped ones – so our copy was redundant on a normal product page. It is only needed on the pages of a multi-page form, where we remove the submit button and move between pages by submitting the form in the background. It is now emitted only in that case, so the AJAX request no longer triggers the second add.
2026.08.22 – version 3.8.1
* Fix: Products could be added to the cart at $0.00 when a Gravity Forms Product field was shown or hidden by a third-party conditional logic add-on (such as MCG Advanced Conditional Logic). When rebuilding a cart line item we evaluate the form’s conditional logic to decide which product fields count toward the price, but that evaluation did not run Gravity Forms’ gform_rule_pre_evaluation filter. Add-ons that express their rules through that filter had them left unprocessed, so a product field that was actually visible was treated as hidden and dropped from the price calculation, leaving the line item at $0.00. Conditional logic is now evaluated through Gravity Forms’ documented extension points (gform_rule_pre_evaluation and gform_rule_source_value), so these add-ons behave the same way on the product page and in the cart.
* Fix: Conditional logic rules using “greater than” or “less than” against a currency-formatted value were compared as text instead of as numbers, so a rule such as “greater than 1000” did not match a value of 1,234.00. Numeric comparisons now normalise the value first, matching Gravity Forms.
* Refactor: product settings are now defined in one place, replacing duplicated declarations across the save and read paths.
* Refactor: cart item meta rows are now built by a single component, extracted from the cart class.
* Refactor: stock quantity handling now shares the plugin’s single conditional logic evaluator rather than a second copy of it.
* Add: attached form IDs are mirrored to indexed meta so products using a given form can be queried directly.