WooCommerce Product Add-on Forms

Need  to allow customers to define product add-ons?

WooCommerce Product Add-on Forms is a powerful form builder that lets you quickly create diverse forms that can be attached to any product. When a customer views the product they see your form above the Add to Cart button. So you can easily collect additional information from a customer when they buy your products.

Forms can contain any number of fields, including text input boxes, dropdown select lists, radio buttons, checkboxes, image select lists, swatch select lists, currency, passwords, dates, times, URLs, file uploads, color pickers, numeric fields, rich text editor fields, and more. And you can group your form fields into sections if you need to. Plus, any field can be set to be required or optional. If a field is required customers must enter data into the field before they can add the item to their cart.

You can also optionally assign a price to any field or field options. The price gets added to or subtracted from the base price of the product depending on how you define the price. For example, maybe you need to add a group of radio buttons to a product page. If you need to charge an extra amount if the user selects one of the radio buttons you can set the same price for each radio button option or set a different price for each radio button option. The same holds true for dropdown lists and checkboxes, etc.  Price can be a flat fee to be added such as 10.25, or a flat fee to be subtracted such as -4.25, or it can be a percentage such as 10% added to the base cost of the product, or a negative percentage such as -10% subtracted from the base cost of the product, or it can be a multiplier such as 2x. Percentages and multipliers are calculated against the base cost of the product.

You can also conditionally display fields using simple form conditional logic rules. So for example, maybe you have a form that contains a checkbox and a text box, but you don’t want the text box to appear unless the customer checks the checkbox. No problem – you can do that easily. Conditional logic can be applied to any form field, or an entire section of fields.

It’s a great way to gather information for notes, engraving, monogramming, gift messages, and just about any type of information you’d like to collect from a customer when they buy your products.

When using forms in a product page all the form data is stored with the customer’s order so you can easily review the data by simply viewing the order in the admin area of your site. And the customer sees the data they provide in their order receipt and when viewing their order in your site’s My Account page.

Here’s what the form building looks like, as you can see in the screenshot the field types are on the left, and the form itself is on the right. In this example we’ve added two fields, a checkbox field and a radio button field.

WooCommerce Product Add-on Form Example
WooCommerce Product Add-on Form Example


Adding new fields is a breeze, just click the field type to add it to the form, or drag a field onto the form. You can re-order the fields with simple drag and drop too. To edit a field just click the down arrow on the right side of the field box to expand the box, then you can edit the settings.

The CSS for the forms is entirely customizable, so you can adjust it to suit your needs without losing your changes when you update the plugin.

This plugin works with our Tiered Pricing plugin too.

Comes with great support via email and phone!

Questions? Use the Contact Us page or call us. Yes, we really do answer the phone during normal business hours.

Compatibility: WooCommerce 3.0 and newer

Current version: 3.2.7



We keep all of our software up to date with the latest versions of WooCommerce and WordPress.

If you don't see any recent changes below it's because none have become necessary!

Version 3.2.7 - January 17, 2023

	Update conditional logic to work for hiding/showing entire fieldset groups fieldsets. Note that in this case conditional logic must be applied to all fields within the fieldset.

Version 3.2.6 - February 15, 2022

	Remove nestedSortable() and use regular sortable() instead
	Force all fields to be a "$field->field_level = 0" to remove nested view
	WooCommerce 6.x compatibility 
	WordPress 5.9 compatibility

Version 3.2.5 - May 11, 2020

	Updated JS for image select fields to handle selection highlighthing for forms with multiple image selects 
	Added "maxlength" setting for text and textarea fields

Version 3.2.4 - January 15, 2020

	Adjusted "label" processing used when bulk adding "Select" options

Version 3.2.3 - July 22, 2019

	Adjusted actions for mini-cart cart totals compatibility

Version 3.2.2 - July 20, 2019

	Adjusted code for calculating add-on prices when using IgniteWoo's Dynamic Discounts and Wholesale Pro Suite quantity discounts
	Adjusted code for calculating grand total with add-on prices when using IgniteWoo's Dynamic Discounts and Wholesale Pro Suite quantity discounts

Version 3.2.1 - July 19, 2019

	Correct a Javascript issue with the "Add Option" buttons, inadvertantly introduced in v3.2
	Added support for IgniteWoo's Dynamic Discounts and Wholesale Pro Suite quantity discounts

Version 3.2 - July 18, 2019

	Added new field type "Image select" - can be used for swatches, patterns, etc

Version 3.1 - July 16, 2019

	Updated conditional logic Javascript
	Ensure add-on totals wrapper is 100% width
	Added support for assigned forms to product categories 
	Added support for giving forms a priority, useful when assigning forms to product categories 

Version 3.0.8 - April 30, 2019

	Updated getting price from IgniteWoo's Wholesale Pro Suite in relation to wholesale/tier buyers that have a global or category discount
Version 3.0.7 - January 30, 2019

	Added support for IgniteWoo's Wholesale Pro Suite

Version 3.0.6 - May 10, 2018

	Added 12 column grid support via numeric column layouts. Useful for making mobile-enabled form layouts.

Version 3.0.5 - May 1, 2018

	Do not format an empty price

Version 3.0.4 - April 30, 2018

	Ensure add-ons do not show a price of $0.00 if no price is set (price is empty) for the option
	Format prices on the product page

Version 3.0.3 - April 17, 2018

	Change the field prices data type in the database to "text" to match field options

Version 3.0.2 - February 23, 2018

	Fixed broken menu link

Version 3.0.1 - January 31, 2018

	Fixed dragging fields into the layout 

Version 3.0 - October 11, 2017

	Switched to symantec versioning for the plugin version

	Replaced deprecated function names for use with WooCommerce 3.x
	Altered product property access to avoid warning messages
	Ensure negative price adjustments appear in the cart item meta data display
Version 2.1.28 - September 24, 2015

	Updated validation script to eliminate default value assignment in function definition - cross browser support

Version 2.1.27 - September 3, 2015

	Updated Javascript for conditional logic

Version 2.1.26 - April 23, 2015

	Adjusted class variable declarations for changes in PHP 5.x
	Ensure list of countries is loaded when needed
	Adjust hook priority for woocommerce_get_item_data

Version 2.1.25 - March 9, 2015

	Removed use of Chosen javascript library when selecting forms while editing a product

Version 2.1.24 September 4, 2014

	Updated "Add-on Totals" element display for variation price processing no add-ons are selected or no prices are associated with selections

Version 2.1.23 September 4, 2014

	Removed unnecessary table query
	Adjust $data variable checking for input validation in case $data contains an array and not a string
	Narrowed drag wrapper and add drag icon
	Adjusted bulk addition of value to leave associated price field blank
	Fixed default selection for dropdown lists
	Adjusted condition field logic for field inside a section that are not required

Version 2.1.22 August 12, 2014

	Change bulk add ajax hook name

Version 2.1.21 July 18, 2014

	Updated colorpicker JS code to use the WP Colorpicker

Version 2.1.20 May 1, 2014

	Updated to support IgniteWoo's Tiered Pricing plugin

Version 2.1.19 - May 1, 2014

	Tweak: Don't queue ajax call if no form fields have a price or no add-on total field is present

Version 2.1.18 - April 7, 2014

	Changed default setting inputs for checkbox fields - you can now make a checkbox selected by default
	Fixed default setting for radio button fields - if a default option is selected it will appear selected on the product page
	Fixed calculations for hidden fields nested inside form sections

Version 2.1.17 - April 2, 2014

	Updated conditional rule processing to not require fields that are hidden
	Updated conditional rule processing to not add costs for fields that are hidden
	Added cache busting for products that have forms attached

Version 2.1.16 - March 31, 2014

	Removed "chosen" selector from product form selector field

Version 2.1.15 - March 27, 2014

	Modified selector for conditional field display

Version 2.1.14 - March 19, 2014

	Fixed an issue within the conditional logic Javascript code

Version 2.1.13 - March 16, 2014

	Added check for required fields in forms. If there are required field Add to Cart button and URL are changed
	Moved the display of Addon Total and Grand Total for variable products

Version 2.1.12 - March 13, 2014

	Added the ability to have negative percentage cost offsets
Version 2.1.11 - March 13, 2014

	Added the ability to have negative integer cost offsets

Version 2.1.10 - March 12, 2014

	Added the ability for a field cost to be a percentage increase or a multiplier increase
	Optimized the JS for the total field calculation

Version 2.1.9 - February 20, 2014

	Streamlined ajax call for calculating add-on totals

Version 2.1.8 - February 19, 2014

	Tweaked field output to show prices on product page
	Added new optional Add-on Total field to display add-on total costs
	Add Javascript to update total in the new Add-on Totals fields

Version 2.1.7 - February 10, 2014

	Tweaked plugin url to support sites that use SSL in the WordPress admin area

Version 2.1.6 - February 7, 2014

	Tweaked form editor page name slug

Version 2.1.5 - February 7, 2014

	Tweaked form assignment processing on product edit pages

Version 2.1.4 - February 7, 2014

	Tweaked menu permissions for WooCommerce 2.0.x
	WooCommerce 2.1 compatibility

Version 2.1.3 - February 7, 2014

	Tweaked table creation vars

Version 2.1.2 - February 7, 2014

	Tweaked "trim" function calls

Version 2.1.1 - February 6, 2014

	Tweaked "trim" function calls

Version 2.1 - February 5, 2014

	Initial public release

Version 2.0 - February 1, 2014

	Private testing

Ask a Question:


From: 39.00 / year

A powerful form builder that lets you quickly create forms that can be added to any product page.

All of our plugins come with great support via email and phone.

Subscription options

A subscription entitles you to 1 year of updates and support. Each individual web site requires a license key, so choose the right license for your needs.