WS Form LITE – Drag & Drop Contact Form Builder for WordPress


WordPress Contact Form Builder Plugin

WS Form LITE is a powerful contact form builder plugin for WordPress.

Create professional, mobile friendly, accessible contact forms. WS Form LITE comes complete with features other form builder plugins charge a premium for.

Choose from single click templates or build your own WordPress form using the unique drag and drop form editor.

Included Features

Page Builder Compatibility

Add forms to your website using your favorite WordPress page builder:

Theme / Framework Support

WS Form is compatible with all WordPress themes, and also outputs native HTML for the following front-end frameworks:

Upgrade to PRO

This plugin is the free LITE edition of WS Form PRO.

The PRO edition comes with unrivaled additional features:

and more!

Upgrade to WS Form PRO.

PRO Integrations

…. or use the Push To Custom Endpoint action to integration with your own API.

PRO Custom Field Plugin Compatibility


WS Form was built with enterprise level performance in mind. WS Form does not interfere with the loading of other page or post content on your website and isolates submission records to ensure as your website grows your page load speed is not affected.

All form code is HTML 5 compliant and if your website theme uses a framework such as Bootstrap or Foundation WS Form automatically outputs code to suit that framework. This means your form loads as fast as possible without any unnecessary overhead typically found in other WordPress form plugins.

Click here to learn more about the WSForm performance features.

Extensive Field Types

WS Form comes loaded with all the field types you need to build a form. Upgrade to WS Form PRO to take advantage of all the form field types available, including:

and more!

For Developers

WS Form PRO comes with a unique debug console that provides you with rapid, form population capabilities (perfect for form testing!), as well as comprehensive event and error logging.

Third Party Credits

WS Form references the following third party components:


  • Form Layout Editor
  • Welcome Screen
  • Contact Form Submissions
  • Example Front-End Form


This plugin provides 1 block.

  • WS Form LITE - Drag & Drop Contact Form Builder for WordPress


For help installing WS Form, please see our Installation knowledge base article.


3 0346 December 0346 000000 2021
The WS-Forms team has built a powerful forms application and they keep improving it with each release. What you can’t see in the app, or unless you’re in need of support, is how amazing the team is at quickly and effectively responding, and working to resolve their customers’ inquiries. I recommend WS-Form over all other WordPress options! Excellent product and amazing team behind it!
1 0145 December 0145 000000 2021
I don't even need to say that much. WSForm is simply the best plug-in in the WordPress universe - period. The support is wonderful, fast, friendly and always available. Possible feature requests are either directly implemented or considered. Several integrations make everyday life easier, whether S3, Meta Box or Google Sheets. The repertoire of extensions is insane and the price for the pro version is (but please don't tell Mark) way too cheap.
29 2929 November 2929 000000 2021
I've been building WordPress websites for over 10 years and in that time I've used nearly every form solution out there. Amongst others I've used Gravity, Formidable, Fluent, Caldera, Piotnet. I've even got LTD licences for Fluent, Formidable and Piotnet. Despite this I still pay an annual subscription to WS Forms. Why? Because it is head and shoulders above the rest. It's insanely powerful, reliable and flexible. And the support is superb - it's quick, thorough and actually solves the query. This is one of a handful of plugins that now get installed on every new client site as default.
24 2457 November 2457 000000 2021
Creating complex, great looking forms is easy with this plug in. It works great and the customer service is second to none. I had a question and they were very prompt, attentive, and insightful. I couldn't recommend it more!
22 2258 November 2258 000000 2021
WSForm is by far the most powerful form tool for WordPress that I know of. The builder is very good to use, the available conditions go far beyond what you are used to from the usual market solutions. Ingenious is the bidirectional sync with ACF which allows to dynamically create forms from ACF types. Outstanding and not to be pointed out enough is the fast, uncomplicated and always solution-oriented support from Mark. Thanks for this great plugin which is worth every Euro!
6 0634 November 0634 000000 2021
I have only been trying this plugin out for a short while, and while it is a bit of a learning curve compared to some of the other form plugins I have tried, the documentation on the website and help tools in the plugin have made it very easy to do. It also offers more scope in the free version than I have seen in any other form plugin to date. The clinching factor though has been the amazingly fast and helpful support; when I first have a look at any plugin, as well as the reviews I look at the support section, to see how much support has been needed, how many resolved, and other things like how often particular questions or issues are repeated, and how active the forum is. When I looked at the forum for WS Forms, it had been over 2 months since the last question, which I often think could be a bad sign, but in this case the total opposite is true - the well thought out and put together help and documentation makes it very easy to find out how to do something; and when I hit a stumbling block the issue was solved in only a couple of hours. Highly recommended from everything I have seen so far.
Read all 71 reviews

Contributors & Developers

“WS Form LITE – Drag & Drop Contact Form Builder for WordPress” is open source software. The following people have contributed to this plugin.




  • Added: Support for repeat label hiding on H1 – H6 as well as legend
  • Added: Improved accessibility markup for repeatable section icons
  • Bug Fix: Section delete variable clean up
  • Bug Fix: Word and character count validation if help text empty


  • Bug Fix: Database action auto archiving feature (cron action)


  • Bug Fix: Welcome screen fixes for PC version of Chrome


  • Bug Fix: Submission status filter links


  • Bug Fix: Term lookup cache in post data source bug if term removed
  • Bug Fix: WooCommerce price meta data now converted to floating point

.= 1.8.142 =
* Bug Fix: Calculations from select fields were processed as currency
* Bug Fix: Rounding error in source field for calculations if commas used as decimal separator


  • Bug Fix: Conversational URL link


  • Added: Support for WooCommerce product meta data (Post management add-on)
  • Bug Fix: Debug populate number fields with step of ‘any’


  • Added: New functionality ready for Amazon S3 integration for file fields
  • Added: Form search
  • Added: Third parameter to #field_date_offset variable to allow formatting of output
  • Added: wsf_form_create_meta_data($meta_data) filter that allows meta data to be edited prior to form being created
  • Added: Cost by area template


  • Added: intl-tel-input support for phone field. Check ‘Enable’ under ‘International Telephone Input’ in the basic tab to use it.


  • Changed: Server and blog date formats with upgraded WordPress date/time methods


  • Changed: Improved third party custom field plugin detection and add-on initialization


  • Added: #field_date_offset(field_id, offset_in_seconds) variable. Returns a date field with an offset added or subtracted in seconds.
  • Changed: Duration tracking is now switched off by default
  • Bug Fix: PHP 8 fix in Divi module


  • Bug Fix: Duration cookie no longer set if duration tracking disable


  • Bug Fix: Table prefix on Post data source when retrieving terms


  • Added: ‘Use URLs for file fields’ setting in ‘Push to Custom Endpoint’ action
  • Added: reCaptcha V3 revisions
  • Changed: Submission export temporary folder location


  • Bug Fix: Double quote detection in variable attributes


  • Added: New hCaptcha field
  • Changed: Performance improvement on change triggering for cart detail fields


  • Added: Migration from Gravity Forms 2.5 now supports column widths
  • Added: Ability to use #field to fields outside a repeatable section in #section_rows_start … end
  • Bug Fix: Migrate tool submissions import meta data
  • Bug Fix: Meta Box checkbox issue in repeaters


  • Added: Form level Google Analytics events
  • Added: gtm.formSubmit Google Tag Manager Form Submission trigger support
  • Added: Change event fired when Google Address fields populated


  • Added: Latitude and longitude mapping for the Google Address field
  • Bug Fix: Parameter ordering issue for GA tracking objects


  • Change: Improved detection of custom field plugins in multi-site environments
  • Bug Fix: Google Analytics event tracking for ga contained in tag manager
  • Bug Fix: Meta box repeater (group) fields not recognized in field mapping


  • Added: New Google Address field allows you to auto populate address fields from a Google Places Autocomplete API search


  • Added: Performance improvements with #calc and other price related calculations


  • Added: New filter wsf_action_email_email_validate($valid, $email) added for filtering unwanted email addresses


  • Added: Updated option checking in Meta Box and ACF classes
  • Bug Fix: Dedupe value scope processing issue


  • Added: Increased length of form, tab, section and field labels to 1024 characters


  • Bug Fix: Tab validation misreported valid email address if field was not required


  • Added: Toolset version check to ensure latest public functions are available


  • Added: User ID set to current user ID when elements cloned in admin


  • Added: Improved Elementor class declaration
  • Added: Improved SVG background image encoding in skin CSS
  • Bug Fix: HTML encoded labels for third party form selectors


  • Bug Fix: WooCommerce class PHP 8 compatibility


  • Added: Toolset integration support for Post Management (1.4.0) add-on
  • Added: Toolset integration support for User Management (1.4.0) add-on
  • Added: Toolset field option data source
  • Bug Fix: Mouseover event on radio fields
  • Bug Fix: File count conditional logic when using file fields in repeaters


  • Added: Improved data sources so that column names retained but rows cleared on save


  • Added: Ability to filter data source terms by those checked on a post


  • Added: Support for conditional logic mouse events on select2 elements


  • Added: Email field allow / deny values with wildcard (e.g. Allow * Found in ‘Advanced’ tab.


  • Added: Variable parsing on email header keys and values
  • Bug Fix: Submission count recalculated when record status set to trash


  • Added: Ability to use fields that return multiple values (e.g. checkboxes) as #field in email action ‘To’ setting
  • Added: Ability to use variables with attributes embedded in #if statements
  • Added: Improved z-indexing in admin
  • Added: Improved time function handling per WordPress recommendations


  • Added: Support for multiple textarea fields configured as type HTML
  • Added: Reset data grids if a field is saved with a data source selected to minimize form data size
  • Bug Fix: Cascade / AJAX select fields with no group data caused warning


  • Added: URL element added to files in custom API endpoint action


  • Bug Fix: Bulk Action Mark as Spam fixed


  • Bug Fix: Encryption class includes for initial key generation


  • Added: Conversion tracking now support variables
  • Bug Fix: Improvement to encryption class includes
  • Bug Fix: Elementor script and style enqueues


  • Added: Ability to enable optgroup using the WordPress hook data source
  • Added: CSS for tooltips in labels, e.g. Icon
  • Added: Applied wpautop to message action content
  • Added: Improved data picker styles
  • Added: Booking template in section library
  • Bug Fix: Password visibility toggle
  • Bug Fix: Updated email regex pattern throughout to support new TLD’s
  • Bug Fix: Inline date picker


  • Added: Post statuses data source
  • Bug Fix: Lower track on range slider was not rendering if #value was missing from help setting


  • Added: wsf_submit_clear_meta_filter_keys filter (Used for new feature in post management add-on version 1.3.2)
  • Bug Fix: Taxonomy list in post data source


  • Added: Support for hidden sections in conversational forms
  • Bug Fix: Improved Meta Box field lookups to handle meta boxes assigned to more than one post type


  • Added: Ability to self reference field when using #field in labels, placeholder and help
  • Bug Fix: Bug fix on conditional logic setting value using #field in repeatable section


  • Added: Performance improvement on clearing select fields with conditional logic
  • Bug Fix: Save Submission field filtering
  • Bug Fix: Select conditional logic on load with AJAX cascading
  • Bug Fix: Repeatable sections in conversational forms now highlight all rows


  • Added: Meter field type
  • Added: New section templates
  • Bug Fix: Various CSS fixes
  • Bug Fix: Data grid enter key press fix


  • Bug Fix: Elementor pop-ups


  • Added: Support for forms in preview mode in Elementor
  • Added: Row select value support for price select fields
  • Bug Fix: Pods Yes/No field data grid rows


  • Added: Improvements to functions.php for later PHP versions
  • Changed: Behavior of rating field adjusted so that conditional logic does not fire on input


  • Added: Cascading filter column comma separated value setting


  • Added: LiteSpeed cache support
  • Added: Notion field ID support in sidebar select fields


  • Added: #seconds_epoch_midnight client-side variable returns seconds elapsed since Unix Epoch up until the closest previous midnight
  • Bug Fix: Sidebar repeater select options were not disabling if value contained forward slashes in value
  • Bug Fix: Select fields configured to use Select2, multiple and tagging enabled were no appearing in #field variables server side


  • Added: Support for comma separated values in cascading fields
  • Added: Hide Child Terms options in Terms data source (Only returns terms with a parent ID of 0)
  • Added: Automatic column mapping on ‘Get Data’ for data sources
  • Bug Fix: Data source save on sidebar conditional processing


  • Added: Added checks to ensure Dropzone and Select2 JavaScript libraries are installed before initializing them


  • Added: Improved check for Pods 2.8 Beta get_groups method


  • Added: Additional support for Pods 2.8 Beta
  • Bug Fix: Dynamic data source update when form submitted


  • Added: WordPress Filter Hook data source


  • Bug Fix: Improved client side HTML encoding


  • Added: Pods integration support for Post Management (1.3.0) add-on
  • Added: Pods integration support for User Management (1.3.0) add-on
  • Added: Pods field option data source


  • Added: wsf-steps-checks class for adding checks to styled tabs
  • Added: Updated to GPLv3 license
  • Bug Fix: Fixed invalid feedback reset on field focus


  • Added: Improved performance on DropzoneJS uploads
  • Bug Fix: Modal CSS duplication removed


  • Added: ‘Exclude From Cart Total’ setting on Price, Price Select, Price Checkbox, Price Radio and Price Range fields types. This excludes those fields from the e-commerce calculations so that they can be used for other functionality such as #calc.
  • Added: wsf-steps, wsf-vertical form wrapper classes for WS Form framework for tab styling
  • Added: wsf-sticky form wrapper, section wrapper and field wrapper classes for WS Form framework
  • Added: Tab accessibility improvements


  • Bug Fix: select_option_text, checkbox_label and radio_label compatibility with repeatable sections


  • Added: Placeholder option for Select2 with multiple selected
  • Added: License key now obscured after it is entered
  • Bug Fix: Select2 rendering


  • Changed: Revised #post* variables for performance


  • Added: Data export request containing registered user data


  • Bug Fix: Field value form scope for #field
  • Bug Fix: $submit_object on wsf_submit_field_validate
  • Bug Fix: Data export request


  • Added: Ability to hide reCAPTCHA in tabs, sections at field level
  • Bug Fix: Tab Google Analytics event firing


  • Bug Fix: Function compatibility issue with WooCommerce extension


  • Added: Multiple choice on Select, Checkbox and Radio IF conditions (OR logic)
  • Added: Round robin recipient logged in email action log on each submission


  • Added: Option in email action to include links to file uploads and signatures
  • Added: CSV export now includes full paths to file upoads and signatures
  • Changed: E-Commerce status column in CSV export changed from ‘Status’ to ‘Order Status’ to avoid duplicate column name
  • Changed: On submission view, signatures now displayed with preview and download icons to match file upload fields


  • Added: New functions: wsf_form_get_form_object & wsf_form_get_form_label


  • Bug Fix: ACF data source finding choices in grouped or repeater fields


  • Added: WordPress 5.8 compatibility testing
  • Added: PHP 8 compatibility testing
  • Added: wp_upload_dir known WordPress bug fix


  • Added: Submissions CSV export system now builds in chunks if records exceed 500 to avoid timeouts
  • Added: Submissions CSV export system now zips CSV file if it exceeds 1/2 MB in size for convenience


  • Added: Implemented fix for range slider browser bug


  • Added: #calc / #text prioritizes attribute changes before default value changes
  • Changed: #calc / #text numeric values changed to 12 decimal point precision


  • Added: ACF fix on LITE


  • Added: Meta Box integration support for Post Management (1.2.0) add-on
  • Added; Meta Box integration support for User Management (1.2.0) add-on
  • Added: Meta Box field option data source
  • Added: Improved wpautop support throughout
  • Added: New conditional logic for form submit and save success
  • Bug Fix: Repeater column toggle in sidebar on row add
  • Bug Fix: Wildcard file accept
  • Bug Fix: Bootstrap 5 tabs
  • Bug Fix: Checkbox fix in customize
  • Bug Fix: Conversation form made PRO


  • Added: Hierarchy support for terms data source (Display as Hierarchy setting)


  • Added: #calc / #text support for min / max field attributes
  • Added: Min / max support for price fields in conditional logic


  • Bug Fix: Progress bar assigned to tabs


  • Added: ACF field validation (filter: acf/validate_value) for post and user management actions
  • Added: ACF oEmbed field type support
  • Changed: Code optimization in public.js
  • Bug Fix: Tab click events in conditional logic


  • Bug Fix: Form preview rendering in Gutenberg
  • Bug Fix: Field encoding post management populate values


  • Changed: Currency symbols to match WooCommerce


  • Bug Fix: Form submission limit


  • Bug Fix: Message action delay


  • Added: Change to placeholder CSS on inside field label positioning
  • Changed: Bricks element updated due to function names changing in Bricks theme core


  • Added: Hovering over tabs, sections and fields in the layout editor with the conditional logic sidebar open now highlights any conditional rows that contain those form elements


  • Bug Fix: Required span on calculated labels
  • Bug Fix: Calc firing on repeatable section row count changes


  • Added: Error logging on invalid feedback client side action


  • Added: Bootstrap 5 launch compatibility checks


  • Bug Fix: Conversational style dequeuing


  • Bug Fix: #email_tracking variable in email templates


  • Added: Conversational forms (Beta)
  • Changed: PRO licensing
  • Bug Fix: Numeric value return on data sources pulling ACF meta data


  • Bug Fix: Initial CSS build error


  • Added: Server-side form validation hook (
  • Added: Performance improvements with CSS engine
  • Bug Fix: Form deletion


  • Added: Date field: Disabled days
  • Added: Date field: Disabled dates
  • Added: Date field: Enabled dates


  • Bug Fix: Visual editor CSS file path issue


  • Bug Fix: x_wp_nonce JS error


  • Added: RTL support for new compiled skin system


  • Bug Fix: Redirect URL parsing now uses text/plain method


  • Bug Fix: Select all fixed on data grids using dynamic data sources


  • Added: Suggested knowledge base articles on support contact form
  • Bug Fix: ACF numeric field value population in select, checkbox and radio fields
  • Bug Fix: Min / max date validation


  • Added: Improved default invalid feedback text by field type
  • Added: Improved appearance of legal field for Foundation framework
  • Bug Fix: Server date fix for certain JavaScript engines


  • Added: Name to section library (first name, last name)
  • Bug Fix: Applied pre_render filter to submit API call


  • Added: Round robin support for the Send Email action
  • Added: Box shadow customization
  • Added: Updated version of date time picker JS


  • Added: Support for #text and #calc containing #select_option_text
  • Bug Fix: #text on date fields


  • Changed: Improved and consolidated admin UI icons
  • Bug Fix: 0 values to ACF fields


  • Bug Fix: Minor bug fix for legacy PHP versions and autocomplete data
  • Bug Fix: Validation of dates with period separators fixed for certain JavaScript engines


  • Bug Fix: Dependencies fix


  • Added: Improvement to Elementor pop-up handling
  • Added: Calc enabled from HTML fields
  • Added: Spacer height setting
  • Added: Enqueued script dependency filters (for PayTrace)
  • Added: CSS recompiled on upgrade
  • Changed: Delete icon continuity throughout admin
  • Bug Fix: Bricks preview now uses form preview
  • Bug Fix: Select2 CSS


  • Added: Enabled #text on server side to allow static fields to render correctly
  • Bug Fix: Price range slider help now correctly formats prices using #ecommerce_price
  • Bug Fix: Running actions with conditional logic no longer issues a session ID


  • Added: Hide tabs option (Form –> Settings)
  • Bug Fix: Elementor double initializing form events


  • Bug Fix: Shortcode for Oxygen on public contained visual editor attribute


  • Added: Bricks Element (
  • Changed: #pos to #positive, #neg to #negative for future compatibility


  • Added: New variable: #min(value, value …) – Returns the minimum of the supplied values
  • Added: New variable: #max(value, value …) – Returns the maximum of the supplied values
  • Added: New variable: #neg(value) – Returns the 0 if positive, original value if negative
  • Added: New variable: #pos(value) – Returns the 0 if negative, original value if positive


  • Added: Improved preview template auto detection
  • Added: Improved support for performance optimization plugins


  • Added: Improved Gutenberg block rendering


  • Added: Debug console now removes existing instances if wsf_form_init called


  • Added: Ability to use step of ‘any’ on number fields
  • Bug Fix: Elementor modals


  • Added: WS Form Oxygen element
  • Added: Improvements to JavaScript ws_form_init() function (Reinitializes all forms)
  • Added: Improved Beaver Builder, Elementor form initialization
  • Added: Improved Gutenberg block functionality
  • Added: Note that field deduplication does not work with encryption
  • Bug Fix: #calc on multiple select
  • Bug Fix: Gutenberg block SVG


  • Added: Client side #section_rows_start(section_id) / #section_rows_end


  • Changed: Removed ‘Read more’ link from visual editor in admin
  • Bug Fix: Visual editor link dialog flashed in Chrome if sidebar was minimized (Known Chrome issue)
  • Bug Fix: Military format for time in date field


  • Added: #text(field_id) variable (Allows you to duplicate field values in other fields)
  • Added: User status options for tabs (Logged in, logged out, user role, user capability)
  • Added: User status options for sections (Logged in, logged out, user role, user capability)
  • Added: User logged in, logged out, role and capability conditional logic IF conditions
  • Bug Fix: Encryption during WooCommerce checkout


  • Added: Custom Email HTML template
  • Added: Email Validation template
  • Added: Spam level set to 0 on validated submissions
  • Bug Fix: Validation of european date formats using periods


  • Added: #section_rows_start(section_id) / #sections_row_end for email templates
  • Added: Public config script optimizations
  • Bug Fix: Media library uploads


  • Bug Fix: Fixed hidden field validation for conditional logic validation


  • Added: Improved checks on conditional logic object integrity
  • Added: Implemented workaround for select2 not behaving properly with dynamically disabled options


  • Bug Fix: Conditional logic icons if condition deleted


  • Added: Improved signature validation
  • Added: Server side #ecommerce_price function
  • Added: Signature ‘Clear’ link text setting
  • Added: Google Map ‘Reset’ link text setting
  • Added: Password strength and visibility toggle text settings
  • Added: Various Bootstrap and Foundation CSS improvements


  • Added: WordPress 5.7 testing
  • Added: Support for tab conditional logic in Bootstrap and Foundation


  • Bug Fix: Conditional logic object ID lookups on form import
  • Bug Fix: Next / previous buttons on forms with tab validation
  • Bug Fix: Inside label positioning on e-commerce cart total field


  • Added: Conditional logic icons on tabs, sections and fields
  • Added: Highlight tabs, sections and fields when editing a condition


  • Bug Fix: Email template parsing


  • Bug Fix: Next / previous tab navigation on conditional logic disable
  • Bug Fix: Parse variable processing fix (Server-side)


  • Bug Fix: Media library upload with default file upload field


  • Bug Fix: New form default settings


  • Bug Fix: Required signatures on save


  • Added: Password visibility toggle icon
  • Added: Email validation via link in email
  • Added: Validate before saving option on save field
  • Bug Fix: Action format at on submission save


  • Bug Fix: Tab next/previous buttons if tab hidden with conditional logic


  • Bug Fix: Custom validity removal on hidden fields


  • Added: Section Library
  • Added: Section Library (Pre-built and ‘My Sections’ feature)
  • Added: Section and tab import and export
  • Added: Section and tab add to ‘My Sections’
  • Added: Improved tab management in layout editor (settings no longer obscure tab names)
  • Added: Performance improvement: Compiled CSS global setting
  • Added: Compliance with SCRIPT_DEBUG constant throughout (Minified CSS setting removed from Global Settings)
  • Added: Compiled and inline CSS enabled by default for new users
  • Added: Field and section search in Toolbox
  • Added: Various layout editor UI improvement
  • Added: DropzoneJS timeout setting
  • Added: Improve statistics gathering methods and error checking
  • Added: Latest version of DropzoneJS
  • Changed: Removed prefix on form error alerts
  • Bug Fix: Foundation 6+ Abide initialization on WooCommerce product pages
  • Bug Fix: Data encryption learn more link