Super Forms – Drag & Drop + Column / Grid System

Super Forms – Conditional Logic

Super Forms – Build-in Translation System

Super Forms – Main Features

Super Forms – Extra Features

Super Forms – Add-ons you might like

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

Super Forms – Add-ons

Requirements

- PHP version 5.4 or higher

Description

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

Changelog

### May 22, 2019 - Version 4.6.8
- 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*
- Improved: Currency field will now have field type set to `tel` for phonenumber keyboard layout to enter numbers easily on mobile devices
- Fix: Bug fix conditional logic when setting $_GET on radio buttons
- Fix: Radio buttons not responsding to predefined `$_GET` or `$_POST` parameters
- Fix: When doing custom POST and "Enable custom parameter string for POST method" is enabled file URL's where not parsed as data
- Fix: Bug in Ajax handler, make sure to not load external unrequired plugins, because they might depend on functions that we didn't load
- Fix: Compatibility for Ajax handler with Multisites
- Fix: reCAPTCHA v2 bug
### Apr 24, 2019 - Version 4.6.1
- Added: Compatibility for HTML elements to handle {tags} with regexes `*` (contains), `$` (ends with) and `^` (starts with)
- Fix: HTML element in back-end not wrapping words
- Fix: 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
endif;
endif;`
- 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 [https://renstillmann.github.io/super-forms/#/email-foreach-loops](email-foreach-loops).
- Added: Option to do if() statements inside HTML elements. Read here for more info [https://renstillmann.github.io/super-forms/#/email-if-statements](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 (usefull for usage with for instance `WebMerge`) to generate PDF files with product tables/rows
- Fix: WooCommerce Checkout add-on setting `Send email after order completed` was not compatible with [E-mail IF statements](email-if-statements)
- Fix: Issue with File Upload element when using custom Image button, it would still display the placeholder text
- Fix: Issue with WooCommerce Checkout not saving CC and BCC settings
- Fix: bug in Calculator Add-on when using advanced tags in combination with wildcards e.g: `{field_*;2}` inside math
- Fix: when excluding sundays "0" wasn't working, had to put "0,"
- Fix: Star rating was not intialized inside dynamic column
- Fix: reCaptcha trying to be rendered more than once
- Fix: dynamic column foreach email loop bug when custom padding enabled on column
- Fix: Multi-part autostep not working in some circumstances with conditional logic being used
- Fix: Using star rating element inside conditional logic doesn't allow to go to next step automatically
- Fix: Slider label initial value not correctly displayed based on decimal settings
- Fix: Colorpicker inside multi-part should never focus upon clicking "Next" button when colorpicker is the first element
- Fix: Multi-part skipping radio/checkboxes (would skip to for instance textarea below radio button and autofocus the textarea skipping the radio buttons)
### Feb 10, 2019 - Version 4.5.5
- 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.
### Feb 09, 2019 - Version 4.5.4
- Improved: When a dropdown has retrieve method post type 'product' and the product is a variable product it will list all it's variations
- Fix: 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.
### Feb 05, 2019 - Version 4.5.3
- Fix: Path Traversal in File Upload via PHPSESSID Cookie and potentially Remote Code Execution
- Fix: 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)
- Fix: 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
- Fix: color picker not initialized correctly inside dynamic columns
- Fix: bug with conditional logic and dropdown when using `greater than` methods
- Fix: Issue with dropdown searching
- Fix: Call to undefined function wc_get_product()
- Fix: Keyword autosuggest CSV retrieve method not correctly retrieving items
- Fix: 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](save-form-progression.md)
- Added: Documentation about [Retrieve form data from users last submission](retrieve-data-last-submission.md)
- Added: Documentation about [Prevent submitting form on pressing "Enter" keyboard button](prevent-submit-on-enter-button.md)
- Added: Documentation about [Hide form after submitting](hide-form-after-submitting.md)
- Added: Documentation about [Form redirect](form-redirect.md)
- Added: Documentation about [Custom form POST URL](custom-form-post-url.md)
- Added: Documentation about [Contact Entries](contact-entries.md)
- Added: Documentation about [Clear/reset form after submitting](clear-reset-form-after-submitting.md)
- Added: Documentation about [Autopopulate fields](autopopulate-fields.md)
- Improved: autosuggest filter speed when dealing with 1000+ records
- Improved: Slider element, amount positioining sometimes a little bit off
- Improved: Decode email header function
- Fix: Multi-item element not remembering default selected options correctly
- Fix: IE bug fixes
- Fix: Emails where being stripped from + characters, which is a valid email address
- Fix: Navigate through global settings and remove slashes from the values, to fix escaped quote issues in emails
### Jul 29, 2018 - Version 4.3.0
- Fix: Bug with checkboxes/radio precheck not working
- 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
- Fix: use wp_slash() to make sure any backslashes used in custom regex is escaped properly
- Fix: Error message on file upload element not disappearing after trying to upload to large file size or not allowed file extension
- 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 +)
- Fix: Issue with dynamic columns in combination with calculator element (not updating calculation correctly after adding column)
- Added: New filter hook `super_' . $tag . '_' . $atts['name'] . '_items_filter` (to filter items of dropdowns/checkboxes/radio)
### Jun 18, 2018 - Version 4.2.0
- Fix: Google ReCAPTCHA not always being rendered on page load
- Added: Option to prevent scrolling effect for multi-part when an error was found
- Added: Option to set a threshold for `keyup` event on currency field to only execute hook when user stopped typing (usefull for large forms with above average calculations etc.)
- Fix: Quantity field not populating with last entry data
- Fix: Currency field blur/focus bug
- Fix: Website URL validation only allowed lowercase letters
- Fix: Google ReCAPTCHA no longer allows to use callback function that contains a . (dot) in the function name. Replaced `SUPER.reCaptcha` with `SUPERreCaptcha`
- Fix: Multi-part not autmoatically switching to next step (if enabled) when hidden field is located inside the mulit-part
- Fix: Bug with {tags} in combination with calculator add-on, would retrieve the HTML value version for calculations
- 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
- Fix: Make forms and entries none plublic so that search engines won't be able to index them
- Fix: 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
- Fix: bug with variable field in combination with conditionally hidden
- Fix: Conflict with jquery scope for hint.js causing a javascript error
- Fix: Columns responsiveness was broken because of some future development code
- Fix: Bug with front-end forms not loading correct settings/styles from global settings (not merging correctly)
- Fix: 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
- Fix: removed 'wpembed' from tinymce plugin list (was dropped since wordpress 4.8)
- Fix: Issue with Register & Login Add-on when saving custom user meta data
- Fix: Issue with Print action for Button element when no HTML file was choosen
### Feb 28, 2018 - Version 3.9.0
- Improved: Don't save settings that are the same as global settings
- Fix: Form settings that did not have a filter value where not correctly updates when changing and saving form.
- Fix: &quot was being replaced with " when updating/saving elements
- Fix: {tag;label} not removed from HTML element when field is conditionally hidden
- Added: Tag to retrieve selected option label in emails with {fieldname;label}
- Added: Option to replace comma's with HTML in emails for checkbox/radio/dropdown elements under Advanced TAB
- Added: Cool new feature to do if foreach loops inside email body content with {tag} compatibility e.g:
- This method is intended to be used in combination with dynamic columns
- **Example:** `foreach(first_name): Person #<%counter%>: <%first_name%> <%last_name%><br /> endforeach;`
- Added: Cool new feature to do if `isset` and `!isset` checks inside email body content with {tag} compatibility e.g:
- This method should be used whenever you conditionally hide fields and they are no longer set and {tags} inside email would then not be converted because no such field was found
- **Example 1:** `isset(first_name): The field exists! endif;`
- **Example 2:** `!isset(first_name): This field does not exists! endif;`
- **Example 3:** `isset(first_name): This field exists! elseif: This field does not exists! endif;`
- Added: Option for submit button to print or save PDF based on custom HTML that supports {tags} to dynamically retrieve form data
- Added: Print button can support signatures when used like `<embed type="image/png" src="{signature}"></embed>`
- Added: tag `{dynamic_column_counter}` to retrieve current dynamic column number added by user (this tag can currently only be used inside HTML element)
- Added: `stripslashes` for heading title / desciption
- Added: `htmlentities` Flags `ENT_NOQUOTES | ENT_SUBSTITUTE | ENT_DISALLOWED`
### Jan 29, 2018 - Version 3.8.0
- Added: Compatibility for variable fields with advanced tags e.g: {field;2}
- Added: Option "User Form locker / submission limit", this option allows you to only allow a logged in user to submit a specific form once only
- Added: Option to Toggle all fields to be exported to CSV on Contact Entry page in back-end
- Added: "Submitted by:" on Contact Entries page when a form was submitted by a logged in user
- Added: Option to retrieve entry data based on `$_GET['contact_entry_id']` or `$_POST['contact_entry_id']` (this will override the logged in user last submission data if it is set)
- Improved: When registering new user with Register & Login Add-on and entry is created the author will be the newly created user
- Improved: Builder speed
- Improved: Compressed the form json code by roughly 50% up to 80%
- Improved: Compressed the form settings json code by roughly 50% up to 80%
- Improved: Redo / Undo system, resulting in a smoother user experience when building forms on low end devices
- Fix: Undefined index: admin_attachments
- Fix: Form backup history restore sometimes returns blank forms (json error)
- Fix: Button link open new tab not working
- Fix: Google analytics conversion tracking not working when Custom form POST method is enabled
- Fix: Only save tracking settings on global level and not on form level
- Fix: HTML entities in json form code should not be decoded, e.g: &quot should be &quot and not converted to "
- Fix: Honeypot captcha is filled out by Google Chrome saved username/passwords
- Fix: Distance calculations variable overridden with destination address
- Fix: Icons inside field with Medium size field
- Fix: CSV + Checkbox issue
### Dec 22, 2017 - Version 3.7.0
- Added: Tags field (text field can be converted into a tag/keyword field) via "Enable keyword field" TAB when editing the text field
- Added: Deutsch/German translation (if you have translation files let us know so we can add them to the core files)
- Added: Option to retrieve tags for autosuggest fields
- Added: Option to change unique field name on the fly on builder page
- Improved: When Ajax is enabled, and google map API is not filled out, do not load the js library
- Improved: Automatically rename duplicated fields for more user-friendly work flow
- Improved: Back-end field filter code execution/speed improvement
- Improved: Google Map element can now udpate map address dynamically based on {tag}
- Fix: Bug with conditional logic not scanning on form level but on active multi-part level in rare occasions.
- Fix: Toggle field start value "On" not affected
### Dec 08, 2017 - Version 3.6.0
- Added: Option to add google analytics tracking events via: Super Forms > Settings > Form Settings
- Added: Option to center form via: Form Settings > Theme & Colors
- Added: Cool new feature to do if statements inside email body content with {tag} compatibility e.g:
- (possible constructors are: ==, !=, >, <, >=, <=)
- **Example 1:** `if({field}==123): Extra information here... endif;`
- **Example 2:** `if({age}<18): You are underaged! elseif: You are an adult! endif;`
- Added: Extra conditional validation methods with option to compare 2 values instead of just 1 e.g:
- `> && < Greater than AND Less than`
- `> || < Greater than OR Less than`
- `>= && < Greater than or equal to AND Less than`
- `>= || < Greater than or equal to OR Less than`
- `> && <= Greater than AND Less than or equal to`
- `> || <= Greater than OR Less than or equal to`
- `>= && <= Greater than or equal to AND Less than or equal to`
- `>= || <= Greater than or equal to OR Less than or equal to`
- Added: Ability to retrieve checkbox/radio/dropdown Label with tag `{field;label}` (currently works for variable fields, conditional logics only in combination with checkbox/radio/dropdowns)
- Added: Option for datepicker field to exclude specific days from the calendar so users won't be able to select them when choosing a date
- Added: Option to disable autofocus for first element inside multi-part when multi-part becomes active
- Added: {tags} to retrieve cart information when WooCommerce is installed and activated: `{wc_cart_total}`, `{wc_cart_total_float}`, `{wc_cart_items}`, `{wc_cart_items_price}`
- Added: Option to disable autocompletion for specific fields via "Advanced > Disable autocompletion"
- Added: Option to do custom POST request with custom parameters instead of sending all available data (because some API's only allow you to POST parameters they request)
- Improved: RTL styles
- Improved: Changed submit button from `<a>` tag to `<div>` tag to avoid conflict with themes that care less about no-conflict policy
- Fix: issue with validating fields in combination with conditional logic and multi-parts that have "Check for errors before going to next step" enabled
- Fix: Issue with dropdowns inside dynamic column (clear field function was not updating field value correctly) result in conditions and calculations not properly updating
- Fix: Issue with conditional logic AND method
- Fix: bug with TAB index for fields
- Fix: Some PHP warnings
### Nov 23, 2017 - Version 3.5.0
- Added: Compatibility with {tags} for conditional logic values and AND values
- Added: Google Map element (with polylines options for drawing point A to B dynamically, for instance for calc. distance with google address autocomplete)
- Added: Option for Google Address Autocomplete to populate street name and number and visa versa at once (combined)
- Added: Backwards compatibility with older form codes that have image field and other HTML field in group form_elements instead of html_elements
- Added: Shortcode compatibility for default field value
- Added: Google distance calculation setting for dropdown element (allows to let user choose specific locations and calculate distance based on that)
- Improved: Split up Form and HTML elements under their own TAB
- Improved: When google API query limit is reached for distance calculations show message to the user
- Improved: Skip AND method if not used for variable fields
- Fix: Bug fixed after improving skipping AND method if not used for variable fields
- Fix: Remove datepicker intialize class after column is dynamically duplicated
- Fix: When using custom submit button with custom URL redirect enable the option to set custom Button name was hidden
- Fix: Buttons dropdown setting for custom contact entry statuses
- Changed: Auto updates for Envato element users
- Removed: product activation TAB
Full Changelog: https://renstillmann.github.io/super-forms/#/changelog
</div></a>