Changelog
What’s new in WPActPro
Every release across all our plugins — new features, improvements and fixes.
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.
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
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 shadow
Improved
Full accessibility support for tooltips
Fix
Tooltip overflow clipping
Fix
Disabled fields with empty field_status being displayed on shop page when they shouldn’t be
Fix
Additional rules for addons not properly excluding products due to type mismatch in product/product_variation condition comparisons
Fix
Product Quantity condition in additional rules always evaluating to true instead of checking actual cart quantity
Fix
Missing class loads in plugin initialization (import-export and bulk-export-import classes)
Fix
Better error handling for failed exports and JSON parsing
Security
Proper output escaping for nonce values
Code
PHPCS compliance and code quality improvements
Compatible
Compatible with WooCommerce 10.9.x and WordPress 7.x
New
Product Group Fields
New
Slider range
Update
Unauthenticated AJAX allows arbitrary file deletion
Compatible
Compatible with WooCommerce 10.7.x
New
Section Layout (Premium) – Organize addon sections using Accordion, Tabs, or Step Wizard layouts
New
Section Layout Global Settings (Premium) – Set global defaults for all section layouts with per-addon override capability
New
Accordion Layout options: Mode (Single/Multi Open), Default Expanded (All/First/None), Icon Style (Plus/Minus, Chevron Arrow, Caret Triangle)
New
Tabs Layout options: Style (Horizontal, Vertical, Pills, Underline), Position (Left/Right for vertical tabs)
New
Wizard Layout options: Progress Bar, Step Indicators with completed/error states, Navigation buttons
New
General Behavior settings: Animation Speed (Fast/Normal/Slow), Remember User State, Deep Linking, Highlight Sections with Errors
New
Smart validation for hidden fields – Automatically expands sections with errors, shows error indicators, and focuses on invalid fields
New
Error indicators on tabs/accordion headers/wizard steps when sections contain validation errors
New
Keyboard accessibility for all layouts (arrow keys, Enter/Space, Home/End navigation)
New
Custom (User Entered) pricing type for number fields – Accept donations, tips, and custom amounts
New
Dynamic (Per Unit) pricing type – Calculate price per ‘n’ number of units
New
Dynamic – Exclude Base pricing type – Price per unit excluding base quantity
Improved
Tax display on product page – Shows “Including € XX.XX Tax” matching cart display format
Improved
Per-addon tax class support – Each addon can have its own tax class (standard, reduced-rate, zero-rate)
New
Per-option stock management (Premium) – Set stock quantity per option for option-based fields (Select, Radio, Checkbox, Color/Image/Text Switcher)
New
Stock validation before add-to-cart – Prevents adding to cart when selected options are out of stock
New
Stock deduction at checkout – Option stock is reduced when order line items are created
New
Stock restoration on order cancellation, refund, or failure
Improved
Tax info updates dynamically when switching product variations
Compatible
Compatible with WooCommerce 10.5.x
New
Repeater field type (Premium) – Allow customers to duplicate a group of fields on the product page
New
Repeater features: select fields to repeat, configurable min/max instances, custom button labels
New
Repeater pricing: child field prices accumulate across all instances with cart/order support
New
AJAX server-side search for addons list page with pagination support in admin side
New
Introduced new actions and filters for better developer extensibility
New
Added documentation links in each field type tabs for quick reference
New
Theme compatibility system for Elessi/Flavor and similar themes
New
Global Settings section – Set global defaults for field labels that apply to all addon fields
New
Auto (Smart Detection) option for Title Position – Automatically selects optimal label display based on field type
New
Filters: epofw_before_render_addon_fields, epofw_cart_item_data_after_addon, epofw_before_save_addon_data, epofw_before_duplicate_addon_data
New
Actions: epofw_before_addon_html, epofw_after_addon_html, epofw_after_add_cart_item_data, epofw_before_delete_addon, epofw_after_delete_addon, epofw_after_save_addon, epofw_after_duplicate_addon
New
Actions: epofw_before_global_label_settings, epofw_after_global_label_settings, epofw_global_settings_sections
Improved
Compatibility with Elessi/Flavor themes for addon positioning
Performance
Added caching for general settings to reduce database queries
Performance
Added static caching for product terms (categories/tags) in conditional logic evaluation
Performance
Added object caching for addon post IDs list on frontend
Performance
Added static caching for per-product addon match results
Performance
Optimized WooCommerce tax display option calls in price functions
Performance
Added object caching for global settings with 1-hour expiration
Fix
Currency display issues in addon price formatting
Fix
JavaScript errors in addon price calculation
Fix
Additional Rules flash/flicker on page load – addons now hide instantly via server-side pre-evaluation
Fix
Addons without Additional Rules no longer display on product pages – rules are now required for addon visibility
Fix
Column group drag-drop reorder not saving correctly after save
New
Nested logic structure for Additional Rules (AND/OR groups)
Improved
Additional Rules now support grouped conditions with AND/OR logic
Improved
Better flexibility for complex conditional rules
Improved
Cart item price calculation now includes addon prices on-the-fly for accurate display
Fix
AJAX add to cart not calculating addon prices correctly in cart and mini-cart
Fix
Addon prices being double-counted when “Based on product setting” tax option is selected
Fix
Mini-cart widget displaying incorrect prices after AJAX add to cart
Fix
Multiselect field values not displaying in cart
Fix
Multiselect field prices not calculating correctly
Fix
Two column fields css issue
Fix
Duplicate nonce issue
Fix
Additional Rules
Fix
Documentation
New
Separator field type – Add horizontal divider lines to visually separate sections or fields
New
Separator customization options: color, style (solid, dashed, dotted, double), width, and margin
New
Email, URL, and Phone Number validation for Text field restrictions
New
HTML5 input types (email, url, tel) with mobile keyboard optimization
New
Pattern validation with helpful error messages for Email, URL, and Phone
New
Tag conditions now available in Free version
New
Select All/Clear All buttons for conditions now available in Free version
New
Slider field now available in Free version
Improved
Real-time addon price updates for email, url, and tel input types
Fix
Container query layout issue causing fields to not display on some themes
Fix
Added fallback media queries for better theme compatibility
Fix
Fix datepicker advance pricing, readonly field, and date format issues
Fix
Datepicker Price not showing accurate in product page
Fix
Advance Datepicker Price rules not saved
Removed
Remove custom price formula is unnecessary for datepicker field
New
Complete UI redesign with modern, intuitive admin interface
New
Section management system with comprehensive settings (title, description, styling, custom CSS)
New
Row & Column layout system for organizing fields (single and two-column layouts)
New
Custom database tables for improved performance and data structure
New
Modular JavaScript architecture for better code organization
Removed
Table structure option (Display Structure Format setting) – all addons now use div structure only
Removed
Old CSS files (epofw-admin.css, epofw-public.css) replaced with new structure
Deprecated
epofw_html_table_field_label_td – Use epofw-field-label-html.php template directly
Deprecated
epofw_html_table_field_input_td – Use epofw-field-input-html.php template directly
Deprecated
epofw_field_title – Use template system directly
Deprecated
epofw_field_subtitle – Use template system directly
Deprecated
epofw_field_label_start_td – Use template system directly
Deprecated
epofw_field_label_end_td – Use template system directly
Deprecated
epofw_field_input_start_td – Use template system directly
Deprecated
epofw_html_start_tr_display – Use template system directly
Deprecated
epofw_html_end_tr_display – Use template system directly
Deprecated
epofw_html_start_table_display – Use template system directly
Deprecated
epofw_html_end_table_display – Use template system directly
Deprecated
epofw_before_display_structure (Premium) – Display Structure Format setting has been removed
Deprecated
epofw_after_display_structure (Premium) – Display Structure Format setting has been removed
Deprecated
epofw_field_before_title (Premium) – Use template system directly
Deprecated
epofw_field_after_subtitle (Premium) – Use template system directly
Compatible
Compatible with WooCommerce 10.4.x
Compatible
Compatible with WordPress 6.9.x
Compatible
Compatibility update for WooCommerce 10.3.x
Compatible
Compatibility update for WordPress 6.9.x
Fix
Variation price not updating in the subtotal when switching variations
Fix
Logical field not displaying for the Textarea field
Fix
ImageSwitcher not uploading files
Compatible
Compatible with WooCommerce 10.1.x
New
Configuration add-on options in a modal popup on the Shop page for simple products.
Compatible
Compatible with WooCommerce 10.0.x
Fix
Conditional logic issue with switch, slider and number field
Fix
Fixed quantity issue with addon
Fix
Fixed subtitle type selection issue
New
Added nonce and validate nonce for epofw product adodns
Get notified about new releases
We’ll email you when we ship updates to your plugins.