ez Form Calculator - WordPress plugin

ez Form Calculator - WordPress plugin


ez Form Calculator is an intuitive multi-purpose form creator for WordPress. You can create simple form calculators, advanced cost estimators or extensive contact forms for both yourself and your customers.

Easily add basic form elements like checkboxes, dropdown menus, radio buttons etc. with only a few clicks.

Each form element can be assigned a value which will be calculated automatically.

Form submissions can be sent to both admin and customer with individual texts. The plugin can create PDF files from submissions and attach them to emails automatically.

ez Form Calculator preview

Live Demo

Backend (sandbox site)

Username: demo
Password: demo

PayPal Demo
WooCommerce Demo
Free version




Conditional Actions

Conditional Actions

Versatile Usage

Media agencies: customers can submit their needs (like logo creation, websites etc.) directly.

Photography studios: portraits, outdoor or indoor shooting – let your customers decide online.

Event managers: save time by adding elements your customers can choose from like amount of people, menu type, date etc..

Table rate shipping: users can calculate their shipping costs without searching through an endless table.

Real estate: customers can configure their future house immediately.

Savings calculator: create savings calculator easily, e.g. LED wattage calculator, service costs etc.

Charity organizations: create a donation system within minutes!

And many more! Increase your customers satisfaction with ez Form Calculator.


“With a user friendly interface, exceptional form creation features and an affordable price that is lower than Gravity forms, in my opinion, ez Form Calculator is a great plugin to add to your development tools. The plugin has all the features found in Gravity forms (including their premiuma add-ons) [...]” –

What customers say

ezfc review ezfc review ezfc review ezfc review

Official Extensions


Please make a backup of your forms / database before updating.

In case you update via WordPress, you need to check “Keep data after uninstall” in the settings page. After that, you can uninstall the old version and install the new one afterwards.

See the WP update guide for further details.

Full changelog

Version – 2nd November, 2017
* Fixed: number slider did not show up on certain WP sites
* Fixed: form layout fix - all forms have the CSS property max-width set to 100% from now on so the form is contained in the viewport
* Fixed: submission message did not show when input values contained a percent sign

Version – 23rd October, 2017
* Added: custom content can be added to the summary function. Placeholders will be replaced by the submitted values
* Added: form loading text: show a loading text before the form is loaded. This option can be changed in the global settings > customization section.
* Added: shortcodes can be used in PDF content
* Added: options can be manually sorted via drag’n’ drop now
* Added: vertical slider for numbers elements
* Added: condition selected_index (selected option index for dropdown / radio / checkbox elements)
* Added: conditional value __self__ (sets the target value to the current element’s value)
* Added: quick-add conditional rows for each option (relevant for dropdown / radio / checkbox elements)
* Added: form loading indicator (can be toggled in the global settings)
* Added: total price prefix / suffix option
* Added: daterange_single for daterange elements: useful if you want to calculate the number of days from a specified date. Use the placeholder __today__ in the value field to set today’s date (datepicker and daterange element only).
* Added: trailing zeros price format, e.g.: 13,00 –> 13,-
* Added: custom css for each form (styling section)
* Added: value_attribute gets the value of the current WC product attribute
* Added: sqrt math operator
* Added: elements can be added to current form in the backend (action bar)
* Added: values from ACF can be retrieved in the value element option via acf:valuename
* Improved: file uploads are now shown in a list and can be deleted by user interaction
* Improved. WC product price is now retrieved internally
* Fixed: custom form styling is now loaded correctly
* Fixed: available days for datepicker element + blocked days
* Fixed: MailChimp integration
* Fixed: conditional chain target was sometimes lost upon saving or exporting forms
* Fixed: calculation priority was sometimes lost upon saving
* Fixed: email verification in backend email recipients was wrong (i.e. multiple emails were checked incorrectly)
* Fixed: calculation with custom JS element was wrong when it was hidden
* Fixed: expanded group toggle
* Fixed: WC edit link
* Fixed: Stripe payment dialog layout
* Fixed: division by 0 returned nothing instead of 0 value
* Fixed: CSS styling for long option labels
* Fixed: date / time placeholder now retrieves their values from WordPress settings
* Fixed: backend import dialog

Version - 18th July, 2017
* Added: PDF page break placeholder {{page_break}}
* Fixed: submit message didn't show sometimes
* Fixed: chart fix
* Fixed: discount percent calculation
* Fixed: pips had no effect when clicked
* Other: ezfc_form_id text on WC checkout removed
* Other: updated to dompdf v0.8.0

Version - 3rd July, 2017
* Added: forwarded values now contain the price as well as the formatted price (params: price and price_f)
* Added: random values can be set in the value element option with __rand__
* Added: required elements which are hidden in groups will now be revealed automatically if they failed to validate
* Changed: duplicated elements will now be put below the selected element
* Fixed: date range element restricted maxdate falsely
* Fixed: register license page
* Fixed: price request
* Fixed: payments didn't work properly sometimes
* Fixed: backend colorpicker
* Fixed: multiple custom JS elements had the same function name on certain servers
* Fixed: css classes weren't included properly for step elements
* Fixed: listen for external values didn't work properly sometimes

Version - 22nd June, 2017
* Added: option to show/hide success text after submission
* Fixed: spacer didn't work properly in some themes
* Fixed: price scroll fix

Version - 15th June, 2017
* Added: Nested calculation without any placeholders, e.g: x+(y-(z/a))
* Added: 'selected' and 'not selected' conditional operators added which check for a single selected checkbox. radio button or dropdown option
* Added: batch edit options (for checkbox / radio / dropdown, separator can be individually set in the global settings)
* Added: discount system can now change the factor individually. This is incredibly useful for quantity discounts (check the blog post for v2.9.9.0)
* Added: create "selected" condition for a single option value (checkbox / radio / dropdown) or all at once
* Added: Custom JS function ezfc_functions.get_element_id_by_name(form_id, name)
* Added: Custom JS replaces placeholder __form_id__ with the current form ID
* Added: Global settings custom JS code
* Added: daterange can now calculate workdays only
* Added: {{form_name}} email placeholder
* Added: Set elements can be allowed whether to read zero value or not
* Added: target value can be conditionally set to the current element's value
* Added: total price can now be conditionally shown or hidden
* Added: nested calculation templates
* Fixed: condition activate/deactivate
* Fixed: multiple conditions check (conditional chain)
* Fixed: SMTP can now mail to multiple email addresses
* Fixed: add to Mailchimp list
* Fixed: uploaded files couldn't be downloaded on certain webservers
* Fixed: conditional hidden elements were sometimes calculated incorrectly
* Fixed: ReCaptcha
* Fixed: daterange now checks for min/max days in the backend
* Fixed: Stripe payment
* Fixed: responsive layout for default-alternative theme

Version - 16th April, 2017
* Added: visual indicator for opened elements
* Fixed: when calculating with targets, target factors were always calculated even though it should be the "raw" value. An option has been added to calculate targets without their factors (use raw target value without factor)
* Fixed: restrict checkboxes didn't work when using images
* Fixed: images weren't displayed in the previous version
* Fixed: PayPal payment
* Fixed: when dealing with required conditional elements (conditional hidden) and disabled dropdown / radio / checkbox options, the form couldn't be submitted

Version - 2nd April, 2017
* Fixed: calculations when using target value with subtotal ( /!\ this might change calculations in your current forms /!\ )
* Added: set email recipients conditionally
* Added: attach files to customer emails
* Added: use relative or absolute URLs when using tinyMCE
* Added: send emails for WooCommerce orders separately (BETA)
* Added: Visual Composer widget
* Added: "required text" as well as "required element text" form options added so each form might have a separate required element error message (useful for i18n forms). These can be found in the form options > Layout section
* Fixed: file uploads: some files with allowed extensions couldn't be uploaded. Also, when a file was uploaded, additional files can be uploaded now.
* Fixed: submission was not possible sometimes when using steps
* Fixed: installation failed on servers without MySQL InnoDB engine
* Fixed: reset button caused an error
* Improved: Stripe integration (now removes whitespaces in secret / public key; checks if Stripe payment is loaded from a different class / plugin)
* Improved: number elements only accept numbers and decimal points (i18n aware)

Version - 27th January, 2017
* Hotfix: form submission

Version - 27th January, 2017
* Added: network chart to easily view element relationships
* Added: minumum / maximum amount of selectable checkbox options
* Added: element option 'value_external_listen': if using an external value, this option determines whether it should listen to a change of the external element or not
* Changed: default subtotal add_to_price value set to 'Partially'
* Fixed: calculation with target value now have 3 different methods 
* Fixed: calculate_when_hidden will be checked when calculating with target elements
* Fixed: customer emails were also sent to admin when using SMTP
* Fixed: payment element didn't use the correct user choice
* Fixed: some conditional operators didn't function properly (bitwise operators)
* Fixed: scroll to step option didn't function properly
* Fixed: reset button didn't reset number sliders
* Fixed: PayPal error Transaction refused because of an invalid argument
* Fixed: some placeholders weren't used in PayPal success message / email.
* Fixed: PHPMailer updated

Version - 22nd November, 2016
* Hotfix when updating through WordPress plugins page

Version - 22nd November, 2016
* Added: SMTP anonymous authentication
* Added: "not between" and "not in" conditional operator
* Fixed: price calculation when using raw target option values (dropdown, radio, checkbox)
* Fixed: price calculation when using a comma as decimal point for elements with options (dropdown, radio, checkbox)
* Fixed: scroll offset fix
* Fixed: payment dialog name input length fix
* Fixed: calculation with precision
* Fixed: extensions fixed (discount extension cause the form to malfunction)

Version - 12th November, 2016
*** Error 500: use PHP version 5.3.0 or above for a quick workaround
** Price calculation fix: since the calculation routine has changed in v2.9.7.0, using only the calculated values without overwriting the price was impossible. This is now fixed in v2.9.7.2 with the element option add_to_price: Partially.
* Added: element option is_number for calculation elements. In previous versions, the element option is_currency was used to determine whether to actually use numbers (or floats) for conditional actions. Now, is_number will take care of this.
* Added: IP placeholder {{ip}}
* Added: styling settings (label font size, element spacing)
* Added: JS function ezfc_functions.price_format returns the calculated form price with proper formatting
* Added: JS trigger: ezfc_forms_loaded when a form was initiated
* Added: added filter: ezfc_success_text
* Added: each element option contains a link to the relevant documentation page (click on the question circle)
* Changed: pressing enter doesn't submit the form anymore
* Fixed: conditional action is visible / is hidden works correctly now
* Fixed: correct error message when license couldn't be registered
* Fixed: utf8 email encoding
* Improved: performance when saving / importing / duplicating forms (~10x faster)

Version - 14th October, 2016
* Added: card name holder option to show the card holder name for Stripe payments
* Fixed: 500 error

Version - 14th October, 2016
** Important change: element calculation has changed due to bugfixes. You can still use the old calculation routine in the global settings -> "Other" section and change the option "Calculation version" to "v2.9.6.1" **
* Added: 4 new themes (slick-applegreen, slick-blackwhite, slick-darkblue, slick-mauve)
* Added / fixed: calculation rows may now accept the raw input value or the calculated value
* Added: option to open form automatically on the plugin page
* Added: option to update WooCommerce cart directly after a product was added
* Added: PDF attachment name may now contain placeholders such as {{invoice_id}}, {{id}} etc.
* Added: remote value (fetched by value_http) can now parse JSON data via value_http_json (iterate through JSON objects with dots, e.g.: )
* Added: conditional "once" operator - do conditional action only once per form
* Changed: default theme changed to "slick" 
* Fixed: PDF files were sometimes attached two times
* Fixed: template browser layout
* Fixed: daterange element is now responsive
* Fixed: previewing forms in WP backend caused a JS error
* Fixed: conditional "between" operator fixed
* Fixed: drag'n'drop elements were added when out of bounds
* Fixed: themes now support SSL connections (fixed mixed content loading)
* Fixed: number formatting for non-currency elements (which will use the precision option now)
* Fixed: payment element options couldn't be removed
* Fixed: timepicker steps
* Fixed: placeholder element now have no margin/padding anymore
* Other: Italian translation added
* Other: updated to dompdf v0.7 which supports cyrillic characters for PDF files

Version - 6th September, 2016
- Added: file types can be manually set for file uploads
- Added: groups can be duplicated
- Added: pdf attachment filename can be changed in the form options
- Fixed: conditions with text as value were not correctly parsed (you still need to set the element option is_currency to 0 if you want to operate with text values)
- Fixed: stripe payment was forced incorrectly when "stripe_enabled" is set to 'Yes'

Version - 25th August, 2016
- Added: Stripe payment gateway
- Added: page size/orientation option for PDF files
- Added: userdata placeholders can be used in frontend elements, e.g  {{user}}, {{user_email}}, {{user_id}} etc.
- Added: custom regex can be checked before "empty-check" 
- Fixed: backend calculations were sometimes incorrect when using comma as decimal point
- Fixed: conditionals now calculate correctly when using comma as decimal point
- Fixed: calculation issues when using steps and hidden elements

Version - 11th August, 2016
- Fixed: hidden element calculation fix

Version - 09th August, 2016
- Added: email font can be changed (global settings)
- Added: HTML elements can be shown as HTML or HTML code in emails (global settings)
- Added: option to automatically hide required text tooltips
- Added: filters for email header/footer (ezfc_email_header, ezfc_email_header_after, ezfc_email_footer_before, ezfc_email_footer)
- Fixed: backend calculation fix when using comma as decimal point
- Fixed: preselect values for checkbox/radio elements fixed
- Fixed: shortcode can be used for HTML elements in emails
- Fixed: tinyMCE editor in form options is now disabled when deactivated in the global options

Version - 05th August, 2016
- Fixed: factors were sometimes calculated incorrectly
- Fixed: form placeholders can be used in email subjects
- Fixed: "calculate_when_hidden" had no effect when element was positioned in a hidden group
- Fixed: spinner / slider function for numbers didn't work properly when using comma as decimal point
- Fixed: groups can be activated/deactivated conditionally

Version - 14th July, 2016
- Added: add elements from template to current form
- Fixed: subtotal calculation fix when using comma as decimal point
- Fixed: PayPal email text is now used correctly
- Fixed: PDF directory wasn't saved in the options when it wasn't successful after first try. Check "manual update" in the global settings to update the PDF directory (this is not guaranteed to work since some server environments prohibit the plugin to create directories)
- Fixed: redirect timer fix (labelled as seconds but were calculated in milliseconds)
- Fixed: submitting forms by pressing enter in last step caused the form to both submit and move to previous step
- Removed: unnecessary pdf fonts to reduce file size

Version - 04th July, 2016
- Added: add linebreaks to HTML elements
- Added: add_to_price option for Subtotal elements (e.g. show price only but do not add calculated price to the total)
- Added: decimal point in input values will now be detected automatically (depending on the selected decimal point in the global settings)
- Added: max length for input / textarea elements
- Added: star rating element
- Changed: form option "Add linebreaks" changed from nl2br to wpautop in email texts
- Fixed: form was sometimes prevented from calculation when using multi conditionals
- Fixed: PDF files were only attached when the form option "Send PDF to admin" was enabled
- Fixed: WooCommerce didn't calculate the correct price with certain cart items

Version - 26th June, 2016
- Added: invoice ID generation
- Added: max submission value
- Improved: better UI when using large data editor
- Fixed: pdf attachments weren't sent to customer when no admin email address was set
- Fixed: Set element didn't calculate properly

Version - 22nd June, 2016
- Fixed: some forms cannot be loaded due to a JS error

Version - 21st June, 2016
- Added: element type can be changed (e.g. radio to checkbox)
- Added: multiple conditions for one conditional action can be set to "OR" operator so the element triggers the action when at least one condition is true
- Added: new conditional operator "in" will only take action when an element's value is present in a set of predefined values
- Added: large element data editor (can be reverted to the small element data editor in the global settings)
- Changed: redirect after submission option now takes redirect timer into account
- Fixed: collapsible groups expanded option does the opposite (expanded when it should be closed)
- Fixed: empty / not empty condition weren't working properly
- Fixed: using JS in editor prevented the form to be loaded
- Fixed: subtotal showed currency even though the element wasn't set to be currency.
  • Generate forms with visual drag’n’drop-editor
  • Advanced calculation: perform multiple calculations with each form element
  • Formulas like x+y*(a-b) and other nested calculations can be created visually. li>
  • 15+ different form elements like dropdown-menus, checkboxes, datepicker etc.
  • Backend verification for increased security
  • Translation ready (e.g. WPML)
  • File uploads: users can upload single/multiple files and send them as email attachment
  • Conditional logic: show, hide and set values conditionally
  • Discounts: modify price by value ranges
  • Visual email handling with the WordPress editor
  • Import / export forms for easy backups
  • WooCommerce integration: attach forms to products or simply use WooCommerce as payment gateway
  • Generate and attach PDF files in emails from submissions
  • PayPal integration
  • Stripe integration