10130 comments found.
Any plans for API support?
Could you share a bit about what you’d hope to achieve with API access?
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.
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.
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!
This is currently possible only when you use a global form, meaning that the whole global form would be visible if you select the attributes you want on the meta boxes.
It’s okay and I would be fine with it. But if selecting “Red” from Color attribute AND also “S” from Size attribute, it did not help. It showed up both for Blue, Black, M, L etc.
There are no conditions there like in the conditional logic. If you select and something it is present then the form appears.
OK, so the answer to my question is that currently it is not possible to combine the conditions. If either is valid, teh form will be applied. So it’s OR not AND?
Correct. It is unclear whether the attributes outside of the variations can be accommodated within the conditional logic, so I will add this item to the todo list for further consideration.
Thank you for the confirmation and note for the future! It would be useful in many cases, I believe! (Even if it could be combined like show if Attribute A is there, but if Tag X is there, hide.)
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.
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!
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
This is something that would need to be checked directly on your site in order to understand what’s happening.
Please open a support ticket here: https://themecomplete.support/forums/forum/extra-product-options/ and our support team will be happy to take a closer look and help you troubleshoot it properly.Just keep in mind that support is provided through the forum and requires an account with an active purchase, so we’re a bit limited in what we can do outside of that. Once a ticket is open, we’ll be able to assist you much more effectively
Hi,
Is it compatible with WPC Product Bundles plugin? Maybe that is the issue.
I cannot open a topic on the support forum, but I have the license of the client. Can I mail you this license?
That said, you may be able to achieve a similar result by using our Product Element feature, which lets you add additional products to the cart alongside the main product.
Regarding the support forum, you can open an account using your client’s purchase code, as long as the license still has an active support status.
Do you mean this by Product Feature (see purple block)? I’m already using that. Thank you
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.
I’ve mailed you from @outlook mail, please see my mail.
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.pngEach 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.
Thank you for the detailed feedback and for sharing the example — we appreciate you taking the time.
Just to clarify, this functionality is actually already available in the plugin You can create each option as a product and add a dedicated description field, which supports rich content (including images and additional information), very similar to what you’ve shown in the screenshot.
If it’s not immediately obvious where to configure this, we’d be happy to point you in the right direction or help you set it up step by step. Please feel free to reach out to our support team or let us know which part you’re having trouble finding.
Thanks again for your support and for considering additional licenses — we’re always here to help you get the most out of the plugin.
Just to clarify, this functionality has actually been available in the plugin for quite some time via our dedicated Product element. This element allows you to add products as selectable options, each with its own rich description area that supports images and additional content — matching the setup shown in your screenshot.
If this wasn’t immediately obvious, no worries at all. The plugin offers a lot of flexibility, and some features can be easy to miss. We’d be happy to guide you to the Product element so you can set it up exactly as needed.
Please feel free to reach out to support — we’re happy to help.
Thank you for your answer and sorry for my lack of knowledge. I tested the options and they really seem promising, comparing to the other option I had in mind. The only thing is the design. It would be great if you can add a new design to the available options called “Cards”. Which only shoes the title of the product and the price below. This will help the user to get a nice design with not much of a hassle.
Another issue that I noticed (maybe again it is my lack of enough knowledge about the functions of your plugin) is that if one of the products added as an extra option, is out of stock, it will be anyways added to the card with no error. Could you please mention where this can be changed?
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.
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.
What you’re describing is only possible if those attributes (for example, strength or upload) are created as plugin options, not as WooCommerce variation attributes. Native WooCommerce variations have a very strict structure, and once an attribute is used as a variation, it cannot be made conditional. Conditional logic can only be applied to options created through the plugin, not to built-in product variations.
Thanks. Your explanation is a bit too technical for me to understand but I will let a tech person look at it.
What you’re trying to do is only possible if options like strength or upload are created using the plugin’s options, not as built-in WooCommerce variation attributes.
WooCommerce variations are very strict by design. Once an attribute is set as a variation, it cannot be made conditional or dynamic. This isn’t something the plugin can change.
If you need that kind of flexibility (showing or hiding options based on selections), those fields must be created as plugin options instead of product variations.
I understand what you are saying. When I choose to use your plugin and set “attributes” within your plugin these attributes like strength will not be indexed and not be linked to normal attributes and products….meaning when people click attribute +1.00 it will skip the products where I have made attributes with your plugin. Thanks for your very quick response to my question. Appreciate it.
Just to clarify, the plugin does not create product attributes. It creates add-ons that are attached to the product. These add-ons are separate from WooCommerce attributes and don’t interact with them.
Because of that, I’m not entirely sure what you mean by “when people click attribute +1.00 it will skip the products where I have made attributes with your plugin.” The add-ons created by the plugin don’t replace or skip product attributes — they work independently.
If you can describe what the customer clicks and what you expect to happen in simple terms, I’ll be happy to explain whether that setup is possible and how it could work.
Thank you. It is kinda hard to explain. When I create attributes in Woo….these attributes like colour, strength are clickable by people. In the sidebar with the filter widget people can select strength for instance and it shows all results of all the products with that strength. Since it is not possible with your plugin to “override” the standard attributes [ they must choose these attributes to buy a product ] your plugin does not work for me. If your plugin had the option to “override” attributes per product it would work for me. Again…hard to explain what I would like your plugin to do but as I see for now the only possible way is to add an extra strength attribute “I upload my own strenght” which than shows the upload file section of your plugin when people click on that attribute.
You can actually combine both approaches. You can keep the product as a variable product, so customers use the regular attributes to choose the correct variation, and then use the plugin only for the upload option.
The upload would be created as an option by the plugin, not as a product attribute. You can also control when it appears, for example showing it only for specific variations or specific attribute values.
Would this setup work for what you’re trying to achieve?
Thank you but here lies exactly the problem…...the attributes are: +1, +2, +3, +4, +5, +6…...people need to pick / are mandatory to pick an attribute that is not what they want and than I show the upload button where they can upload the receipt [ with totally different strength ]. So in your case they pick i.e +4 and then upload a receipt with +3.25…..this is causing problems. What I would like is giving people an option…..or they pick an attribute like+4….or they upload a receipt with custom strength…...an or / or situation.
So on the variable product page there are the usual attributes [ strength, colour, etc ] and right beneath is your upload file button with the message “want to have a custom strength? Upload your receipt here”. They upload the receipt, pay for the product and later receive the product with the strength on the receipt they uploaded. This is not possible with your plugin only with some sort of workaround.
If you mean that you want the system to automatically understand from the receipt what type of product the customer wants based only on the variation they selected, then unfortunately that isn’t possible.
WooCommerce variations are fixed choices (like size or color), and they don’t carry extra logic that can be interpreted later in the way you’re describing. The plugin can add extra options to a product, but it can’t “read between the lines” of a variation and turn that into different behavior after the order is placed.
Other than that, I don’t see a general limitation. If you can share a specific product example and explain what you expect to happen step by step, it would make it much easier to confirm what can and can’t be done.
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:1Thanks, 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.
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 ?
If you mean that you want to have customer submit measurements after the order is made I’m afraid that there isn’t anything like that.
Based on the options selected (radio button) can we trigger an email ? If thats possible then I can link a Google form to collect the measurements.
No, emails for the order are only controlled by WooCommerce after the order is made. You can probably though create custom solutions for things like that.
Is it possible to have a custom solution on top on your plugin or should I have to have a plugin developed from scratch for this ?
Any custom solution would probably be created as a custom plugin.
Do you have api ? Is it possible with the api we can check the option selected from the radio button and trigger the email ?
Yes, there is an API. The support forums has example of how you use it, eg here: http://themecomplete.support/forums/topic/fetch-product-options-for-use-in-custom-report-view/
Thanks. I’ll check it out.
I also saw that you also do customisation work, may I know what would be the cost for this please ?
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.
sure, how to send you the request ?
Here is the link: https://themecomplete.com/custom-plugin-work/
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.
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.
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.