How to add custom product options in WooCommerce
By Raz Technologies · published · data updated
Short answer (data as of ): install a product add-ons plugin, which adds priced option fields to the product page and carries the choices into the cart and order, or add a text field with four WooCommerce hooks (below) if you only need one simple field. See our product add-ons plugin ranking for the full comparison.
The problem
Stores selling personalised or made-to-order products need more than WooCommerce variations: an engraving text, a gift-wrap checkbox that adds a fee, an uploaded logo, a delivery date. WooCommerce has no built-in way to add such fields to a product page.
Option 1: a product add-ons plugin (no code)
These are the highest-ranked product add-ons plugins we track. Each lets the store add several field types and charge for options. The column shows whether priced options are documented in the free or the paid version.
| Plugin | Rank | Feature in | Checkout Blocks | Installs |
|---|---|---|---|---|
| Extra Product Options | #1 | Paid version | Yes | 30,000+ |
| Extra Product Options & Add-Ons | #2 | Paid version | Not declared | No data |
| Simple Product Options | #3 | Free version | Not declared | 3,000+ |
| Extra Product Options | #4 | Free version | Yes | 600+ |
| Advanced Product Fields | #5 | Free version | Not declared | 50,000+ |
| Flexible Product Fields | #6 | Paid version | Not declared | 10,000+ |
Need customers to upload artwork or photos? Not every plugin supports uploads, and some only in the paid version:
| Plugin | Rank | Feature in | Checkout Blocks | Installs |
|---|---|---|---|---|
| Extra Product Options | #1 | Paid version | Yes | 30,000+ |
| Extra Product Options & Add-Ons | #2 | Paid version | Not declared | No data |
| Extra Product Options | #4 | Paid version | Yes | 600+ |
| Advanced Product Fields | #5 | Paid version | Not declared | 50,000+ |
| Flexible Product Fields | #6 | Paid version | Not declared | 10,000+ |
| Product Addons | #7 | Paid version | Not declared | 30,000+ |
Option 2: one text field in code (for developers)
For a single free-text field (for example an engraving line), four hooks are enough: show the field, store it with the cart item, display it in the cart, and save it to the order. Add it to a small custom plugin.
add_action( 'woocommerce_before_add_to_cart_button', function () {
echo '<p><label for="engraving">Engraving text</label> <input type="text" id="engraving" name="engraving" maxlength="40"></p>';
} );
add_filter( 'woocommerce_add_cart_item_data', function ( $data ) {
if ( ! empty( $_POST['engraving'] ) ) {
$data['engraving'] = sanitize_text_field( wp_unslash( $_POST['engraving'] ) );
}
return $data;
} );
add_filter( 'woocommerce_get_item_data', function ( $item_data, $cart_item ) {
if ( isset( $cart_item['engraving'] ) ) {
$item_data[] = array( 'key' => 'Engraving', 'value' => $cart_item['engraving'] );
}
return $item_data;
}, 10, 2 );
add_action( 'woocommerce_checkout_create_order_line_item', function ( $item, $key, $values ) {
if ( isset( $values['engraving'] ) ) {
$item->add_meta_data( 'Engraving', $values['engraving'] );
}
}, 10, 3 );Charging for the option, conditional fields or uploads is where a plugin earns its place: pricing has to be recalculated server-side in the cart, not only shown on the product page.
Other plugins people ask about
- Advanced Product Fields ranks #5 of 18 in our product add-ons ranking as of 2 November 2026 (score 70.3/100). Its strongest scores are momentum (download growth) and performance (our lab); its weakest are security (vulnerability history) and adoption (active installs).
- Flexible Product Fields ranks #6 of 18 in our product add-ons ranking as of 2 November 2026 (score 68.6/100). Its strongest scores are security (vulnerability history) and satisfaction (ratings); its weakest are momentum (download growth) and adoption (active installs).
FAQ
How do I add custom product options and extra fields in WooCommerce?
Install a product add-ons plugin, which adds priced option fields to the product page and carries the choices into the cart and order, or add a text field with four WooCommerce hooks (below) if you only need one simple field. As of 2 November 2026, the top-ranked plugin in our product add-ons ranking is Extra Product Options For WooCommerce | Custom Product Addons and Fields (80.1/100).
Can I do this with WooCommerce variations instead?
Only for choices that change the product itself and need their own stock or SKU (size, colour). Variations cannot collect free text, uploads or dates, and every combination becomes a separate variation. Add-on fields avoid that: one product, any number of options, each with its own price.
Do product add-on plugins work with the block cart and checkout?
Check before you install. Of the 20 product add-ons plugins we track, 3 declare Cart & Checkout Blocks compatibility in their code (as of 8 November 2026).
Which plugins let options add a price in the free version?
Several do: the “Feature in” column below shows whether priced options are documented in the free or the paid version. The full ranking has a “Best free” list once enough plugins qualify.
