Contact Form by WS Form – Drag & Drop WordPress Form Builder


Build Better WordPress Forms

WS Form is a powerful contact form builder plugin for WordPress. Use WS Form to build any type of web form from a simple contact us form to complex, integrated, multi-step application web forms. Learn More

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

WS Form is loaded with features out of the box that you often have to pay for with other form builder plugins.

Add contact forms to your pages or posts using the Gutenberg block or simply click the ‘Add Form’ button in the WordPress visual editor. A WordPress widget and shortcode are also available.

Included Features

Upgrade to PRO

This plugin is the free edition of WS Form PRO. The PRO edition comes with unrivaled features:

and more!

Upgrade to WS Form PRO.

Mobile Friendly

WS Form forms are mobile friendly and scale to fit different device sizes. By upgrading to WS Form PRO you can take advantage of the responsive feature that enables you to create different form layouts for different device sizes (breakpoints).


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 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
  • Installation Wizard
  • Contact Form Submissions
  • Example Front-End Form


This plugin provides 1 block.

  • Contact Form by WS Form - Drag & Drop WordPress Form Builder


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


The free version is great and amazingly powerful, but the pro addon's really put it ahead of other form tools. Especially the ACF integration, just amazing. Support has been top notch and fast.
This is the best form plugin by far. You can build complex forms, with multiple steps and conditional logic super, super easy. The best feature is the ability to, again easily, layout your forms for different resolution screens. Also, the ability to style the form at your theme customization panel. Support is fast and effective. You shouldn't look anywhere else for a form builder.
The Team over at WS Form have been amazing in assisting with a complex form we are building. They have made improvements through updates to alleviate issues found very swiftly with "live" (email timely) support. WS Form is robust and we have been enjoying the functionality it provides. Mark and John in their customer support teams have been both extremely focused on assuring satisfaction of the product and quickly working through any issues found by improving render times and fixing bugs. Thank you for the excellent product.
the best plugin ever and amazing support. the best team ever. I had too many difficulties to design our complicated pricing calculator using all kinds of plugins until I met the wsform. they solved all the issues I had within minutes even after midnight! even they made all the effort to design my requested form which was really great help. THE BEST PLUGIN EVER *****
Everything I need, I have tried many form plugins and this one is the best in my 15 years online. So many options and addons to work with too.
42 (az összes) vélemény olvasása

Közreműködők és fejlesztők

“Contact Form by WS Form – Drag & Drop WordPress Form Builder” egy nyílt forráskódú szoftver. A bővítményhez a következő személyek járultak hozzá:


Változási napló


  • Bug Fix: Form post lock fix


  • Added: PHP 8 testing
  • Added: New checkbox and radio styling classes
  • Changed: Various code improvements throughout


  • Bug Fix: Hiding number fields with step


  • Bug Fix: Message JS action


  • Added: Errors settings in Form Settings side bar
  • Added: New form complete and error conditional logic
  • Changed: File upload size error message to show MB, GB


  • Added: #field_float variable


  • Added: New #submit_url and #submit_link variables for use in emails sent during save for recalling submissions
  • Added: Enable save cookie setting


  • Added: New functionality added for Stripe subscriptions


  • Added: #section_row_index and #section_row_number variables
  • Added: Conditional logic for DropzoneJS (file count and events)


  • Added: Ability to set quantity min, max and step with conditional logic
  • Bug Fix: DropzoneJS capture attribute
  • Bug Fix: Removed invalid event on inputmask fields to prevent bug with input mask jquery library
  • Bug Fix: Run action immeditely


  • Bug Fix: Duplicate attachments created on ACF record update using DropzoneJS


  • Bug Fix: Removed min value on progress bar field


  • Added: Ability to offset custom date variables by seconds


  • Added: Ability to set minimum / maximum selected on select fields using conditional logic
  • Added: Ability to set minimum / maximum checked on checkbox fields using conditional logic
  • Added: Ability to set min, max, step on number and range fields using conditional logic


  • Added: ACF file field type mapped as DropzoneJS


  • Changed: clearMaskOnLostFocus input mask setting changed on basic fields (Reverted)


  • Added: Form and submission level variable parsing in JavaScript action


  • Changed: clearMaskOnLostFocus input mask setting changed on basic fields


  • Bug Fix: Localization of #if(…) with #calc in repeaters


  • Bug Fix: Invalid submission hash error handling


  • Bug Fix: Sub type fix


  • Added: Ability to embed static field content with #field variable


  • Bug Fix: Signature file processing


  • Added: Excluding static content in emails templates with conditional logic


  • Added: Map type / zoom retained when form saved


  • Added: Tracking pixel / server side statistics setting
  • Added: Sortable DropzoneJS previews
  • Bug Fix: Form lock on DropzoneJS upload with populated files


  • Bug Fix: ACF boolean field


  • Changed: Google Map address lookup now only occurs on map click


  • Added: DropzoneJS functionality for file fields with full responsive grid support
  • Added: DropzoneJS capture support for front and user facing camera captures
  • Added: Minimum and maximum file size settings
  • Added: Maximum file upload setting
  • Added: WordPress (Public) file upload support
  • Added: Submission duration tracking now a setting so it can be disabled
  • Added: Added support for ACF gallery field type
  • Changed: Changed layout of conventional file field to match other fields to support drag and drop / prefix / suffix
  • Bug Fix: Script dequeuing fix for third party plugins that enqueue their scripts everywhere
  • Bug Fix: Field mapping excluded password fields


  • Bug Fix: Tab validation


  • Added: Additional ARIA attribute support
  • Added: Custom meta to message fields
  • Added: Performance improvements
  • Added: Ability to use variables in custom attribute values
  • Bug Fix: Data grid CSV import empty line
  • Bug Fix: Debug number randomization
  • Bug Fix: Bypass script


  • Added: New autocomplete field attribute options
  • Added: Elementor pop-up compatibility and improved user interface on widget


  • Added: #if() … #endif variable, e.g. #if(#field(123) == “my value”)Show this if field ID 123 equals “my value”#endif (BETA)
  • Bug Fix: Select2 with pre-loaded options
  • Bug Fix: Email media file attachments


  • Changed: Date presentation functions


  • Added: Cascading checkboxes and radios retain original checked value when rendered
  • Added: Term data source meta data columns, including ACF support
  • Added: User data source meta data columns, including ACF support


  • Added: Improved select2 full script handling
  • Added: SVG template Google Map field
  • Changed: Email sidebar fields to be type text instead of email to avoid native warnings when entering # variables


  • Added: Google Map field type
  • Bug Fix: reCaptcha version 3 fix


  • Added: ACF option filtering by post


  • Added: WordPress 5.6 support
  • Added: Deregister on scripts that other plugins have not localized to their admin pages


  • Added: Form meta repair routine for import to remap field ID’s
  • Bug Fix: Form populate section repeatable
  • Bug Fix: Conditional logic firing form save on form load in preview mode


  • Added: Final round of IE11 compatibility work


  • Added: Post data source meta data columns, including ACF support
  • Added: Select2 / Cascading support of data source searching


  • Bug Fix: Conditional logic disabled field


  • Bug Fix: Conditional logic required field


  • Added: Bootstrap 5 inside label positioning support
  • Bug Fix: Left / right label positioning


  • Added: Support for Oxygen visual builder


  • Added: Inside label positioning (Use WordPress Customize -> WS Form -> Advanced to change positioning / scale)


  • Changed: Default values accept variables regardless of mode selected
  • Added: Placeholder on step setting


  • Added: Icon tooltips
  • Added: Various admin UI improvements
  • Added: WCAG compliant interface colors
  • Added: Filtered field list for action mapping
  • Bug Fix: Debug HTML encoding fix in log


  • Bug Fix: Conditional logic action running


  • Added: Improvements to object, action and conditional logic save / save & close methods
  • Bug Fix: Elementor frontend fix


  • Added: Improved form populate null checks


  • Added: Framework improvements for required fields
  • Added: Layout editor UI improvements


  • Added: Error handling disabled in visual builder previews
  • Bug Fix: Inline CSS rendering in Gutenberg


  • Bug Fix: Upload mime type filtering in repeatable sections


  • Added: Changes made to improve compatibility with WP Rocket


  • Added: Form level restrictions by user role and/or capabilities
  • Added: Field level restrictions by user role and/or capabilities
  • Added: Data grid row variables
  • Bug Fix: Required file uploads on hidden file fields


  • Bug Fix: Removed form ID check on submit db_update
  • Bug Fix: Minor fix on plugin page links


  • Bug Fix: Column mapping on select2 AJAX searching


  • Bug Fix: Admin function hook adjustment to ensure CPTs recognized by post management add-on


  • Added: Further improvements and additions to the template library
  • Added: Hidden field value setting and resetting with conditional logic
  • Added: Improved API call error response handling with KB support
  • Bug Fix: #calc registration in submissions editor sidebar
  • Bug Fix: #calc log events when debug not shown
  • Bug Fix: Mobile to desktop breakpoint sidebar handling in admin


  • Bug Fix: Gutenberg block


  • Added: Improved template library layout and dynamic SVG generator
  • Added: Media attachments for send email action
  • Bug Fix: Ratings field on mobile


  • Added: Functionality added for WooCommerce extension version 1.1.41
  • Added: Calculated template
  • Added: Read only attribute on rating field type
  • Bug Fix: Progress bar events when repeatable section row added
  • Bug Fix: Double clicking on field labels while editing


  • Added: wsf_form_init() function to allow adhoc forms to be initialized


  • Added: Form statistics reset


  • Bug Fix: Conditional logic optgroups


  • Added: Prefix and suffix support on fields (Fully Bootstrap and Foundation compatible using input groups)
  • Bug Fix: Latest version of CodeMirror caused re-initialize issue


  • Changed: Improved auto else feature on conditional logic so it doesn’t apply to event conditions
  • Bug Fix: Signature reset conditional logic action firing event
  • Bug Fix: Color field reset updating minicolor jQuery component


  • Added: Select2 option on select fields (Supports AJAX)
  • Added: Ability to override form element ID in shortcode (element_id)
  • Added: Ability to override form element ID in block
  • Added: Exclude hidden fields option under screen options in Submissions
  • Changed: Clear hidden fields functionality improved


  • Bug Fix: Required conditional logic action


  • Added: Undo, redo and undo history now updates preview
  • Changed: Further conditional logic performance improvements


  • Added: Additional tutorial items
  • Changed: Conditional logic performance improvements
  • Changed: Repeatable section performance improvements
  • Changed: Debug console log performance improvements
  • Bug Fix: Action and conditional logic read only header


  • Added: Time min/max and invalid input validation on fields using jQuery date/time picker
  • Bug Fix: CodeMirror initialization on hidden fields


  • Bug Fix: Return/enter events on input fields
  • Bug Fix: Repeatable section hidden fields not cleared


  • Added: Field label save on return/enter
  • Bug Fix: Initial action label saving


  • Added: Hidden behavior options on fields: Always Include in Actions, Always Include in Cart Total
  • Added: Ability to edit e-commerce fields in submissions (Setting)
  • Bug Fix: Show all if no results option on cascading selects (Non-AJAX)


  • Added: File upload image, video and audio previewing


  • Bug Fix: Checkbox and radio grids with cascading values


  • Added: Hidden fields are cleared in emails by default (Can be disabled)
  • Added: Hidden fields can be cleared in submissions
  • Bug Fix: Validation on hidden fields (HTML 5 compatible)
  • Bug Fix: Removed title and meta from fallback preview template
  • Bug Fix: Required hidden fields


  • Bug Fix: wsf-rendered trigger


  • Added: Form rendered condition
  • Added: Cascading support on multi selects
  • Bug Fix: Form navigation firing order


  • Added: AJAX cascading select fields
  • Added: Cascading checkboxes
  • Added: Support for text, number, range, and rating fields as cascading inputs
  • Added: Placeholder text for cascading fields (No results and loading for AJAX requests)
  • Added: Improved loader when adding a new form
  • Bug Fix: Repeatable section icon coloring
  • Bug Fix: Data grid page selectors for high numbers


  • Added: Filter by author in post data source
  • Changed: Checkbox and radio styling in WS Form framework
  • Bug Fix: Select cascading in Safari


  • Added: Performance improvements
  • Added: Improved presentation of dragged fields
  • Changed: System table reorganization
  • Bug Fix: Min, max validation of fields in repeatable sections
  • Bug Fix: Cascading removing events


  • Added: Deduplication of select, radio and checkbox options across repeatable sections


  • Bug Fix: CodeMirror saving in sidebar


  • Added: Improved hide/show conditional logic performance


  • Added: Retained file uploads on form save
  • Added: Visual tickmarks on range sliders (Chrome only)
  • Added: Custom file upload button label setting


  • Bug Fix: Image selector in data grids


  • Added: Sorting on sidebar repeaters
  • Bug Fix: Set custom validity on radio field


  • Bug Fix: Column mapping indexes / ids


  • Added: Ability to to set min / max dates based on + / – days using +1970-01-05 format (e.g. + 4 days)
  • Added: Improved detection of date time picker presence (avoids clash with Divi date time picker)


  • Added: Human Presence spam protection
  • Changed: Akismet spam protection now found under Form Settings, Spam tab


  • Added: Save form list orderby and order settings by user
  • Added: Validation for dates with ordinal indicators
  • Changed: Removed DELETE and PUT verbs throughout


  • Added: Minor sidebar CSS fixes
  • Bug Fix: Set custom validity only if field will validate


  • Added: Conditional logic date comparison for d/m/Y format
  • Changed: Improved Form Settings sidebar layout
  • Changed: Improved sidebar CSS throughout


  • Changed: Updated date time picker jQuery component


  • Bug Fix: Field bypassing on hidden file fields
  • Bug Fix: Initial rendering of publish button after performance improvements


  • Added: Language support on jQuery date time picker
  • Bug Fix: Select all on bulk edit in data grids


  • Added: Min and max date validation on jQuery date picker
  • Added: autocomplete options for fields


  • Added: Submissions export filtered by date range
  • Added: Improved loading speed of submissions and layout editor
  • Changed: Submissions date columns formatted according to field settings


  • Bug Fix: Conditional logic for actions


  • Changed: Select2 REST API authentication for WordPress 5.5+
  • Bug Fix: Invalid feedback targeting in conditional logic actions


  • Bug Fix: Submission column ordering


  • Added: Populate field triggering fallback
  • Bug Fix: Calc registration on conditional logic actions
  • Bug Fix: Conditional logic setting values on price field now currency formatted for input currency mask


  • Bug Fix: Event firing in multiple conditional groups
  • Bug Fix: Conditional logic field targeting


  • Bug Fix: Localization of conditional logic in same section


  • Bug Fix: Fallback calc value


  • Added: Support for calc with price column mapping
  • Bug Fix: Calc on negative price values


  • Added: Price subtotal and cart total fields now trigger calc fields
  • Bug Fix: Minor edit on ‘Read Only’ setting in admin


  • Added: New reset and clear icons for repeatable section
  • Added: Tab, section and field reset and clear conditional logic actions
  • Added: Setting to show all options if cascading lookup cannot find a match
  • Changed: Improved conditional logic targeting on repeatable sections


  • Added: Various layout editor UI improvements
  • Bug Fix: Stacked conditional logic actions
  • Bug Fix: Deleted conditional groups caused logic previous to be incorrect


  • Changed: Select, radio and checkbox price mapping can now contain values with currency


  • Added: #section_row_count now works on initial form load
  • Bug Fix: Repeatable section radio and checkbox value conditional logic
  • Bug Fix: Conditional logic firing when sections are cloned


  • Added: Support for optgroups and fieldsets in cascading select and radio fields
  • Bug Fix: Tab selection in Bootstrap 5
  • Bug Fix: Data grid column delete removed for single column grids


  • Added: Conditional logic for checked count equals, does not equal, greater than, less than on checkbox fields
  • Added: Conditional logic for selected count equals, does not equal, greater than, less than on select fields
  • Added: Max checked count limits checking additional checkboxes on checkbox fields
  • Added: Max selected count limits selecting additional options on select fields


  • Added: Debug populate feature now excludes fields with calculated values
  • Added: Improved debug populate event firing
  • Bug Fix: Price select cascading column selection fix


  • Added: Ability to include dividers in emails
  • Added: Added wpautop to text editor field output in emails
  • Added: Full width value fields in expanded conditional logic view
  • Bug Fix: Deactivation fixed if moving between hostnames
  • Bug Fix: Added additional new lines to email content to avoid hitting line limit
  • Bug Fix: @unserialize was incorrectly causing errors in WP 5.5 so changed this to is_serialized method
  • Bug Fix: Removed double p tags in email content caused by output of wpautop


  • Added: Dismiss nag fixed


  • Added: Action variable column mapping on price select, checkbox and radio fields


  • Added: LinkedIn conversion tracking
  • Changed: Improved settings layout
  • Bug Fix: Foundation checkbox and radio field markup


  • Added: Improved support for WAF 403 errors
  • Changed: X-HTTP-Method-Override disabled by default


  • Added: Support for minumum and maximum selected/checked in progress bar calculations
  • Added: Minimum and maximum checked on price checkbox
  • Added: Minimum and maximum selected on price select
  • Changed: Improved support for min and max dates for native and jQuery date picker


  • Added: Ability to add click events to navigation buttons
  • Bug Fix: Reset and clear applying to fields in repeatable sections


  • Added: Improved rendering of images in submissions table
  • Bug Fix: Wrapping submission labels
  • Bug Fix: Count submit unread API for submissions


  • Added: Section width support for action update_form method


  • Bug Fix: Unchecked checkboxes now equals 0 in calculations


  • Added: Table CSS added to override issue caused by poor CSS selectors in third party plugins
  • Bug Fix: Divi shortcode


  • Bug Fix: ID’s on multiple case sensitive checkboxes in conditional logic


  • Added: #pow(base, exponent) variable
  • Added: #ecommerce_price(number) variable
  • Added: Array to comma delimited setting in custom endpoint action
  • Changed: Revised REST endpoint declarations to meet 5.5 requirements


  • Added: Public and mobile toolbar menu features


  • Added: Admin toolbar menu features


  • Added: select_option_text, checkbox_label, radio_label as server side variables
  • Bug Fix: Required attributes on variables


  • Added: Bootstrap 5 framework support
  • Added: Hooks for TinyMCE configuration
  • Added: Improved welcome screen
  • Bug Fix: Case sensitivity in conditional logic
  • Bug Fix: Gutenberg block fix for visual editor


  • Added: Data grid ‘Insert Image’ icon
  • Added: Select field minimum and maximum selected


  • Added: Section ID’s hidden in emails if they are empty
  • Bug Fix: Pre-parsing


  • Bug Fix: Calculated field


  • Added: #post_meta, #user_meta now works in all fields
  • Added: Various UI improvements


  • Added: Improvements to visual builder modules
  • Bug Fix: Data grid tab JS error on click for read only grids


  • Bug Fix: Repeatable section calculations on section add


  • Added: Improved API / Database error handling
  • Added: Theme and MySQL variable added to system report
  • Changed: Framework detection in settings


  • Bug Fix: mod_security fix


  • Added: Data sources for select, checkbox, radio and fields supporting datalists
  • Added: Data source: Preset (Country, State etc)
  • Added: Data source: Post (Posts, Pages etc)
  • Added: Data source: Term (Category, Tag etc)
  • Added: Data source: User
  • Added: Data source: ACF (Field choices)
  • Added: New value based conditional logic If/Then/Else options
  • Changed: Various admin interface styling improvements
  • Bug Fix: Changed ‘per page’ functionality for compatibility with 5.4.2
  • Bug Fix: Tab previous and next buttons if no tabs present