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



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


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


This form plugin is everything you need for your website, and their support is simply amazing, fast and very helpful. I Was having a few technical issues and they helped me fix everything within 30 minutes. WS Form - You Guys Rock!
WS Form is by far the best word press form I have used. Its integration into woo-commerce allows us to do so much more. The support system is very responsive and provides solutions even by recreating the scenario and sending the files which can then be imported into your WS Form section to view the solution. The support function is built into the system so with a couple of clicks the form in question can be sent for analysis. WS Form can create simple forms and the most complex with easy to use ready-made css fields to change the look and feel. Without WS Form I would have required a bespoke solution.
WSForm was the perfect fit for conditional form building in my shop. I needed many variations and calculations on order totals for sizes and colors along with max limits for customers. This was well worth the purchase! The form did all of that and more with advanced variation settings and unlimited conditional options. The drag and drop and easy to understand GUI made it far superior to other form builders I've used and it delivered results! WSForm is outstanding but I could not be happier with the support. It was responsive and attentive. I was on a deadline and the support was fast, to the point and went out of their way to make sure I had not only the information I needed but also the knowledge to use it going forward. If you're on the fence between form plugins, then let the support from WSForm make the decision easy. 5-star without question!
Very great plugin with the best support team. If you want to create individual forms for woocommerce products, you definitely need this!
We use WS Form Pro for letting users submit their top web agencies at and have them pay a small subscription fee for featuring their agencies throughout our sites. Which means, we’ve set-up PayPal *subscriptions* (not just one-off payments) with the help of WS Forms (Pro), something that other more prominent plugins like WP Forms etc. can’t do. The whole handling of the plugin and its add-ons feels highly intuitive. We haven’t added any custom code to it other than a few lines of CSS. I had a few questions in the beginning and the WS Form customer support was both greatly helpful and very responsive. Their documentation is top-notch too, something that can really make a difference to me. It integrates very nicely with both Elementor and WooCommerce, so that’s one of the things I love, amongst many other great features this plugin provides.
September 10 Update The WS Form support team surprises me again: As our project progresses, it was time to integrate a brand-new form into an Elegant Theme's Divi-themed site. The form that was behaving fine outside of Divi became unusable when placed on a Divi page. I contacted WS Forms who detected the issue and applied a fix to make it work *within hours after it was reported*. Truly amazing. For the record, we don't have a corporate account with dozens of licenses, but WS Forms' quick response showed technical expertise AND full commitment to support all of their customers as only first-class companies do. Hands dow, this is now my tool of choice for all my WordPress projects. --- I was looking for a tool to create a form, powerful enough to extend it with functionality not necessarily found in a "form maker" intended to place some input fields on WP to gather names and addresses. I needed a solution with more depth and it was a nice surprise to find the *many* well-thought features of WS Form. Other blogs have described this plugin with reasonable detail. Yes, it's a really powerful tool, but what really sets it apart is the commitment that its creators have for their customers. Every question I've asked has been quickly answered in a concise and polite manner. WS Form is a five-star piece of software, but the support behind it is nothing less that stellar.


Contact Form by WS Form – Drag & Drop WordPress Form Builder はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。


“Contact Form by WS Form – Drag & Drop WordPress Form Builder” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。



  • 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