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:

  • Date Format by Jacob Wright – Used for formatting server and post dates on the public JavaScript interface.
  • – Used for linking to HTML elements to show compatibility.
  • IntroJs – Used for tutorial feature.
  • Select2 – Used for AJAX select dropdowns


  • 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.


7 Tuber 2021
The most intuitive and powerful form builder I've ever used. Also truly exemplary customer support backing it up. If only all software suppliers could be this good!
21 Ctember 2021
I'm surprised when Mark, the plugin author told me they are a small team or company. I am that kind of person will search the community, internet and everywhere and make comparison and do it over again before choosing the tool for my project or site. This is the same with a WS form. I have build a complicated form with another good form plugin. It is good and limited some way. But it failed when I dont want to sacrifice the pursuit of best user form experience. WS form is recommended for anyone who is SERIOUS about form capability. (For non-serious user, it is ok too.) I recommend it for the reasons below: 1) It is so powerful. Equipped with all kinds of conditions and actions which you can imagine. With that you can do EVERYTHING without coding. Serious. I am not a coder too. 2) Besides the conditions and actions, it has extra addons to extend the function further. Additional purchase of course. But I found it is more horrible when you cannot pay for the function you need. 3) I am amazed by the well-organized plugin backend design. You know where to look for the functions you need. 4) The support is FAST. In conclusion, it is a really really good for plugin. Dont just look the assets the plugin loaded. Dont look at the cosmetics of the form builder. These are the mistakes I made. Give it a try. They have a demo site. The more I used, the more I love it because it can always fit your needs.
19 Γuct 2021
I use this plugin for different projects with different skill levels. It does an awesome job with a lot of features from simple contact forms up to really complex forms for post management and user management. The support is awesome and does not only reply really quick, but actually really solves problems and provides fast bugfixes. I absolutely recommend this form plugin for WP projects.
16 Γuct 2021
...simply the best! No seriously, this is, by far, the best plugin of the WordPress ecosystem....amazing tool, superb support and the best documentation ever produced by a have no idea. Thanks guys, you rock
Read all 65 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: 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