Code

Discussion on Extra Product Options & Add-Ons for WooCommerce

Discussion on Extra Product Options & Add-Ons for WooCommerce

Cart 36,333 sales
Recently Updated

ThemeComplete supports this item

Supported

This author's response time can be up to 2 business days.

10130 comments found.

Any plans for API support?

Hi! We’re building a headless WooCommerce frontend (Next.js) that’s completely separate from WordPress. Our main challenges:

1. GET Form Definitions via REST API
We need to fetch EPO form structure for a product (fields, choices, prices, formulas, conditional logic) to render the forms in our React frontend. Currently we had to build our own endpoint using
THEMECOMPLETE_EPO()->get_product_tm_epos().
2. POST Cart Items with EPO Data via REST API
When adding to cart, we need to submit EPO selections through REST API (not WooCommerce session-based). The native WC Store API doesn't handle EPO data.
3. Validation Endpoint
An endpoint to validate EPO selections server-side before adding to cart (required fields, min/max, conditional requirements).
4. Webhooks for Form Changes
When a Global Form is created/updated/deleted, trigger a webhook so we can invalidate our cache.
The biggest gap is that TM EPO is tightly coupled to WooCommerce's PHP rendering. For headless/decoupled architectures (React, Vue, mobile apps), we need a way to:
- Read form definitions as JSON
- Submit selections via HTTP POST
- Receive validation errors as JSON
Would love to see official REST API support for these use cases

Thanks for the detailed explanation — this is a great write-up and you’re absolutely right that headless / decoupled frontends introduce a very different set of requirements.

At the moment, the plugin is primarily designed to work within WooCommerce’s standard PHP rendering and request lifecycle. Because of this, features like form rendering, validation, and cart integration are currently tightly coupled to WooCommerce pages and sessions.

That said, we do understand the growing interest in headless architectures (React, Next.js, mobile apps, etc.), and the use cases you described — exposing form definitions as structured data, submitting selections via HTTP, and receiving validation results as JSON — make a lot of sense in that context.

While we don’t currently offer an official REST API specifically for EPO form definitions or validation, your feedback is very valuable and helps inform future development decisions. For now, advanced headless implementations generally require custom integration layers on the WordPress side, as you’ve already discovered.

We’ll keep this discussion in mind as headless WooCommerce continues to evolve, and we appreciate you taking the time to clearly outline your needs.

Thank you very much :) I hope there are more people interested in the API, so it’s worth doing it.

My shop has 5 items: four individual items and one bundle containing everything. I would like a customer to receive a 10% discount on all subsequent orders after purchasing this bundle once. This means that buying the bundle should automatically place them in a specific customer group that receives the 10% discount on all purchases.

Is this possible here?

No, I’m afraid this is completely outside the scope of what the plugin is designed to handle.

I need my code deactivated from previous domain to use on a new one.

You can now reactivate the code.

Hello, I’m using Radio buttons to create product options with Image Swatches(or Text swatches). I’d like to reduce the spacing between two option boxes so they appear closer together and more compact. Could you please let me know how to adjust this spacing? Thank you.

The only way to do this is if you use custom CSS, there isn’t any other way to adjust display properties like that.

I have a formula which references fixed number lookups from ACF fields and works great!

if({field.6966463d477102.65048947.text} "Yes",[acf field="install_cost"],0) + if({field.6918f1f4104c63.00459996.text} “Floor And Roof”,[acf field=”install_cost_insulation”],0) + 2635

I use ACF as it’s easy for the client to enter these number on a per product basis together with all the other product data. I would rather not use ACF to hold these numbers though and would rather use your plugin to keep it neat and easy to manage in one place. Is there a way I can reference numbers from somewhere without having to use ACF? Table lookup or just a special field I can add perhaps? Thanks.

Using ACF makes sense when you need those values to be different per product. In that case, there isn’t really another built-in alternative, aside from using a similar solution (for example JetElements) or creating your own shortcode — which, in practice, achieves the same result.

If, however, the value is static and does not change per product, then you don’t need ACF at all. You can simply use the plugin’s Math Formula Constants to define the number once and reuse it wherever needed.

Your support site does not allow new topics, which is crazy, and I am not finding my topic listed. So I ask for support here, as the pricing (fixed) is not working on my website with this new update.

You can create a new topic at the end of the list here: https://themecomplete.support/forums/forum/extra-product-options/

If you recently renewed or updated your support status while already logged in, please log out and log back in so the system can correctly recognize the updated support status.

Neo3

Neo3 Purchased

Hi, Is there a way to show an element/whole form if 2 attributes are both attached to a product, but not used as variations? Like Size: S, Color: Red. I can only achieve it if the particular attribute is also set as used for variations – and is also selected. Or to apply a whole form for an attribute – but exclude if another attribute is present. (Similarly, none of the attributes are used as variations.) Thanks!

Neo3

Neo3 Purchased

Kept testing if I find a solution, but unfortunately did not manage to find another solution. Idea: in Conditional logic settings of an element – where you can select from Product Properties – would it be too difficult to add Product Category ID, or Product tag ID, besides Product ID? Both would be mega and would solve the problem. Thanks for taking a moment to think about it!

As previously mentioned, this would require additional research and consideration. At this time, I’m not able to provide an answer, and whether it is addressed in the future will depend on feasibility and priorities.

Neo3

Neo3 Purchased

Aha, I see! Got it, so you’ve thought about this solution. (I thought you were thinking about another way to solve it.) Thank you!

kilick

kilick Purchased

Hi, Best wishes!

I’ve been busy with a client who uses your plugin.

We have a product bundle where we have a product-option that works well for single products, except for the bundles. When I check the option to select the product, it adds 4 items to the shopping cart instead of 1 (bundle includudes 3 products). For individual products, it works fine.

What we want is for there to always be 1 product option in the cart, regardless of the size of the productbundle.

Can we configure this in the settings?

Regards

kilick

kilick Purchased

Hi, Do you mean this by Product Feature (https://postimg.cc/DJvvqhgF)? This is when I check the option to select the product, it adds 4 items to the shopping cart instead of 1 (bundle includudes 3 products). For individual products, it works fine.

Please see the screenshots: https://postimg.cc/3kTPyB9Y (my cart after adding) https://postimg.cc/Q9TbJLx4 (option I select)

I don’t see your product URL here to determine why there are 4 items added. In any case it is best if you open a support ticket here: https://themecomplete.support/forums/forum/extra-product-options/. The support team can then troubleshoot your site directly and figure out what’s causing the difference.

kilick

kilick Purchased

I’ve mailed you from @outlook mail, please see my mail.

AiONets

AiONets Purchased

I have already purchased this plugin. It has lots to offer however, it is missing a very important function which other similar plugins are offering it, and it is adding a “product” as an option. I do not want to mention and competition here but it would be great if you can add this function.

Below you can seen an example of what I mean: https://i.postimg.cc/JnXYYs9B/Screenshot-From-2026-01-05-02-44-29.png

Each one of these options are a product. And each option has an optional description text box which we can add images and other information if needed.

I would switch to your plugin and to support you will purchase more licenses if you can offer such functionality.

If you go to the product element and open the Advanced Options tab, you can simply uncheck any parts of the element you don’t want displayed, leaving only the title and the price visible.

Regarding stock: normally, if a product is out of stock, WooCommerce will show the “Out of stock” message and prevent it from being added to the cart. The only exception is if the product is configured to allow backorders, in which case it can still be added despite being out of stock.

AiONets

AiONets Purchased

Regarding the product options: this is what I have done, but there is no card option similar to the following screenshot: https://i.postimg.cc/JnXYYs9B/Screenshot-From-2026-01-05-02-44-29.png

Regarding the out of stock products: I tested it and even if the product is no on backorder, it will allow the purchase. If the product is not in stock, the option will be displayed but the price will become 0 for the selected option! I have just renewed my support for your plugin as I don’t want to get a free consultation and this is your right.

As it seems to be a problem related to my installation, I am going to open a support ticket so that I do not spam here.

I see you opened a ticket so I will continue there.

I want to buy two licences for two different websites. Before i purchase i have a question. Please look at this website = https://glassopenings.co.uk/product/bespoke-2-panel-bifold/

as this website/product-page has a button name = Start Configuration. Once we click on the button we see varriations/attributes. Not from Woocommerce but looks like the developer has created his own plugin or code to handle that.

Possible to show all of those options with your plugin too? I mean i will style with CSS but i need to know if your plugin can offer all the features that website/url is showing in the attributes. I need you to tell me if there is anything that your plugin can not do, so that i do not ask for the refund or know after the purchase.

You can recreate all of the options shown on that page using the plugin. The main difference would be how those options are implemented visually, not what they do. The overall flow, logic, and functionality are supported.

Hi,

The option Settings > Display > Force Select Options

changes the button text but does not link to the product page. Instead it adds to cart, which isn’t useful when the product has custom options.

Is this a bug?

That setting is meant to redirect customers to the product page whenever there are required options that need to be selected. If this isn’t happening on your shop or archive pages, then something on your site is preventing it from working as expected. In that case, we would need to troubleshoot your setup directly to understand why the redirect isn’t taking place.

Hello – I’m very interested in the features of your plugin to duplicate the product options as seen on this website: https://www.hivissupply.com/dome75-dynamic-series-dv3525-heavy-duty-economy-contrast-black-bottom-vest-with-mul-system-propocket.html

Would I be able to create an product customization flow with logo uploads and pricing options like this? Thank you.

You can recreate the imprinting options part (everything under “Estimated Imprinting Time”) using the plugin. That kind of setup fits well with how the plugin works.

However, the first step, where the customer selects the product quantity and it automatically behaves like a product/variation selector, is a different type of functionality. That part works as a dedicated product or variation selector, and it isn’t something the plugin can replicate.

Also, from what I can see, the example site you shared is not using WooCommerce (it appears to be Magento), so the way it handles products and variations is fundamentally different.

Hello. Question? I sell reading glasses. People have to pick a diopter [ strength ] and framecolour before they can order a product..or more than 1. I want people to give an option to upload their strength [ variation attribute ] with a receipt they receive from a opticien. So it is an or / or option. But since it is mandatory to select an attribute like strength before ordering…how can I setup your system to make selecting the strength attribute NOT mandatory before ordering? Many thanks for your insights.

Thank you. Here is an example of a product. https://leesbril.nl/leesbril-araki-orange/

As you can see on the right is: title, price, choose variations [ strength ] and beneath that a quantity selector and buy now button

The only thing I wish for is after the varations but before the quantity selector and buy now button a upload button where people can upload the receipt they got from the optometrist with a custom strength…so to skip the mandatory choose variation. When they have uploaded the receipt they pay for the product, I receive the order with the receipt and cut the glasses in the strength noted on the receipt.

With your plugin people are mandatory to choose a variation [ strength ] but that is exactly what I do not want. I want people to give the option or / or…OR pick a variation, OR upload a receipt for custom strength.

I understand better what you’re trying to achieve now. The main limitation here is that once a product is set up as a variable product, its variations can’t be conditionally changed or “undone” based on selections. This isn’t something our plugin can override — it’s a core WooCommerce restriction and applies to all plugins.

A practical way to handle this is to keep your product as a variable product, and add an extra variation attribute such as “Upload prescription”. When the customer selects that attribute, the upload field would appear. This way, customers can still choose the correct variation as usual, and only see the upload option when it’s actually needed.

This approach is commonly used by other users in similar cases and tends to work well without fighting against WooCommerce’s built-in behavior.

Would something like that work for what you have in mind?

I’m impressed how smart I was an hour ago when I mentioned this ;-) “but as I see for now the only possible way is to add an extra strength attribute “I upload my own strenght” which th”

Yes. This must be the solution and a very good solution as well. Many thanks for your time and effort to help me out.

I want to change old domain to new domain

for Purchase Code: last 4 char ….deb8 i change new domain but it not activate

License activated! Thank u

You can now reactivate the code. Please remember to deactivate the license on the old domain if you plan to install it on a new one.

Will this work for user roles that are created by user editor pro or do they have to be default user roles? My admin creates the products but doesn’t need to see everything else so I have her on a custom role.

It doesn’t matter how the role restrictions are created. Please note that the administrator role sees everything.

Hello,

I’m using the “custom value” option to add a Donation/pay-what-you-want feature to this website. But the WooCommerce shareable URL I created to skip the cart and go to the checkout directly is not working, because the EPO option is present.

How do I construct the direct checkout URL that includes the EPO value (options)? Is that even possible?

Shareable Checkout URL Example: https://example.com/checkout-link/?products=123:1

Thanks, Timothy.

The Direct Checkout feature in WooCommerce bypasses the cart entirely and isn’t designed to handle custom data. Because of that, it can’t be used to add or carry over any custom option data into the checkout.

Okay, Thanks.

Hello ThemeComplete Team,

I am planning to purchase the “Extra Product Options & Add-Ons for WooCommerce” plugin. My main goal is to build a “distraction-free” product configurator exactly like the one in this link:

Reference Link: https://www.zitmaxx.nl/product-configurator/2587257

My Technical Setup:

WordPress + WooCommerce

Theme: WoodMart (This is crucial)

Elementor Pro (I will use Elementor Popup functionality)

My Questions:

Can I achieve this exact workflow using your plugin with WoodMart Theme and Elementor Pro? (User clicks a button -> Elementor Popup opens -> Your plugin’s form is displayed inside the popup).

Does your plugin support the “Accordion/Section” layout seen in the reference link when placed inside a popup?

Are there any known conflicts with WoodMart’s specific features (like AJAX add-to-cart or Layout Builder) when using your form inside an Elementor Popup?

I want to confirm that your plugin works smoothly with WoodMart + Elementor Popups before purchasing.

Thanks!

To achieve this exact setup, extensive customization would be required. While the plugin allows you to display options anywhere — for example, in a popup — you cannot scatter them across multiple placements. All of a product’s options must remain within the same container created by the plugin.

rihtak

rihtak Purchased

Hi I have clothing website and use your plugin to collect measurements and it’s working perfectly. But can I have a option to provide measurements later and just complete the order without measurement? Then will we be able to send an email only to the customers who completed the orders without entering the measurements ?

Customization pricing depends on what you need. If you submit your request, we’ll review the requirements and get back to you with the cost.

rihtak

rihtak Purchased

sure, how to send you the request ?

Roldeco

Roldeco Purchased

Hi, I currently have a site build with UNI CPO and want to move away from it cuz of the extremely slow calculations, they promised front-end calculations but even after 2 years didn’t deliver on that promise. I wanted to know a couple things first tho.

1. If i have a product with a base price for example calculated on area m2, and i set a discount on this product of 20%. Will the options of checkboxes within the product be excluded from the total discount?

2. Is it easy to set a sitewide or category wide discount without me having to edit every single product 1 by 1?

3. If i need any customization, do you guys offer this as a paid service?

1. That depends on how the discounts are set up. Are you using a specific discount plugin, or are the discounts applied in another way?

2. I’m not entirely sure what you mean by discounts in relation to the plugin. The plugin is primarily designed to add options (addons) to products, not to manage discounts. That said, it is possible to create discount-like behavior by using a dynamic element with a math formula, and this can be applied globally via Global Forms to specific products, categories, or the entire store.

3. Yes, we do offer customization services if you’d like us to implement something tailored to your needs.

Netzie Purchased

Hi Lads, Tried to post on your support forum – But I can’t create new topics? How can I get access to your support?

The woocommerce Product Add-On are breaking my freight API to my shipping company – So i just need to know how NOT to send HTML into the API – But use json as the API/Shipping expects.

“A parsing error occurred. The response format is invalid. Please check the server response” – the response is a 501

Merry X-Mas and thx for your magic

Netz

You’ll need an active support status to use the support forum, which means your Envato purchase code must still be within its support period. Also, I’m not entirely sure what you mean by the freight API or by not wanting to send HTML to the API. The plugin itself does not communicate with any external APIs at all — it simply adds metadata to the WooCommerce order, which you can then use however you like on your end.

Netzie Purchased

Thx for a quick reply… It’s hard to explain…. any orders with a product + ‘add on’ fills the jason with a lot of html (the jason that my freight vendor pulls via API to create the delivery labels and invoice.) This causes the API to break and the vendor shuts down any more attempt to pull the data. They claim that the html is not suppose to be in the json data feed? If the metadata that is added is in html – then that could be it. Would it be an idea to have a setting that strips the metadata / or HTML from the email (or not show any html – maybe just a txt info about what add on the customer bought?/ Paid for (so the invoice would be accurate…? :)

Hope that helps

Once again Thanks for helping

Netz

The plugin does not create any JSON nor is it responsible for sending any feed. If you need us to check something on our end regarding coding or the API, please contact me directly from my profile page so we can review how to proceed.

by
by
by
by
by
by

Tell us what you think!

We'd like to ask you a few questions to help improve CodeCanyon.

Sure, take me to the survey