Super Forms – Drag & Drop Form Builder


Super Forms - Drag & Drop Form Builder - 1

Now available: PDF Generator Add-on!

<a href="" rel="nofollow"><img src="" alt="Super Forms - Drag &#38; Drop Form Builder - 2" /></a>

Free Live Demo:
Click here to try out our plugin!
Available Add-ons:
Check out all official Add-ons for Super Forms!
More information:
Find out more about this plugin on our website!
Getting Started
Read full changelog since Dec 9, 2015 – v1.0.0 :)

Super Forms – Drag & Drop + Column / Grid System

Super Forms - Drag & Drop Form Builder - 3

Super Forms – Conditional Logic

Super Forms - Drag & Drop Form Builder - 4 Super Forms - Drag & Drop Form Builder - 5

Super Forms – Build-in Translation System

Super Forms - Drag & Drop Form Builder - 6

Super Forms – Main Features

Super Forms - Drag & Drop Form Builder - 7

Super Forms – Extra Features

Super Forms - Drag & Drop Form Builder - 8

Super Forms – Add-ons you might like

     Super Forms - Drag & Drop Form Builder - 9          Super Forms - Drag & Drop Form Builder - 10          Super Forms - Drag & Drop Form Builder - 11          Super Forms - Drag & Drop Form Builder - 12          Super Forms - Drag & Drop Form Builder - 13     
     Super Forms - Drag & Drop Form Builder - 14          Super Forms - Drag & Drop Form Builder - 15          Super Forms - Drag & Drop Form Builder - 16          Super Forms - Drag & Drop Form Builder - 17          Super Forms - Drag & Drop Form Builder - 18     

One click install! – Choose any example and start editing instantly!

Super Forms - Drag & Drop Form Builder - 19

Super Forms – Add-ons

Super Forms - Drag & Drop Form Builder - 20


  • PHP version 5.4 or higher


Super Forms is the one and only plugin that you will ever need for your contact forms. This WordPress Plugin is very user friendly when it comes to building forms. With unlimited options you will be able to create any kind of forms. With conditional logic, Multipart elements and tons of customizable options and settings to adjust any color of any element to fit your needs. No matter what theme you have installed Super Forms will fit with it’s color scheme functionality.

See below changelog to find out what work has been put into this plugin since it’s initial release  :)


<strong>Full Changelog:</strong><a href="" rel="nofollow"></a><br />
## PDF Generator Add-on now available! More info here:

- [PDF Generator Add-on](

## Jan 08, 2021 - Version 4.9.573

- **Added:** `WooCommerce Checkout Add-on` option to update Contact Entry status after WooCommerce order completed
- **Added:** Option for google autocomplete to return `The place's name`, `Formatted phone number`, `International phone number` and `Website of the business`
- **Improved:** When using google autocomplete the code will now determine what data is being used in your form, and strip out any unnecessary data from the API request which could considerably reduce costs
- **Improved:** Focus/Filled status for currency field
- **Fix:** JavaScript error on currency field when `Number format` contained space(s)

## Jan 04, 2021 - Version 4.9.572

- **Fix:** Builder UI scrolling bug in Firefox browser causing a continues scroll
- **Fix:** When selecting default items for `Dropdown` element it would still display the placeholder instead of the actual selected item
- **Fix:** US States element contained some incorrectly sorted items by alphabet

## Dec 24, 2020 - Version 4.9.571

- **Fix:** Issue with SMTP on older PHP versions due to WordPress moving the class to a different location

## Dec 22, 2020 - Version 4.9.570

- **Added:** Option for [Address auto complete (google places)]( to specify the types of results to return e.g:
 - `geocode`: return only geocoding results, rather than business results. Generally, you use this request to disambiguate results where the location specified may be indeterminate.
 - `address`: return only geocoding results with a precise address. Generally, you use this request when you know the user will be looking for a fully specified address.
 - `establishment`: return only business results.
 - `(regions)`: return any result matching the following types: locality, sublocality, postal_code, country, administrative_area_level_1, administrative_area_level_2
 - `(cities)`: type collection instructs the Places service to return results that match locality or administrative_area_level_3
- **Added:** Option for [Address auto complete (google places)]( to restrict results by countrie(s) e.g: fr,nl,de (to restrict results by France, Netherlands and Germany)
- **Improved:** `Keyword field` style improvements
- **Improved:** [Auto suggest]( style improvements
- **Improved:** Allow setting `The types of place results to return` to be empty for `Address auto complete` feature, so that all types can be returned when left blank
- **Improved:** Clean up generated PDF datauri, no need to store it in contact entry data in database, it could also cause the database to throw error due to reaching maximum Text/Blob size
- **Fix:** When filtering [Auto suggest]( make sure to preserve any spaces in the search results
- **Fix:** Firefox adaptive placeholders focus automatically getting unfocussed
- **Fix:** When using `Currency` field with a `Default value` make sure the masked is applied upon page load
- **Fix:** When using connected datepickers in combination with a custom `Localization` e.g `Czech` and a min/max connected date, the connection would not function due to difference in date formats
- **Fix:** Multi-part thinking there was still a field that required validation when in fact the field had become conditionally hidden while after the field had thrown a validation error. This caused the form being unable to submit.

## Dec 08, 2020 - Version 4.9.556

- **Fix:** When using double quotes in radio/checkbox/dropdown Labels (when using custom HTML for instance) make sure any backslashes are not saved
- **Fix:** Calculator Add-on conditional logic wasn't working due to new CSS rule `display:fex!important;`

## Dec 02, 2020 - Version 4.9.555

- **Added:** `Default value` setting for `Timepicker` element, this way you can set a default time upon page load
- **Improved:** PDF Generation will now be identical between mobile and desktop, no longer applies bigger font size, and or responsiveness
- **Improved:** `{tag}` regular expression, so that values in a HTML element like `{something like this / and this}` are not being detected as valid `{tags}`
- **Fix:** JS error when using signature element in combination with any top level conditional logic
- **Fix:** WordPress moved PHPMailer class into different location from v5.5 and above. Causing issues for those that had SMTP enabled in super forms.

## Nov 16, 2020 - Version 4.9.550

- **Added:** [Secrets]( to safely store sensitive data on server side, but still be able to retrieve it conditionally and use it in the form settings
- **Fix:** When using Accordion or TAB element and using columns inside the column was not correctly closed in some scenario's
- **Fix:** When using a `Global secret` inside a Hidden fields default value, it would be converted to the underlaying value upon page load
- **Fix:** Problem with datepicker connected to a datepicker that allows a user to choose multiple dates automatically clearing the field value upon selecting dates
- **Fix:** Issue when adaptive placeholders are being used, but are empty, would cause it to be prefixed with numbers "1" or "2" 
- **Fix:** JS error when not using adaptive placeholders

## Oct 22, 2020 - Version 4.9.530

- **New:** PDF Generator will now generate text to make PDF searchable
- **Improved:** Use the build in WordPress PHP Mailer library instead of included one, and removed the library from plugin source code
- **Fix:** Form not loading when using multiple forms on a single page
- **Fix:** Internet Explorer javascript error (added polyfill for promises)
- **Fix:** FireFox 17  issue with adaptive placeholders causing to overlapping placeholder with text from the browsers remembered values (fields history)
- **Fix:** Some PHP Notices/Warnings
- **Fix:** {tags} for PDF filename not working
- **Fix:** When using a field to search previous contact entry a JavaScript error is thrown causing the form to not load.
- **Changed:** Default font family is now set to `"Helvetica", "Arial", sans-serif`

## Sep 22, 2020 - Version 4.9.520

- **Added:** When going to next multi-part super forms will remember the last step the user was on so when the user refreshes the page the last step will be opened.
- **Added:** Option to link to a specific Multi-part via URL anchor e.g: `` where `step` is the identifier, `12345` the form ID and `3` the step (multi-part) that needs to be openend/shown upon page load.
- **Added:** Options for `Heading` element to use the WordPress theme styles by setting options to `none` or `-1`, for instance for Font weight, Line height etc.
- **Added:** Options to control font styles (size, line height, font weight) globally (all elements) and for field labels/descriptions specifically, plus with the option to define the font styles on mobile devices (first/second responsiveness based on window/screen width).
- **Fix:** Field placeholder font size not correctly set based on font settings.

## Sep 03, 2020 - Version 4.9.514

- **Fix:** JavaScript error when using conditional validation e.g: `Allow field to be empty > Yes, but not when the following conditions are met`

## Aug 27, 2020 - Version 4.9.513

- **Added:** Setting to turn of the new "Processing overlay/popup" and fall back to the legacy (old) thank you message `Form Settings > Form Settings > Display form processing overlay (popup)`
- **Added:** Prefix `super` to `close` classname for zero conflict policy
- **Improved:** When using the `Popup Add-on` and `Show thank you message` is disabled the popup should automatically close after form submission (this will prevent displaying an empty popup)
- **Improved:** Added timestamp to Contact Entries export file name (solves problem with cached files)

## Aug 13, 2020 - Version 4.9.512

- **WP Requirements Compliant: Maintains items to Envato's current standards for WordPress**
- **Improved:** Regex that looks for {tags} inside HTML element to exclude any tags that include double quote or single quote, because some third party plugin shortcodes might generate HTML with element attributes like `{"something":"here"}` which caused Super Forms to throw a JS error
- **Fix:** HTML element with foreach loop without {tags} inside Multi-part not being updated
- **Fix:** Make sure that third party plugins do not display notifications on the builder page that are not using the build in admin notice function within wordpress but a custom one
- **Fix:** Responsiveness when using multiple form on a single page

## Aug 04, 2020 - Version 4.9.508

- **Fix:** Multi-part autostep function passed incorrect parameter causing problems with checkboxes and other selectable elements

## Aug 03, 2020 - Version 4.9.507

- **Fix:** Google Maps not loading due to JavaScript error
- **Fix:** Several other JS errors fixe

## Jul 31, 2020 - Version 4.9.506

- **Fix:** JS error with Multi-part element when `Check for errors before going to next step` is enabled

## Jul 30, 2020 - Version 4.9.504

- **Improved:** Code refactoring
- **Improved:** Responsiveness for Radio/Checkboxes with Grid layout enabled
- **Fix:** When using radio/checkbox/dropdown with values like `0.2`, `0.20`, `0.200` and the option with `0.2` was set as the default value the other options should not be set as default value on the front-end. Fixed by enabling `strict` on `in_array()` function
- **Fix:** When using address autocomplete with mapped fields and adaptive placeholder the "filled" status should be activated for the field

## Jul 22, 2020 - Version 4.9.503

- **Fix:** Allow user to trial Add-on even when on a non-secure connection (http)

## Jul 21, 2020 - Version 4.9.502

- **Improved:** Envato Quality Indicator Application
 - Removed prefix from third-party assets handles
 - Renamed asset handles to match filename, and without extension
 - Missing translatable text strings
 - Escape translatable strings
 - Remove all unused code
 - Escape all translatable strings
 - Use `.on()` rather than `.click()`, `.bind()`, `.hover()`, `.submit()` etc.
- **Fix:** Clear form after submission throwing javascript error

## Jul 20, 2020 - Version 4.9.501

- **Fix:** Compatibility with PayPal Add-on (not redirecting to PayPal checkout page after form submission)

## Jul 17, 2020 - Version 4.9.500

- **NEW:** PDF Generator Add-on, read the docs for more info here: [PDF Generator Add-on](
- **Added:** Documentation for [Register & Login Add-on](
- **Added:** Documentation for [Zapier Add-on](
- **Added:** Documentation for [MailChimp Add-on](
- **Added:** Documentation for [Mailster Add-on](
- **Added:** Documentation for [Mailster Add-on](

## Jun 29, 2020 - Version 4.9.471

- **Improved:** Tooltips are now also triggered by both `click` and `hover` events
- **Improved:** Resonpsiveness for radio/checkbox items when using Large or Huge field size
- **Fix:** Multipart autostep not working when having hidden fields at the bottom of a step
- **Fix:** When using a predefined tag inside `Default value` setting in combination with a button with action set to `Clear/Reset form` it was replacing the field value to the raw {tag} instead of it's value  - **Fix:** Bug with dynamic columns and field name incremental

## Jun 11, 2020 - Version 4.9.466

- **Added:** New operator `??` (contains) and `!??` (does not contain) for E-mail/HTML if statements.
- **Added:** Option for datepicker to specify dates or date range to override the `Exclude days` setting. This way you can for instance exclude all Mondays, and Tuesdays, with the exception for some hollidays.
- **Improved:** Country strings are now translation ready (used on Country element)
- **Improved:** Google Map element responsiveness on mobile devices
- **Improved:** Google Map indicator in back-end to notify users that the Map will only be generated on the Front-end
- **Fix/Improved:** When using third party shortcodes inside HTML element and it does not contain any {tag} we shouldn't refresh the HTML content. This would cause losing any initialized DOM elements. This also should improve speed for forms that use a lot of HTML elements but didn't contain any {tags}
- **Fix:** PHP throwing Fatal error when using `Retrieve method` > `Post type`
- **Fix:** 3 demo forms were no longer installing properly due to invalid serialized array
- **Fix:** Issue with slider field inside dynamic column, not updating the amount label position relative to "dragger" when dynamic column becomes visible. Issue also applied to Accordion/Tab element.

## May 29, 2020 - Version 4.9.460

- **Added:** Option for Google Map element to set region code e.g `nl`, `de`, `uk`, `us` etc.uu
- **Added:** Option for Google Map element to set/adjust `zoom`
- **Added:** Option for Google Map element to enable/disable `UI (buttons)`
- **Added:** Option for Google Map element to `draw Route` from address A (origin) to address B (destination)
- **Added:** Option for Google Map element to optionally display the `directions panel` (list with route instructions)
- **Added:** Option for Google Map element to set it's travel mode `DRIVING`, `BICYCLKING`, `TRANSIT`, `WALKING`
- **Added:** Option for Google Map element to populate `distance` to field (including Calculator Add-on)
- **Added:** Option for Google Map element to populate `duration` to field (including Calculator Add-on)
- **Added:** Option for Google Map element to define the unit system `METRIC` or `IMPERIAL`
- **Added:** Option for Google Map element to draw Route with `Waypoints` (stops in between the route)
- **Added:** Option for Google Map element to optimize route with waypoints (to rearrange it in a more efficient order)
- **Added:** Option for Google Map element to avoid `Ferries`, `Major highways`, `Toll roads` (if possible)
- **Fix:** Incorrect incrementing field names in dynamic columns

## May 21, 2020 - Version 4.9.455

- **Fix:** MySQL error in prepare() statement when unique code is generated
- **Fix:** Issue with browser `Back` button remembering the uniquely generated code (Hidden field with Unique code generation enabled), should instead generate a new one so that it is a unique code.
- **Fix:** Limit for dynamic column was no longer working
- **Fix:** Fix for datepicker, user was able to click days in next and previous months while they shouldn't be able to do so

## May 13, 2020 - Version 4.9.450

- **New:** `Secure file uploads` setting under `Super Forms > Settings > File Upload Settings`
 - option to define a custom directory name relative to the site root e.g:
  `wp-content/uploads/superforms` _the default upload directory for file uploads_
  `my-custom-public-folder` _custom file upload directory outside wp-content directory (which is still publically accessible but will not store in Media Library)_
  `../my-custom-private-folder` _secure file uploads_
  `../../my-custom-private-folder` _secure file uploads when WP is installed in a subdirectory_
 - optionally choose to organize uploaded files in a month/year based structure e.g: `2020/05`
 - option to hide file uploads from the `Media Library` even if the file was uploaded to a directory inside wp-content directory
  - Note that if you are uploading files outside the root of your site then files will not be uploaded to the Media Library by default
 - only allow logged in users to download secure/private files
 - only allow specific roles to download secure/private files
- **New:** Option to remove hyperlinks (URLs) of file uploads in the email list
- **New:** Option to remove the uploaded files in the email list `{loop_fields}` (this will still send it as an attachment though)
- **New:** Option to hide file uploads from Media Library via `Super Forms > Settings > File Upload Settings`
- **New:** `PayPal Add-on`: option to send custom email after payment completed
- **New:** `PayPal Add-on` & `Register & Login Add-on`: option to update the registered user role after payment completed
- **New:** `Register & Login Add-on`: option to change user role for action `Update existing user`
- **New:** `WooCommerce Checkout Add-on` & `Register & Login Add-on`: option to update the registered user role after payment completed
- **New:** `WooCommerce Checkout Add-on`: option to populate checkout fields more easily with native setting, matching the field names e.g `billing_first_name` will still work and will be the `leading` value if it exists. Otherwise you can define values like so in the settings: `billing_first_name|{yourfieldnamehere}`. You can define both `billing_` and `shipping_` fields, both will work.
- **New:** Added `Custom regex` validation option for `Textarea` element
- **Added:** New filter hook `super_export_selected_entries_filter` to alter data format, e.g: if you wish to change the date format or seperate date and time and put them in a seperate column
- **Added:** New option under `Super Forms > Settings` called `Global Overriding` where you can now "override" specific settings for all forms. This gives you more power/control in case you need the same setting for all of your forms. These option will not actually replace or override the individual form setting in the database, but simply ignore them. This means you can simply revert back to whatever setting was previously used on the individual form. _In a future version we might add an option allows including/excluding specific forms from being overridden based on their form ID_
- **Added:** 2 new raw code options under `Code` TAB on builder page: `Form settings` and `Translation settings` in an improved user friendly JSON format
- **Added:** Option to send an SMTP test email from within the settings that will show a log and any possible errors returned by the SMTP server
- **Added:** Option to enable RTL (Right to left) layout for E-mails
- **Fix:** Issue with regex backslash and with custom CSS backslashes
- **Fix:** Form/User Locker would stil display a message even when disabled
- **Fix:** Brand icons not working on `Button` element
- **Fix:** Issue inside `Translation mode` where the form would say that there are 2 duplicate field names (which was due to the field names being empty)
and Contact Entry
- **Fix:** When using field typ `number` on a `Text` field make sure the `Max/Min number` settings are correctly added as min/max attributes
- **Fix:** JavaScript error when using Accordion/TABs element
- **Added:** Two new options for datepicker element to allow users to select multiple dates independently from eachother
 - `Allow user to choose a maximum of X dates` _Defaults to 1, which allows a user to only pick 1 date)_
 - `Require user to choose a minimum of X dates` _(Defaults to 0, which allows a user to pick no date at all)_
- **Fix:** Conflict when using multiple datepickers and one of them had `Allow users to select work days` or `Allow users to select weekends` disabled causing dates for other datepickers to be affected
- **Fix:** `Print` action not working for Button element
- **Fix:** Custom regex validation would still be applied even though validation was set to `None`
- **Fix:** Problem with dropdown default selected items not overiding placeholder value
- **Fix:** Slider CSS conflicting with possible other site elements, added `super` prefix
- **Fix:** JavaScript error in back-end when updating timepicker element
- **Fix:** Timepicker not popping up due to incorrectly typeof check
- **Fix:** Max selection for `Keyword field` not working
- **Fix:** Predefined tags inside `Default value` not working with translated forms
- **Improved:** Super Forms now remembers the last TAB you where editing a field in. If this TAB exsists for the next field you edit it will open in this specific TAB. This way you can faster edit many of the same settings that are below the same settings TAB. Upon page reload it will still remember. The same goes for the form settings TABS and the last openend panel
- **Improved:** Better readability for font size on larger resolution monitors
- **Improved:** When `Delete files from server after form submissions` is enabled we should not add hyperlink on the filename inside the E-mail
- **Improved:** When using `Elementor` only enqueue all scripts/styles when in preview/editor mode
- **Improved:** Show where the error is when using TABs or Accordion elements (just like with Multi-parts)

## Mar 09, 2020 - Version 4.9.400

- **NEW:** `Adaptive Placeholders`, can be enabled under `Form Settings > Theme & Colors > Enable Adaptive Placeholders`
- **Added:** `Exclude dates or a range of dates` for `Datepicker` element to disallow users from selecting specific dates, examples:
 - `2020-03-25` (excludes a specific date)
 - `2020-06-12;2020-07-26` (excludes a date range)
 - `01` (excludes first day for all months)
 - `10` (excludes 10th day for all months)
 - `Jan` (excludes the month January)
 - `Mar` (excludes the month March)
 - `Dec` (excludes the month December)
- **Added:** Localization options for `Datepicker` element:
 `English / Western (default)`, `Afrikaans`, `Algerian Arabic`, `Arabic`, `Azerbaijani`, `Belarusian`, `Bulgarian`, `Bosnian`, `Català`, `Czech`, `Welsh/UK`, `Danish`, `German`, `Greek`, `English/Australia`, `English/UK`, `English/New Zealand`, `Esperanto`, `Español`, `Estonian`, `Karrikas-ek`, `Persian`, `Finnish`, `Faroese`, `Canadian-French`, `Swiss-French`, `French`, `Galician`, `Hebrew`, `Hindi`, `Croatian`, `Hungarian`, `Armenian`, `Indonesian`, `Icelandic`, `Italian`, `Japanese`, `Georgian`, `Kazakh`, `Khmer`, `Korean`, `Kyrgyz`, `Luxembourgish`, `Lithuanian`, `Latvian`, `Macedonian`, `Malayalam`, `Malaysian`, `Norwegian Bokmål`, `Dutch (Belgium)`, `Dutch`, `Norwegian Nynorsk`, `Norwegian`, `Polish`, `Brazilian`, `Portuguese`, `Romansh`, `Romanian`, `Russian`, `Slovak`, `Slovenian`, `Albanian`, `Serbian`, `Swedish`, `Tamil`, `Thai`, `Tajiki`, `Turkish`, `Ukrainian`, `Vietnamese`, `Chinese zh-CN`, `Chinese zh-HK`, `Chinese zh-TW`
- **Added:** Super Forms Widget for `Elementor` plugin. You are now no longer allowed to use a Text widget to render your forms. Instead you must either use the native `Super Forms Widget` or the build in `Shortcode Widget` of Elementor (if you don't an error will be shown)
- **Added:** `PayPal Add-on` - option to conditionally checkout to PayPal, this allows you to optionally let the user pay via PayPal
- **Added:** Option for Dropdown element to choose a `Filter logic` between `Contains` or `Starts with (from left to right)` so that when a user starts typing it either filters from the beginning of the string instead of doing a global search. This is useful for filtering countries, because you would want the user to jump to `Switzerland` when typing `Sw` and not to `Botswana`.
- **Fixed:** {tags} where no longer working on custom URL for `Button` element due to usage of `esc_url()`
- **Fixed:** `Form settings` > `Prevent submitting form on pressing "Enter" keyboard button` was no longer working
- **Fixed:** W3C validation errors
- **Fixed:** JavaScript error with dropdown filter
- **Fixed:** Issue with `Allow field to be empty` not taking effect in combination with for instance `Website` validation method
- **Fix:** Currency field with decimal (precision) set to 0 would return value in cents, 1 would become 0.01 instead
- **Fix:** JavaScript error in Elementor builder interface
- **Fix:** Hidden field could not have a default value of `0` due to the usage of the `empty()` PHP function
- **Fix:** `MailChimp Add-on` - when displaying Groups/Interests loop over all groups instead of just one
- **Fix:** Filter users by role(s) for retrieve method `Users (wp_users)` was not working
- **Fix:** JavaScript error due to new localization feature on datepicker
- **Fix:** Issue with multi-part Next button inheritting the action from the form Submit button causing possible action to become `Clear` or `Print` instead of going to next multi-part section
- **Fix:** Bug with datepicker settings not being applied due to name mismatch/typo e.g `Show week numbers` was always shown even when not enabled
- **Fix:** Remove padding for inactive TAB items for for TAB element with location set to: `Vertical tabs`
- **Fix:** `Popup Add-on` updated GSAP to v3.2.4 (solves conflict with Avada theme)
- **Fix:** Conflicting `Conditional Variable` with `Conditional Logic` causing the items to not properly being saved for the `Text` element
- **Improved:** Radio/Checkbox Label vertical alignment for long text/html
- **Improved:** Allow user to go to previous step in multi-part when `Check for errors before going to next step` is enabled.
- **Improved:** When reading CSV file make sure to remove BOM (Byte order mark)

## Jan 15, 2020 - Version 4.9.200

- **Improved:** UX, better naming convention in regards to validation settings
- **Improved:** Only bind events for TinyMCE editor on those that are inside a Super Form
- **Fixed:** ACF compatibility with none ACF meta keys like `_sku`
- **Fixed:** W3C validator error
- **Fixed:** Multi-part automatically go to next step and prevent going next step
- **Fixed:** Unable to upload file when WordPress is installed under a subdomain

## Jan 07, 2020 - Version 4.9.1

- **Added:** New `Code` TAB to change raw form code, can also be used to export/import forms quickly
- **Added:** Option to conditionally make fields "Readonly/Disabled" with use of columns and conditional logic
- **Added:** Sub option for `Validation` > `Required Field (not empty)` to conditionally make a field required based on other fields values `Allow field to be empty` > `Yes, but not if the following conditions are met`, otherwise field is allowed to be left empty, and can be skipped by the user
- **Added:** `!! Not contains` method for: Conditional logic, Conditional variables and Conditional validations
- **Added:** Option for autosuggest to sort items by menu order
- **Added:** Option for autosuggest to sort items by price for WooCommerce products
- **Added:** Option for autosuggest feature to search WooCommerce products by both title and SKU
- **Added:** Option to optionally display Prev/Next arrows for TABs element
- **Added:** Compatibility for {tags} usage on Accordion title and description
- **Fixed:** File upload elements always throwing alert in the builder that the form has `Duplicate field names`
- **Fixed:** Bug with TAB/Accordion element inside Dynamic Column in combination with "Save form progress" 
- **Fixed:** Bug with advanced tag {field;label} not populated correctly for radio/checkbox/dropdown items upon page load
- **Fixed:** Bug with Google Address Autocomplete and Distance Calculation sometimes parsing wrong address
- **Fixed:** `Signature` wasn't being displayed due esc_attr() function, replaced it with esc_url() and add `data` as an excluded protocol
 - this was caused after Envato requirements update
- **Fixed:** [E-mail foreach loops]( on HTML element not working with Text field with keyword feature enabled
- **Fixed:** JS error related to HTML element that has conditional logic and put inside a dynamic column
- **Fixed:** Export/Import missing translation languages
- **Fixed:** Text field with `Enable keyword field` in dynamic columns causing javascript error
- **Fixed:** Masked input in combination with `Uppercase transformation` was not working
- **Improved:** Prevent from going to next/prev TAB via keyboard input `<`, `>` keys when a field is focussed
- **Improved:** Only allow number input for Quantity field
- **Improved:** JavaScript code optimization
- **Improved:** `Contact Entry Search` feature for `Text field` to better populate form with all the data
- **Improved:** `Signature Add-on` - when using `Contact Entry Search` the signature will be redrawn based on the entry data
- **Improved:** Print Contact Entries will now display Images with the following file types `jpeg, jpg, gif, png`

## Nov 06, 2019 - Version 4.8.10

- **Fixed:** JavaScript error when using masked input
- **Fixed:** JavaScript error for datepicker and timepicker elements inside dynamic column
- **Fixed:** When sending custom HTML emails and `Automatically add line breaks (enabled by default)` is disabled, make sure to still parse Textarea fields with proper line-breaks
- **Improved:** custom Ajax handler, causing to much trouble because some hosts don't know how to work with it, each host acts differently and each security plugin too. Now will always use the default WP Ajax handler.

## Oct 31, 2019 - Version 4.8.0

- **Improved:** Fall back to default WP ajax request when server returns an error. For instance, iThemes security might block requests when "Disable PHP in Plugins" is enabled.
- **Improved:** When exporting entries to CSV under `Super Forms > Contact Entries > Export to CSV` it will remember sorting and selection of fields on the client
- **Added:** [Mailchimp] Option to define "Tags" to be saved along with the subscriber (this is different from Interests, which can be selected by the user himself)
- **Added:** [Super Forms] accordion border radius and margins settings
- **Added:** [CSV Attachments] display an error message when unable to write file
- **Added:** `Slider` layout for Checkbox/Radio elements
- **Added:** 3 new dropdown fields `Country`, `Country ISO2`, `Country (FULL)` which will allow to retrieve ISO2, ISO3, Official name and Short name of a country
 - will no longer use the `contries.txt` to retrieve items, instead you can now use the `Custom items` method to change the list.
 - the old `Country` element still exists and is available for backwards compatibility, it is advised to start using the new `Country` element(s)
- **Added:** New setting `Do not create a new Contact Entry when an existing one was updated` when `Enable contact entry updating` is enabled
- **Added:** Ability to update the users last Contact Entry (without a "Search Contact Entry" field or $_GET $_POST key) simply by adding a `Hidden` field named `hidden_contact_entry_id` with {tag} `{user_last_entry_id}` as it's `Default value`
- **Added:** New tag `{last_entry_id}` to retrieve the latest `Contact Entry ID` that was created for the form
- **Added:** New tag `{user_last_entry_id}` to retrieve the latest `Contact Entry ID` that was created by the logged in user
- **Added:** New tag `{user_last_entry_status}` to retrieve the latest `Contact Entry status` that was created by the logged in user
- **Fixed:** Issue with Mailchimp Add-on conditional logic not working (only when placed in column with conditional logic)
- **Fixed:** Issue with dynamic column and Hidden field containing default values (wouldn't update properly)
- **Fixed:** Slider dragger incorrect position upon page load when intially conditionally hidden
- **Fixed:** Custom error message not working for file upload element
- **Fixed:** Column system issue in combination with dynamic column system and save form progression causing incorrect closing of columns
- **Fixed:** PHP Warnings and Notices
- **Fixed:** When POST method is enabled values containing string "0" where not populated because script thought is was an empty variable due to use of !empty() function.
- **Fixed:** On form load checkbox default value was not set based on "Default selected options" causing the validation to think the field was empty, while it was not.
- **Fixed:** JS error Cannot read property 'trim' of undefined
- **Fixed:** Not being able to submit the form for a second time when "Retrieve form data from users last submission" is enabled in combination with a File upload element.
- **Fixed:** WooCommerce Order Search (populate form with order data) was missing class "super-item" causing click event not being fired
- **Fixed:** Issue with Dynamic columns that contain columns with conditional logic in combination with "Save form progression" not correctly updating connected fields, causing conditions not being applied correctly.
- **Fixed:** Making sure that when a user is deleted with the option "Delete all content" enabled, the Contact Entries and Forms created by this user will also be deleted.

## Aug 18, 2019 - Version 4.7.63

- **Added:** `US States` dropdown element
- **Fixed:** Make sure the `Default value` for `Rating` element is of type `int`.
- **Fixed:** Bug with `Dynamic Columns` in combination with `Retrieve form data from users last submission` upon adding a new dynamic column the `Default value` would be incorrect.
- **Fixed:** Bug with `Signature Add-on` and `Color picker` not initializing upon dragging it on the canvas (due to Envato rules `¯_(ツ)_/¯`)
- **Fixed:** Bug with checkbox/radio items not being updated upon "Update Element" 
- **Removed:** Skype element, API doesn't exist anymore
- **Added:** [Data Storage](data-storage) section in documentation describing where specific data being stored by super forms
- **Added:** Option to load list into radio/checkbox/dropdown based on custom meta data field of the current post
- **Improved:** Rephrased "Current page, post or profile author meta data" to "Current author meta data" 
- **Changed:** temporary disabling nonce check because it is causing a lot of problems with websites that are caching their pages.
- **Fixed:** Textarea not populating with Entry data
- **Fixed:** Allow email addresses to contain a "+" symbol
- **Fixed:** When no variable conditions where met, do not empty the field, but rather keep the value it currently has (this makes sure it won't conflict with `?contact_entry_id=XXXX` when form was populated with entry data or possibly other data that was set via a GET parameter)
- **Fixed:** issue with default radio button option and conditional logic on page load not affected
- **Fixed:** Missing arguments for `generate_random_code()`
- **Fixed:** Bug when both `Autosuggest` and `Keyword` is enabled for Text field

## Jun 26, 2019 - Version 4.7.40

- **Added:** Option to choose which Image Library to use to scale and orient images via `Super Forms > Settings > File Upload Settings`
- **Added:** Option to delete files from server after form submission via `Super Forms > Settings > File Upload Settings`
- **Added:** Option to delete associated files after deleting a Contact Entry via `Super Forms > Settings > File Upload Settings`
- **Fixed:** Due to Envato plugin requirements not allowing us to to prefix `$handle` with `super-` to enqueue scripts, it caused issues with plugins loading old versions of Font Awesome, resulting in none existing icons. This is unacceptable and we decided to change the $handle to `font-awesome-v5.9` so technically it doesn't have a prefix, and it makes sure that the latest version of Font Awesome will be loaded no matter what (when needed of course), even when a theme or plugin loads an older version.
- **Fixed:** `$_GET` parameters containing "Advanced tag values" not working on dropdown/checkbox/radio
- **Fixed:** Calculator Add-on JavaScript error `split()` is not a function on none string data
- Fix issue with email settings translation string escaping HTML resulting in raw HTML emails
- Fix $functions undefined (for none bundle super forms)

## Jun 15, 2019 - Version 4.7.0

- **Compliance:** Working towards Envato WordPress Requirements Badge/Compliance
 - Calculator Add-on: now using MathJS library for improved security when doing calculations
 - Passed all JavaScript files through `JShint` excluding third party libraries3
 - Escaping all Translatable strings
- **Added:** Missing Font Awesome 5 brand icons & updated Font Awesome to v5.9
- **Added:** Option to define a so called `specifier` to position the counter for `Email Labels` when using Dynamic Columns, example:
 - `Product %d quantity:` would be converted into `Product 3 quantity:`
 - `Product %d price:` would be converted into `Product 3 price:`
- **Added:** Compatibility for TinyMCE Visual editor to count words with Calculator Add-on
- **Added:** Option to specify field type for "Text" fields, allowing to determine what "Keyboard Layout" it should use on mobile devices. To name a few:
 - `email` (for email keyboard layout)
 - `tel` (for phone number keyboard layout)
 - `url` (for URL keyboard layout)
 - `number` (for number keyboard layout)
 - `date` (for keyboard layout to choose a specific date
 - `month` (for keyboard layout to choose a specific month)
- **Added:** A custom Ajax handler for faster Ajax requests (significant speed improvement for building/editing forms)
- **Added:** Translation feature (allows you to translate your form into multiple languages, this also includes translating specific form settings)
*when in translation mode, you won't be able to delete and change the layout of the form, just the strings of each element and the form settings*
- **Added:** Compatibility for HTML elements to handle {tags} with regexes `*` (contains), `$` (ends with) and `^` (starts with)
- **Improved:** Custom ajax handler compatible with older WP versions (tested up to v4.7)
- **Improved:** Mailchimp error debugging and other small improvements
- **Improved:** Speed improvement upon page load, now skipping calculator elements of which the value didn't yet change, so no need to loop through any elements connected to this field
- **Improved:** Currency field will now have field type set to `tel` for phonenumber keyboard layout to enter numbers easily on mobile devices
- **Fixed:** Text field with variable condition should not be reset/applied upon submitting form due to possible custom user input
- **Fixed:** CSV Attachment Add-on not applying correct delimiter from settings
- **Fixed:** issue with new ajax handler stripping slashes (it shouldn't be doing this) was resulting in issues with HTML element and line breaks
- **Fixed:** PHP notice about undefined variables
- **Fixed:** Issue with autosuggest keywords on mobile phone when autofill is applied by the browser, it would not validate the field correctly
- **Fixed:** Issue with new ajax handler not working in combination with active WC installation
- **Fixed:** Signature attachment not being a valid bitmap file when sending email over SMTP
- **Fixed:** Bug fix conditional logic when setting $_GET on radio buttons
- **Fixed:** Radio buttons not responsding to predefined `$_GET` or `$_POST` parameters
- **Fixed:** When doing custom POST and "Enable custom parameter string for POST method" is enabled file URL's where not parsed as data
- **Fixed:** Bug in Ajax handler, make sure to not load external unrequired plugins, because they might depend on functions that we didn't load
- **Fixed:** Compatibility for Ajax handler with Multisites
- **Fixed:** reCAPTCHA v2 bug
- **Fixed:** HTML element in back-end not wrapping words
- **Fixed:** Calculator add-on not working when using both regex and advanced tags like so: `{_option$;3}` or `{server_*;4}` or `{server_^;2}` etc.

## Apr 22, 2019 - Version 4.6.0

- **Improved:** Update plugin checker system
- **NEW:** Email Reminders Add-on
- **Added:** Option to retrieve timestamp with {tag;timestamp} for datepicker elements
- **Added:** Option for dropdowns and checkboxes etc. to filter based on post status for retrieve method `post_type`
- **Added:** reCAPTCHA v3 support
- **Added:** Option to hide Multi-part steps on mobile devices (useful to keep things clean when working with a lot of multi-parts)
- **Added:** Possibility to do if statements inside if statements and to use `&&` and `||` operators. Works for both HTML elements and email bodies. Example:

 if({field}=='1' && {field2}!='2'):
  if({age}==16 || {age}==17):
   Show this text only when age is sixteen or seventeen, and only when field equals 1 and field2 not equals 2

- **Added:** New option `Include dynamic data (enable this when using dynamic columns)` for sending POST data, this can be used with for instance `WebMerge` to loop through dynamic columns when creating PDF's
- **Added:** Conditional logic field selected can now be entered manually, this allows you to use advanced tags to get a field value, but it also allows you to combine 2 field selectors together like so: {option;2}_{color;2} == [your conditional value] etc.
- **Added:** Option to do foreach() loops inside HTML elements to create a summary when using dynamic columns. Read here for more info [](email-foreach-loops).
- **Added:** Option to do if() statements inside HTML elements. Read here for more info [](email-if-statements)
- **Added:** Uploaded files will now be parsed onto `super_before_email_success_msg_action` action hook, allowing to transfer files to DropBox or Google Drive through Zapier Add-on
- **Added:** In the back-end when creating forms you will now be able to `Transfer` elements from form A to form B, or to reposition it easily within form A itself
- **Added:** Text fields can now also become a so called `Variable field` just like hidden fields, meaning you can populate them with data dynamically, while still allowing the user to edit this value
- **Added:** Option to parse parameter tags on to the shortcode to poupulate fields with data e.g: `[super_form id="1234" first_name="John" last_name="Willson"]`
- **Added:** Option for Text fields to search for WooCommerce Orders
- **Added:** Option to disable cookie storage for Varnish cache or other caching engines via `Super Forms > Settings > Form Settings` > `Allow storing cookies`
- **Changed:** file extion from .txt to .html for export and import files due to PHP recognizing .txt file as text/plain MIME type, which causes WordPress to fail to upload this .txt file resulting in a "Sorry, this file type is not permitted for security reasons". It is strongly discouraged to solve this problem by setting `ALLOW_UNFILTERED_UPLOADS` to true in wp-config.php.
- **Changed:** Updated Font Awesome to v5.7.2
- **Changed:** When leaving `Enter custom parameter string` option blank when doing custom POST, it will now submit all form data.
- **Improved:** A new way/method to verify the reCAPTCHA response, no longer checking via seperate Ajax call but instead upon form submission itself (this solves the error message hanging issue/bug)
- **Improved:** Make sure that .txt files can be uploaded due to new mimes type upload policy of wordpress not being able to upload txt files for security reasons
- **Improved:** replaced `eval()` function with `Function('"use strict";return ()')()`
- **Improved:** always parse the radix on parseInt() functions
- **Improved:** When defining conditional logic notify/alert user about possible loop creation when user is pointing conditional logic to it's own field (this would otherwise cause a stack overflow)
- **Improved:** `do_shortcode()` now called on the email body making it shortcode compatible
- **Improved:** Slider label positioning improved
- **Improved:** Only show admin notice once after updating plugin to check out `What's new` in the latest version. Also added option to completely disable to show update notices in the future from `Settings > Backend settings`
- **Improved:** Undo/Redo feature
- **Improved:** Form elements json now saved in localStorage, instead of a textarea element
- **Improved:** When using dynamic columns, a seperate data key called `_super_dynamic_data` will hold all the dynamic column data as an Array object (useful for usage with for instance `WebMerge`) to generate PDF files with product tables/rows
- **Fixed:** WooCommerce Checkout add-on setting `Send email after order completed` was not compatible with [E-mail IF statements](email-if-statements)
- **Fixed:** Issue with File Upload element when using custom Image button, it would still display the placeholder text
- **Fixed:** Issue with WooCommerce Checkout not saving CC and BCC settings
- **Fixed:** bug in Calculator Add-on when using advanced tags in combination with wildcards e.g: `{field_*;2}` inside math
- **Fixed:** when excluding sundays "0" wasn't working, had to put "0," 
- **Fixed:** Star rating was not intialized inside dynamic column
- **Fixed:** reCaptcha trying to be rendered more than once
- **Fixed:** dynamic column foreach email loop bug when custom padding enabled on column
- **Fixed:** Multi-part autostep not working in some circumstances with conditional logic being used
- **Fixed:** Using star rating element inside conditional logic doesn't allow to go to next step automatically
- **Fixed:** Slider label initial value not correctly displayed based on decimal settings
- **Fixed:** Colorpicker inside multi-part should never focus upon clicking "Next" button when colorpicker is the first element
- **Fixed:** Multi-part skipping radio/checkboxes (would skip to for instance textarea below radio button and autofocus the textarea skipping the radio buttons)
- **Added:** option for dropdown retrieve method "post type" to filter based on categories and or tags (taxonomy filter)
- **Added:** new option for dropdowns to not only choose from Slug, ID or Title as value for dropdown items when using for instance custom post type, you can now also choose a "custom" method, and define custom meta data to return instead.
- **Improved:** When a dropdown has retrieve method post type 'product' and the product is a variable product it will list all it's variations
- **Fixed:** Bug with HTML element inside dynamic columns not correctly renaming tags that retrieve multi values e.g: changing `{fieldname;3}` to `{fieldname_2;3}` etc.
- **Fixed:** Path Traversal in File Upload via PHPSESSID Cookie and potentially Remote Code Execution
- **Fixed:** issue with conditional logic running based of page load via field values that where set through $_GET parameters
- **Added:** option to add post meta data as item attribute for dropdown elements (to do things from the front-end useful for developers)
- **Fixed:** Javascript error when Conditional Logic was set based on an element that was deleted at a later stage in time

## Jan 31, 2019 - Version 4.5.0

- **Added:** option to not exclude empty values from being saved for contact entries
- **Added:** option to automatically exclude empty fields from email loop
- **Added:** Polyfill for IE9+ support for JS `closest()` function
- **Added:** Compatibility with {tags} for Custom form post URL
- **Added:** option to filter entries based on date range
- **Added:** option to return rows from custom db table for dropdowns
- **Fixed:** color picker not initialized correctly inside dynamic columns
- **Fixed:** bug with conditional logic and dropdown when using `greater than` methods
- **Fixed:** Issue with dropdown searching
- **Fixed:** Call to undefined function wc_get_product()
- **Fixed:** Keyword autosuggest CSV retrieve method not correctly retrieving items
- **Fixed:** Keyword autosuggest Max/Min selections
- **Improved:** Keyword autosuggest search speed for larger amount of items

## Nov 13, 2018 - Version 4.4.0

- **Added:** Option to disallow users to filter items on dropdowns, which will also prevent keyboard from popping up on mobile devices
- **Added:** tag to retrieve product regular price `{product_regular_price}`
- **Added:** tag to retrieve product sale price `{product_sale_price}`
- **Added:** tag to retrieve product price `{product_price}` (returns sale price if any otherwise regular price)
- **Added:** option to retrieve product attributes for dropdown,radio,checkboxes
- **Added:** tag `{product_attributes_****}` to retrieve product attributes
- **Added:** option to send POST as JSON string
- **Added:** Russian languages files
- **Added:** tag to retrieve Form Settings with {form_setting_*****} e.g: {form_setting_email_body} or {form_setting_header_subject}
- **Added:** Option to set the maximum upload size for all files combined for a file upload element
- **Added:** Documentation about [Save Form Progression](
- **Added:** Documentation about [Retrieve form data from users last submission](
- **Added:** Documentation about [Prevent submitting form on pressing "Enter" keyboard button](
- **Added:** Documentation about [Hide form after submitting](
- **Added:** Documentation about [Form redirect](
- **Added:** Documentation about [Custom form POST URL](
- **Added:** Documentation about [Contact Entries](
- **Added:** Documentation about [Clear/reset form after submitting](
- **Added:** Documentation about [Autopopulate fields](
- **Improved:** autosuggest filter speed when dealing with 1000+ records
- **Improved:** Slider element, amount positioining sometimes a little bit off
- **Improved:** Decode email header function
- **Fixed:** Multi-item element not remembering default selected options correctly
- **Fixed:** IE bug fixes
- **Fixed:** Emails where being stripped from + characters, which is a valid email address
- **Fixed:** Navigate through global settings and remove slashes from the values, to fix escaped quote issues in emails

## Jul 29, 2018 - Version 4.3.0

- **Added:** new filter hook - `super_redirect_url_filter` (filter hook to change the redirect URL after form submission)
- **Added:** Option to disable scrolling for multi-part next prev buttons
- **Added:** Option to prevent scrolling effect for multi-part when an error was found
- **Added:** Variable fields in combination with {tags} will now also be able to have dynamic values within dynamic columns (add more +)
- **Added:** New filter hook `super_' . $tag . '_' . $atts['name'] . '_items_filter` (to filter items of dropdowns/checkboxes/radio)
- **Fixed:** Bug with checkboxes/radio precheck not working
- **Fixed:** use wp_slash() to make sure any backslashes used in custom regex is escaped properly
- **Fixed:** Error message on file upload element not disappearing after trying to upload to large file size or not allowed file extension
- **Fixed:** Issue with dynamic columns in combination with calculator element (not updating calculation correctly after adding column)

## Jun 18, 2018 - Version 4.2.0

- **Added:** Option to set a threshold for `keyup` event on currency field to only execute hook when user stopped typing (useful for large forms with above average calculations etc.)
- **Added:** Option to automatically replace line breaks for `<br />` tags on HTML element content
- **Added:** Option to add custom javascript under `Super Forms > Settings > Custom JS`
- **Added:** Option to create variable conditional logic with a CSV file, see `[Variable Fields]` documentation for more information
- **Added:** new filter hook - `super_conditional_items_*****_filter` (filter hook to change conditional items on the fly for specific element)
- **Added:** new filter hook - `super_variable_conditions_*****_filter` (filter hook to change variable conditions on the fly for specific field)
- **Improved:** Bind `keyup` for Quantity field to trigger field change hook
- **Fixed:** Google ReCAPTCHA not always being rendered on page load
- **Fixed:** Quantity field not populating with last entry data
- **Fixed:** Currency field blur/focus bug
- **Fixed:** Website URL validation only allowed lowercase letters
- **Fixed:** Google ReCAPTCHA no longer allows to use callback function that contains a . (dot) in the function name. Replaced `SUPER.reCaptcha` with `SUPERreCaptcha`
- **Fixed:** Multi-part not autmoatically switching to next step (if enabled) when hidden field is located inside the mulit-part
- **Fixed:** Bug with {tags} in combination with calculator add-on, would retrieve the HTML value version for calculations
- **Fixed:** Make forms and entries none plublic so that search engines won't be able to index them
- **Fixed:** Javascript Syntax Error in Safari

## Apr 13, 2018 - Version 4.1.0

- **Added:** Option to do if statements in success message
- **Added:** `{author_meta_****}` tag to retrieve current post author or profile user custom meta data
- **Improved:** hide text "Allow saving form with duplicate field names (for developers only)" in back-end when action bar is sticky
- **Improved:** Conditional Validation option can now also work in combination with float numbers
- **Improved:** File upload button name line height and checkbox/radio :after top position RTL forms
- **Improved:** Currency field now compatible with conditional validations
- **Fixed:** bug with variable field in combination with conditionally hidden
- **Fixed:** Conflict with jquery scope for hint.js causing a javascript error
- **Fixed:** Columns responsiveness was broken because of some future development code
- **Fixed:** Bug with front-end forms not loading correct settings/styles from global settings (not merging correctly)
- **Fixed:** Bug fix with automatic line breaks for HTML element

## Mar 16, 2018 - Version 4.0.0

- **Added:** Introduction tutorial (to explain back-end)
- **Added:** de_DE_formal translation file
- **Added:** `{user_meta_****}` tag to retrieve current logged in user custom meta data
- **Added:** `{post_meta_****}` tag to retrieve current post custom meta data
- **Added:** Option to retrieve current author meta data for dropdown element with
- **Added:** `{author_id}` and `{author_name}` tags which do the same thing as the `{post_author_id}` and `{post_author_name}` tags
- **Added:** minimize/maximize toggle button on builder page
- **Added:** option to even save form when it contains duplicate field names (for developers)
- **Added:** (GDPR compliance) Option to only save contact entry when a specific condition is met (Form Settings > Form Settings)
- **Improved:** author tags will now also retrieve the author ID and author name when located on profile page of an author
- **Improved:** Export/import system for single forms via Form Settings > Export & Import
- **Improved:** Global settings and form settings are now merged for better sync and more controllable way when having to deal with many forms
- **Improved:** Use `CSS Flexbox Layout Module` to solve Safari 0px height issue/bug for conditional hidden items
- **Updated:** de_DE translation file
- **Fixed:** removed 'wpembed' from tinymce plugin list (was dropped since wordpress 4.8)
- **Fixed:** Issue with Register & Login Add-on when saving custom user meta data
- **Fixed:** Issue with Print action for Button element when no HTML file was choosen

Full Changelog:

Ambertemplates Banner

Related posts