Changelog
What’s new in WPActPro
Every release across all our plugins — new features, improvements and fixes.
New
Price by quantity (premium). Give an option a different price at each quantity break, on the Options tab. Each option is a card: its label, price and stock are typed once and its quantity bands sit underneath, so dragging moves the whole option and a band can never be separated from it. Screen print, embroidery and laser can each have their own volume discounts. Available on Select, Radio and the three Switcher field types
New
A band can charge a flat amount for its whole range instead of a price per unit, with the “Fixed – flat for the band” price type. A band of 1 to 100 set to 150.00 flat charges 150.00 whether the customer orders ten or a hundred, which is how a setup or origination charge works
New
“Bands follow” chooses whether the bands are matched against the product quantity or the field’s own quantity. Field quantity needs that field’s own Quantity option switched on, so until it is the choice is greyed out and says where to enable it, with a link to that tab – rather than letting you set something that would quietly never apply
Update
The Price Type names in the Pricing Options tab now say what they charge rather than naming the mechanism, and each one explains itself in a line underneath. “Dynamic” is now “Price × number entered” — the type that charges your amount for every unit the customer types, such as 17 per person on a “number of guests” field. “Dynamic – Exclude Base Price” is now “Price × number entered, after a free allowance”, “Custom” is now “Customer enters the price”, and the per-character, per-word and per-step types are named the same way. Only the names change: no saved field, stored setting or calculated price is affected
Update
Quantity-Based Pricing and the new per-option bands are layered rather than exclusive: an option’s own band is used first, then the field’s tier, then the option’s price. A bulk price for every option with one option excepted is now possible, which neither could express alone. Existing Quantity-Based Pricing setups are unchanged
Fix
Quantity-Based Pricing with its Tier basis set to “field quantity” charged the wrong price on a field whose own Quantity option was off. There is no field quantity to read in that case, so the cart matched tiers on a quantity of 1 and charged the untiered price, while the product page fell back to the product quantity and showed the tier. On a 50+ tier at a product quantity of 60 the page advertised the tier price and the cart did not honour it. Both now fall back to the product quantity, and the Tier basis control greys the choice out and says where to enable it
Update
Quantity-Based Pricing and Price by quantity now cross-reference each other: each explains the other in a sentence, and the tab name in it is a link that takes you there. The two settle the same question on different tabs, so neither is much use without knowing the other exists
Code
10 new automated tests cover what addon prices are shown in all four combinations of WooCommerce’s “prices entered with tax” and “display prices in the shop” settings, at both whole and fractional tax rates. Tax display had no test coverage before
Code
59 automated tests cover the new pricing from the stored structure through to the cart: every quantity boundary, each supported field type, all eight tax configurations, and the save path, where a column the admin collector does not capture would be silently dropped
Fix
The date and time picker could open behind the page on desktop with some themes and page builders (for example Divi), so clicking the field looked like it did nothing. The calendar now always opens above the page content, and pickers inside the quick view keep their own higher layer
Fix
A Heading or Paragraph field with its title position set to Left showed a thin white vertical line through its text, and the text was squeezed into the narrow title column. The line is gone and the field now uses the full width
Fix
With the title position set to Left, the title sat lower than the field beside it: about 10px for Checkbox, Checkbox Group, Radio, Switch and File Upload fields, and about 20px whenever the Title Type was Strong or Div (on mobile those titles were also indented). Titles now line up with the first option
Fix
Addon option prices now follow the shop’s “Display prices in the shop” setting, as the product price beside them already did. On a store that displays prices including tax, the product showed its tax-inclusive price while every addon option showed its price without tax, so the two could not be compared and neither matched the total below them
Fix
The Addon Details table’s Subtotal now equals the rows above it. Where prices are entered without tax and displayed including it, a product of 100.00 plus an addon of 100.00 totalled 264.00 instead of 240.00, because the product’s tax-inclusive figure was taxed a second time. The amount charged was always correct; only the figure shown on the product page was wrong
Fix
The Addon Details table no longer labels its Subtotal “Including tax” on a store that displays prices without tax. It now adds the tax as a separate “Plus” line, matching how WooCommerce presents the cart
Fix
Products with an addon no longer show a struck-through price and a saving that do not exist. The cart stored the product’s tax-inclusive price added to the addon’s tax-exclusive one as the item’s regular price, so a cart charging 240.00 advertised a previous price of 264.00 and a 24.00 saving. The amount charged was unaffected
Fix
The cart line for an addon now quotes the price it actually charges. With a quantity band, a volume tier or a price rule in play, the line described the option’s plain price while billing the adjusted one: an option billed at 9.00 per unit still read “Gold (2.00)” beside a line total of 135.00, and the figure drifted again whenever the shopper changed the quantity. The amount charged was always correct; only the description was wrong
Fix
A percentage option price is no longer applied twice on the product page. The Addon Details table showed 0.32 for a 10% option on an 18.00 product, while the dropdown above it and the cart below it both said 1.80, because the server published the worked-out amount still labelled as a percentage and the browser took the percentage again. Long-standing; the cart was never affected
Fix
A quantity band left without a price no longer produces an invalid figure in the browser. The band is now treated as costing nothing, which is what the cart already charged
Fix
The quantity band price type list no longer offers “Percentage of product price”. Neither the product page nor the cart applies a percentage to a band, so a merchant who chose it got a break that silently charged the option’s normal price at every quantity. Bands offer the two types that work: a fixed amount per unit, or a flat amount for the whole band
Fix
“Fixed – flat for the band” is no longer offered in the free version, where quantity bands do not exist and the type had nothing to apply to
Fix
Text Switcher options with quantity bands are saved correctly. A band row posted a switcher value that the option’s own row did not, so the posted arrays no longer lined up one value per row – the shape the whole save path depends on
Fix
The six documented price filters (epofw_price_before_calculation, epofw_regular_price_before_calculation, epofw_sale_price_before_calculation and the three epofw_set_product_*_price_after) reach the prices that are stored again. A rewrite in this release left them computing a value nothing read, so a site filtering them saw no effect and no error. They now receive the as-entered price, the space the WooCommerce setters expect
Code
The filter behind the band-capable field type list is now named epofw_option_qty_band_field_types, matching the function it belongs to. It was left over from an earlier, unreleased feature and was never in a release under the old name
Fix
The price shown beside each option now follows the quantity. A product page is rendered once, at the quantity the shopper arrived with, so an option priced by quantity bands kept advertising its opening price: a dropdown reading “Gold (+2.00)” above an Addon Details table — and a cart — that both said 9.00. The label now changes with the product or field quantity, in the dropdown and beside Radio and Switcher options alike. Every version of the label is rendered by the server, so wording, currency formatting and any filter applied to them are unchanged
Fix
Two Color Switcher or Image Switcher options that share a label are no longer merged into one. The builder treated the label alone as the option’s identity, so a second option reading “Classic” in a different colour was drawn as a quantity band of the first, and its colour was overwritten with the first one’s the moment the field was saved — losing that option. An option is now identified by its label and its swatch together, which is how the cart has always told them apart. Rows that share both are still one option with quantity bands
Fix
“Fixed – flat for the band” is offered only while “Price by quantity” is switched on. With it off there is no band for the type to apply to, and it quietly behaved as an ordinary per-unit price: an option set to 40.00 flat charged 40.00 for every unit, so 200.00 at a quantity of five, while its name promised a single charge. A field already saved with the type keeps it, so no existing setting changes
Fix
“Only Allow Listed Dates” is back on the Datepicker field. The setting sat in the wrong branch of the settings form, so the Datepicker never offered it — the feature could not be reached from the field it belongs to — while the Timepicker showed a control for restricting which dates a customer may pick, where it does nothing. Timepicker settings also raised PHP warnings each time they were opened. Present since 4.4.9.2
Update
Tested with WooCommerce 11.2.1
Update
Tested with WordPress 7.1.3
Fix
Files uploaded through the File Upload field are now shown on the order, with the file name and a working link. With AJAX upload switched on (the default), the uploaded file’s address was stored in a form the order screen, the customer’s order page and the order emails could not read, so the order showed an empty link and a broken icon and the file could only be found by browsing the server. Orders placed before this update are fixed as well: their links appear as soon as you update, with nothing to re-save
New
Uploaded files can be opened straight from the order. Upload folders have been blocked from direct access since 4.4.4, which also left the shop owner with no way to open a customer’s file from WordPress. File links now go through a protected download. It is available to shop managers, to the customer who placed the order, to anyone holding the link from that order’s email, and to a shopper for the files in their own cart
Fix
A File Upload field with “Multiple files” switched on and AJAX upload switched off now saves its files. The files reached the server but were never attached to the cart item, so the order was placed without them and without any warning
Fix
An upload can no longer go missing from an order without anyone being told. A file the server refuses, most often because it is larger than the hosting’s upload limit, now stops the add to cart with a message naming the file, and the AJAX uploader shows that reason instead of an empty error box. If an uploaded file can no longer be matched to the shopper when they add to cart, they are asked to upload it again
Fix
An uploaded file is now stored once and appears once. With AJAX upload on, the same file was saved to the server a second time when the product was added to the cart, and could appear in the cart as two separate rows
Fix
File types other than PDF and DOCX no longer show a broken image beside the file name in the cart, the order and order emails
Update
An uploaded file is now listed on the order by its file name, with the file-type icon where one exists. An uploaded image is no longer embedded as its own preview, because the original would have to be loaded at full size on every order view and email open. If you style these links or filter their HTML, note that each is now a link with the class epofw-file-link containing the file name, one per line
Security
Hardened the File Upload field. Each visitor’s uploads are kept in their own private folder, the remove-file request is limited to the visitor’s own uploads, and only files a visitor actually uploaded can be attached to their cart item. Updating is recommended for every store that uses File Upload fields
Fix
Image Switcher choices are accepted again on a site that has changed address. Since 4.4.9 the product page printed each option with its image re-pointed at the current address while the cart still compared against the address stored before the move, so every add to cart was refused with “Option is invalid”
Note – Links to uploaded files in order emails include that order’s key, the same way WooCommerce’s own order links do, so anyone the email is forwarded to can open the files. Files uploaded before this update stay where they are and keep working. On nginx, which ignores the folder protection file, direct access to wp-content/uploads/epofw_files/ can now be denied in the server configuration without breaking anything, because files are served through the protected download
Code
56 new automated tests cover the File Upload field from upload to order to download, which previously had none
Fix
Changing the Date Format in a Datepicker field’s settings now updates the Minimum Date and Maximum Date pickers straight away. The setting was wired to a selector that does not exist on the page, so nothing happened until the field was saved and reopened
Update
Tested with WooCommerce 11.1.2
Update
Tested with WordPress 7.1.2
Fix
on order emails, the thank-you page and My Account, the delivery estimate showed a bare “:” instead of the “Estimated delivery:” label. This affected every store running the default settings.
New
German, Spanish, French, Italian and Brazilian Portuguese translations, covering the settings screen and the storefront.
Fix
42 settings-screen phrases could not be translated at all. They looked translated in the code but never reached the translation file, so they stayed English in every language.
Fix
buttons on the settings screen did not declare a button type, so a theme or plugin that wrapped the page in a form could make them submit it.
Fix
the settings screen now mounts using the current WordPress React API instead of a deprecated one.
New
wp edfw WP-CLI commands for support — show why a product has the date it does, list rules and settings, and flush cached dates.
Tested with WooCommerce 11.1.2.
Premium: import a country’s national public holidays for this year and next, for eight countries. Generated on your own site, with no external service and no API key.
New
Initial release.
New
Rule-based delivery estimates with automatic most-specific-rule matching.
New
Order cutoff with live “Order within” countdown and a “Cutoff passed — ships next business day” note after the cutoff.
New
Working schedule, holidays & closures, per-product overrides.
New
Scheduled start date, per rule and per product.
New
Display on product, shop, cart, checkout and order emails, with a live admin preview that matches the storefront exactly.
New
Message template, icon picker and accent-tinted badge design.
New
HPOS, Cart & Checkout Blocks, WooCommerce REST and Store API support.
Fix
Advanced Product Fields for WooCommerce option prices no longer disappear from the total when this plugin is active. Both plugins set the cart item price on the same hook at the same priority, each calculating from the product’s original price, so whichever ran second discarded the other’s additions. Because plugin load order put us second, the Advanced Product Fields options still appeared and still reached the order while their prices silently went missing. An item carrying fields from both now costs the product price plus both sets of options
Fix
Datepicker date restrictions are now enforced when the item is added to the cart. The minimum date, maximum date, disabled weekends and blocked dates were applied only in the browser, so a customer bypassing the page scripts could order a date you had blocked. The same checks now run on the server. A date that cannot be read against the field’s date format is still accepted, so a valid order is never turned away
New
Blocked dates can now be entered as a range. Writing 01-12-2026:14-12-2026 blocks every day in that span, instead of typing all fourteen dates. Ranges mix freely with single dates and accept the same {today} and {+7d} shorthand as the minimum and maximum date fields
New
“Only Allow Listed Dates” turns the blocked dates list into the opposite: the dates you list become the only ones a customer can pick, and every other day is switched off. For products sold on set days only, such as a class timetable or the issue dates of a magazine. It does nothing while the list is empty, and the minimum date, maximum date and Disable Weekends settings still apply on top
Fix
The addon builder now warns when an addon’s display rules would hide it on every product. An addon with no rules, or with a rule whose value was never chosen, never appears anywhere, and until now both looked completely normal in the builder. This also identifies rules left empty by the Select All problem fixed in 4.4.9.1, which updating does not repair on its own
Update
Tested with WooCommerce 11.1.0
Update
Update readme.txt.
New
Stale zone warnings (Pro) — flags rules that target shipping zones which no longer exist, or that are limited to selected zones with none selected.
Deleting a zone in WooCommerce tells you nothing about the rules that pointed at it. They stay active, stay correct on their own terms, and never fire again. Now the Rules screen says so.
A rule that still works but carries one stale reference is explained rather than marked dead — a false warning is worse than none.
New
Surcharge rules (Pro) — mark a rule as a surcharge and its cost is added to every rate that applies, rather than competing with them as another option.
Base rate plus handling fee is now one shipping price built from two rules. Standard £5 and Express £15 with a £2 handling surcharge give £7 and £17 — two choices, not a single £22 rate.
A surcharge with nothing to attach to charges nobody: it is part of a price, so with no price there is nothing to add to.
New
Specific customer condition (Pro) — give one named account its own negotiated rate. Customer role covers “all wholesale buyers pay this”; this covers the case a role cannot express, without inventing a role per customer.
Guests match no specific-customer rule under either comparison, so an “everyone except Acme” rule never fires on a shopper who is not signed in.
The Simulator gains a customer field whenever a rule reads one.
New
Shadow mode (Pro) — a third rule status. The rule is evaluated and recorded on every checkout but never charges anyone, so you can try a pricing change against real traffic before it reaches a customer.
Shadow rules show in the Simulator and the shipping decisions log with what they would have charged.
A shadow rule never blocks a live rule, and is never reported as unreachable — it is not meant to fire.
New
Unreachable rule detection (Pro) — warns when a rule can never apply because a rule above it matches every cart and always wins first. A silent failure until now: the rule below stays active, stays correct, and never runs.
Shown only under Only the highest rule applies, since with every matching rate shown no rule is shadowed.
The warning names the rule doing the shadowing, so you know whether to reorder or narrow it.
New
Shipping decisions log (Pro) — open any order and see which rule set the shipping rate, what it cost, and for every rule that did not apply, exactly which condition failed.
Answers “why was this customer charged this?” from the order screen itself, instead of asking you to rebuild the cart in the Simulator and hope it matches.
Records which rule the customer actually chose — not just which ones matched — so it stays accurate when you offer several rates and they pick one.
Stored as order data: removed when the order is deleted, and covered by WooCommerce’s own personal-data erasure.
New
Destination postcode and destination city conditions (Pro) — charge differently inside a single shipping zone without building a second zone just to hold one postcode.
Postcode patterns use exactly the same syntax as WooCommerce shipping zones: an exact postcode, a wildcard such as CB2*, or a range such as 90210…99000. Separate several with commas.
Until a shopper has entered an address, a destination rule matches nothing — including “does not include” rules, so an “everywhere except” rule never fires on a blank address and quotes the wrong price.
The Simulator gains postcode and city inputs whenever a rule reads them, so destination rules can be tested before going live.
New
Dimensional weight, cart volume and longest-side conditions (Pro) — price bulky-but-light items the way couriers actually charge for them.
New
Dimensional weight divisor setting under Settings → Units, so the divisor matches your courier contract (5000 for cm/kg, 139 for in/lb).
If any item in the cart has no dimensions set, these three conditions are skipped rather than pricing the order on incomplete measurements, and the Simulator names the product that needs dimensions.
Fix
the Plugins screen row had no Settings link. It now has one, ahead of Deactivate.
Fix
Select All and Clear All had no effect in an addon’s Additional Rules. The buttons fetched the full Product, Category, Tag, Variation or User Role list correctly but never placed it in the condition field, so the box stayed empty and Clear All appeared to do nothing. Both buttons now fill and clear the condition row they belong to
Update
The “one-off” note shown beside a flat quantity-based charge in the product page addon totals is now translatable, instead of always appearing in English
New
Initial release.
New
Rule engine with zone-aware shipping method — table rate, conditional, weight based and free shipping rules.
New
Visual rule builder: WHERE / WHEN / THEN / SHOW AS, with a live plain-language summary and 10 goal templates.
New
Rules dashboard with drag-to-reorder priority, live checkout preview and global save.
New
Simulator — run any test cart through the real engine and see which rules matched, which were skipped and why.
New
Condition groups: a rule can match on any of several groups — for example, “cart weight over 10 kg” OR “contains the Fragile category” — instead of only every condition at once. Adding a second group is a Pro feature; everything else here is free.
New
Tiered extras (up to 5 tiers per rule) by quantity, weight or subtotal range.
New
Free-shipping progress bar on cart and checkout, classic and block alike.
New
Conditions on cart subtotal, cart weight, item quantity, products, product categories and shipping classes.
New
Extension API: add-ons can register condition types, resolution modes and lookup sources, and the builder renders text, dropdown, multi-select, date and time conditions straight from their schema.
New
REST API and WP-CLI (wp wpactpro-sr rules …).
New
HPOS compatible; works with the classic and Block cart/checkout.
Fix
Cross-field Price Rules combined with Quantity-Based (Volume / Tiered) Pricing now apply correctly for every tier type. A fixed rule such as “Subtract 10” is taken off the line total once only when the matched tier is a flat type; against a per-unit tier, and when the quantity matches no tier at all, it now comes off each unit and is multiplied by the quantity. Percentage and Multiply rules are unaffected. Totals may change for setups that combined a per-unit tier with a fixed Price Rule
Fix
Image Switcher option images no longer break when a site moves to a new address or drops a staging sub-directory. The stored image URLs live in the plugin’s own tables, which search-and-replace tools skip, so every swatch rendered blank. Images are now re-pointed at the current uploads directory automatically, and URLs that genuinely point elsewhere (a CDN, another site) are left untouched
Fix
Advanced Validation Rules can now be switched off. Turning the toggle off appeared to save, but the setting was read back as enabled on the next page load, making it impossible to disable once any rule had been entered
New
Product page addon totals now show the quantity behind every amount. The subtotal reads “Subtotal (119.00$ x 6)” with the line total, and a field with its own quantity shows “(12.00$ x 4)” beside its name, so a shopper can see exactly how the figure was reached instead of a per-item price that looked like an order total
Update
The Quantity-Based Pricing panel now states that a matching tier REPLACES the Field Price above it, and warns when the field uses a calculated Price Type (per character, per word, or a custom formula) whose result the tier would discard
Update
The “Use the product quantity” setting in Quantity Settings (previously labelled “Product Quantity”) now explains what it does to the price, with worked figures for both states
Fix
Per-word pricing now counts words the same way the product page does. Languages that do not use the Latin alphabet (Japanese, Chinese, Thai, Arabic) were counted incorrectly, so the cart charged a different amount from the price shown
Fix
Server-side validation now runs when an item is added to the cart. Validation rules were only ever enforced in the browser, so a customer bypassing the page’s scripts could add a product with values that break the rules. Rules are now re-checked on the server, and anything the check cannot positively identify is allowed through so that valid purchases are never blocked
Fix
Advanced Validation rules are now cleaned up when an addon is saved. Invalid entries such as a non-numeric character limit or a malformed pattern were stored exactly as typed instead of being corrected or discarded
Fix
Validation character and word limits now count the same way the browser does, so a value accepted on the product page is no longer rejected at the cart for non-English text
Fix
Per-character pricing now charges for the characters typed rather than the bytes they occupy. Accented, non-Latin and other non-ASCII text (“café”, Japanese, Cyrillic) was counted by byte length on the server, so the cart charged more than the price shown on the product page. Server and product-page totals now always agree. Prices for plain English text are unchanged
Fix
Product Group option settings (label, price, and the linked product) could be saved in an unusable form, so the field’s product list did not work correctly after saving. Options are now always stored in the correct structure
Fix
Per-option stock could drain faster than items were actually sold. When a multi-select or checkbox group submitted the same option more than once, each repeat was counted as a separate sale and deducted another unit from that option’s stock
Fix
Deleting a post or product that had no saved addon options could silently discard other database changes made in the same request. The plugin opened a database transaction to remove the addon’s data, and when there was nothing to remove it returned without closing it, so anything saved afterwards in that request was rolled back when the page finished loading
Fix
Deleting an addon now removes all of its stored layout data. One level of the layout structure was never cleaned up, so unused rows built up in the plugin’s tables over time and were never removed
Fix
Fields that disappeared from addons migrated from older versions are restored. The first field of every migrated legacy addon was hidden everywhere in the plugin — the builder, the product page and the cart — even though it was still stored safely in the database. Updating brings those fields back automatically, with their settings and prices intact. If you re-created a missing field by hand after the upgrade you may now see it twice, and can delete the duplicate
Fix
Custom Price Formulas using powers (for example pow({value}, 2) or Math.pow({value}, 2)) were charged as 0.00 instead of the calculated amount, so products using them added nothing to the total
Fix
Importing addons in “Update existing” mode failed immediately with a fatal error and imported nothing. Update-mode imports now complete normally
Fix
Migration status and verification screens reported 0 fields for every addon, making a completed migration look like it had lost all data. The counters now report the real field count
Fix
Separator and Product Group were missing from the field type list on the About page
Fix
The Repeater field no longer shows an empty settings card in the builder on the free version
Code
Test suite expanded to 782 automated tests covering pricing, storage, migration, import/export and the addon field types, and the suite now runs against its own isolated database so results are reproducible
Fix
Product page addon totals no longer show duplicate option rows (and a wrong subtotal) for fields saved by old plugin versions with label-based input names containing unsafe characters (spaces, dots, slashes, parentheses). A one-time background migration normalizes those stored names to the canonical epofw_field_{id} format, and field rendering plus frontend JS now normalize such names defensively
New
Documentation page redesign: Getting Started video hero, live doc search with All / General / Field Types / Pricing filter tabs, and a resources sidebar (Full Documentation, Video Tutorials, Support)
New
Guided Tour: an end-to-end interactive spotlight walkthrough that follows the real build flow — from Add New on the addons list, through the addon configuration (Status, Name, Display Rules, Position, Section Layout), adding a section, dropping in a field, and every field-settings tab (General, Label, Options, Quantity, Pricing, Conditional Logic, WooCommerce, Container). It waits for you to perform each action, auto-switches tabs, resumes across the page change, and can be launched anytime from the “Take a Tour” buttons in Quick Actions, the builder and the Documentation page (also auto-shown once for new users)
Fix
Elementor “Product Add to Cart” widget compatibility: addon fields no longer collapse into one row with the quantity box and Add to Cart button
New
Quantity-Based (Volume / Tiered) Pricing: set price breaks per field where the matched tier prices all units; four tier types (Fixed or % of product price, each per unit or flat), by product or field quantity, with live preview and cart/shop support
Fix
Tooltip help icon/text no longer leaks into the shop quick-view “Apply” options summary label
Update
French (fr_FR) translation refreshed to 100% coverage (300 new/updated strings, including Volume Pricing, Guided Tour, Import/Export, Validation and Documentation screens)
Fix
Product page price preview now always matches the cart: priced fields with pre-selected defaults on hidden wizard steps or collapsed accordion sections (default-checked options, slider at its minimum) are counted in the addon totals from page load, so customers are never charged more at checkout than the product page showed
New
Discount Rules for WooCommerce (Flycart) compatibility: store discounts now apply to the product price only — addon prices keep their full configured amount instead of being discounted along with the product (applies only when a discount rule actually matches; flat-amount discounts and undiscounted items are untouched). The product-page addon totals preview also uses the discounted product price, so the preview always matches the cart
Fix
Values placed by browser autofill are now priced in the addon totals as soon as the browser exposes them (at the customer’s first interaction) instead of only when clicking Add to Cart
Fix
Password fields no longer trigger the browser’s saved-login autofill (autocomplete=”new-password”), which could silently fill neighbouring priced text fields with the saved username
Fix
Addon option prices now display in the Cart/Checkout block, not just the classic cart and mini-cart. The price is shown next to each selected option (e.g. “Choose Your Size: XS (99.00$)”) consistently across all cart types
Fix
Product Group no longer shows a Pricing Options tab. Each product is priced individually in the Product Group Options tab, so the field-level pricing tab (which was informational only, with no usable controls) has been removed
Fix
The Pricing tab intro banner now shows an accurate message for option-based fields (Select, Radio, Checkbox, etc.): they are priced per option and use Price Rules / Volume pricing, instead of the generic “set the field price” text
New
Redesigned Pricing Options tab: a clear Field Price → Price Rules → Volume calculation-order map at the top, each pricing system in its own collapsible card with an On/Off summary. Purely a UI change — saved data, input names, and how prices are calculated are all unchanged
Fix
Added proper spacing above the Price Rules section in the Pricing tab so it is clearly separated from the field’s own pricing controls (e.g. the Rating per-star rows and Add Row button)
Fix
Conditional Logic (Visibility) rule value dropdown was empty when the trigger field was a Country or other option-based field (Select, Radio, Checkbox Group, Multiselect, colour/text/image switchers); it now correctly lists that field’s options so a matching value can be chosen
Fix
Volume / Tiered pricing “Tier basis” no longer offers “Field quantity” for field types that have no Quantity tab (Rating, and heading/paragraph/separator/hidden/password), where a field-quantity basis could never apply
New
Price Rules now work on option-based fields (Select, Radio, Checkbox, Checkbox Group, Multiselect, and Country) – adjust the selected option’s price when another field has a specific value, with live product-page preview and cart/checkout support
Fix
Tooltip / Help Icon redesigned (dark tooltip with a visible arrow and correct padding) and no longer clipped by theme or plugin styles
Fix
Country field price is now consistent between the dropdown label, the product-page add-on details, and the cart
Fix
“Migrate to Sections” button no longer shows misaligned loading text (now shows a clean spinner)
Update
Added a loading indicator when adding a new Price Rule
New
Import/Export addon configurations
New
Tooltip / Help Icon feature
New
Help Text input in General Settings
New
Regex Pattern Validation for 8 field types (Text, Textarea, Email, Phone, URL, Password, Number, Hidden)
New
Min/Max Length constraints validation
New
Min/Max Words constraints validation
New
Custom Validation Error Messages
New
Persistent error display until requirements met
New
Real-time validation feedback on blur and input
New
Add-to-Cart button disabled until validation passes
New
Country Selector field type with WooCommerce country dropdown
New
Per-Country Pricing with dynamic price calculations
New
Cross-Field Pricing Rules with 5 operators (Add, Subtract, Multiply, Percentage Add, Replace)
Improved
Tooltip styling with arrow pointer and …
Get notified about new releases
We’ll email you when we ship updates to your plugins.