# WS Form
> WS Form PRO is a form builder plugin for WordPress. This file maps publicly available product, feature, integration, knowledge base, and template content on wsform.com.
Use the linked pages for full detail. Prefer Premium Integrations vs Built-In Integrations terminology as labeled. Do not refer to the product as “WordPress Forms”.
This file includes full text for product hubs, features, integrations, knowledge base articles, and templates. Blog posts are listed under Optional with short excerpts only.
## Home
URL: https://wsform.com/
# Smart. Fast. Forms.
## Trusted by Developers. Built for WordPress.
Community Voices
## The Experts' Choice
Featured in
## Respected WordPress Resources
## Feature-Rich. One Plugin.
View All Features
## Click, Connect. [ws_form_total_integrations]+ Integrations.
View All Integrations
## What People Say About WS Form
More Reviews
## Modern Form Development for WordPress
### 100+ Templates
Go beyond a traditional template library. WS Form dynamically creates forms that include your custom fields, repeaters, column widths and more. WS Form has deep and bi-directional integration with custom field plugins such as ACF, Meta Box and Pods.
### 65+ Field Types
WS Form includes over 65 feature rich field types, no additional plugins or coding required. Control field behavior with our unrivalled no-code settings including styling, validation, breakpoint responsiveness and accessibility. All HTML 5 field attributes are supported.
### Responsive Forms
We were the first form plugin for WordPress to offer true drag and drop, resizable, breakpoint specific, multi-column editing. Furthermore, WS Form can render native Bootstrap and Foundation HTML if your theme demands it.
### Multi-Step Forms
Improve conversation rates by splitting forms into easily digestible chunks. Our built-in multi-step options allow you easily create tabs or even control the visibility of sections and fields using our extensive conditional logic library.
### Conditional Logic
We're not just talking about toggling a field if another field equals a value. We're talking 100+ different IF conditionals and 50+ context sensitive THEN/ELSE actions. You won't find form conditional logic like this anywhere else.
### Calculated Fields
Use calculated fields and 200+ variables and functions to create dynamic, feature rich forms that provide invaluable tools for your website users. Our built-in templates provide single click forms for a variety of commonly used calculators.
### Repeaters
Create repeatable sections that can contain any number of fields, conditional logic, calculations, cascading and e-commerce functionality. No additional coding or plugins required. No lengthy knowledge base article to follow, just check 'Repeatable' and go.
### Debug Console
Gone are the days of filling out each field individually to test a form. Unique to WS Form, our debug console allows you to populate complex forms and submit them in a single click. The console also includes detailed event logging and error management.
## Pricing
URL: https://wsform.com/pricing/
# Choose Your WS Form PRO Edition
All plans include a 14-day money-back guarantee. Upgrade or cancel anytime.
## Features & Integrations
Browse what's bundled with each plan, from core form-building features to marketing, payment and CRM integrations.
## Features
URL: https://wsform.com/features/
Browse product features for forms in WordPress.
## Integrations
URL: https://wsform.com/integrations/
Premium Integrations and Built-In Integrations for WS Form PRO.
## Templates
URL: https://wsform.com/templates/
Ready-made form templates for WordPress.
## Accessibility
URL: https://wsform.com/feature/accessibility/
Create more accessible forms in WordPress with responsive layouts, ARIA attributes, high contrast styling, and accessible spam protection.
WS Form has a goal of complying with Web Content Accessibility Guidelines (WCAG) wherever possible to make forms in WordPress more accessible.
Accessibility considerations include ARIA attributes for field labels, descriptions, and required fields, fully responsive layouts for different devices, high contrast text, and high contrast button and message colors.
You can also use section labels, adjust form, tab, and section headings to follow sequential heading requirements, and add help text at both form and field level. Accessibility-friendly spam protection methods include Honeypot and Cloudflare Turnstile.
WS Form also uses a default font size of 16px to help prevent unnecessary input zoom on mobile devices and provides a clean DOM structure for easier custom styling with CSS.
## Action & Filter Hooks
URL: https://wsform.com/feature/action-filter-hooks/
Modify rendering, validation, actions, and submissions with WS Form action and filter hooks.
WS Form includes action and filter hooks that let you customize how forms behave in WordPress. You can modify forms before they render, change submission validation, adjust action output, and respond when submissions are created, updated, posted, or change status.
Hook coverage spans rendering, styling, scripts, variables, translations, exports, redirects, webhooks, email notifications, PDF generation, and submission handling. For example, hooks can modify Send Email recipients, subject, message, headers, attachments, and template output, or change Webhook headers and payloads.
You can also tailor validation and messaging during submission. WS Form supports field-level and form-level validation hooks, custom invalid feedback, custom messages, redirects on validation failure, blocked IP and keyword checks, and hidden fields injected at submit time.
## AI Generated Forms
URL: https://wsform.com/feature/ai-generated-forms/
Describe the form you need and generate a form in WordPress you can edit in WS Form.
Create a form in WordPress simply by describing the type of form you want. The AI Generated Form template in WS Form uses the OpenAI add-on to build a form from your prompt.
Supported fields for AI-generated forms include Text, Text Area, Email, Phone, URL, Number, File Upload, Rating, Select, Checkbox, and Radio. Help text and placeholders can also be generated for each field when you request them in your description.
Once the form is created, you can edit it like any other form using the layout editor. The OpenAI add-on also includes templates and actions for text, image, audio, chat, and moderation workflows.
## Calculations
URL: https://wsform.com/feature/calculated-fields/
Calculate field values in real time with formulas, math functions, repeatable sections, and price formatting.
Create calculated fields in your forms in WordPress with the #calc function in WS Form. Calculations update in real time and can handle everything from simple addition to more complex trigonometric functions.
Calculated fields work with all fields that can accept numeric input, including rating and progress. You can calculate from any field or variable that outputs a numeric value, including dates, and use calculations in settings such as Default Value, Label, Placeholder, Help, Minimum, Maximum, and field content for Text Editor and HTML fields.
WS Form also includes a calculator to help build formulas. It can insert compatible fields, add math variables, and supports calculations in repeatable sections. If you need to display a result as a price, you can format it using your currency settings.
## Cascading Fields
URL: https://wsform.com/feature/cascading-fields/
Build dynamic select, checkbox, and radio lookups that change based on another field.
Cascading fields let you create dynamic lookups that change based on the value of another field on your form in WordPress.
WS Form supports cascading for select, checkbox, and radio fields. A common example is a vehicle make, model, and year lookup, where each selection filters the next set of options.
These fields are configured with a data grid, making it easy to manage options and filter them by a selected value. You can also daisy chain cascaded select and radio fields, and use AJAX with larger select datasets to improve form performance.
## Certified Submissions
URL: https://wsform.com/feature/certified-submissions/
Add TrustedForm certification to your forms to capture consent details and validate submitted lead data.
Add TrustedForm to your forms in WordPress to certify and validate submitted form data. It helps document proof of consent, contact intent, and the time and source of form submissions.
The TrustedForm field can add compliance support to any WS Form form. You can choose fields for the certificate URL, ping URL, and token, enable sandbox mode for testing, and set an optional identifier for tracking and reporting.
WS Form automatically enqueues the TrustedForm JavaScript and binds TrustedForm to your form so it only records consent for that form. You can also use TrustedForm on multiple forms on the same page.
## Conditional Logic
URL: https://wsform.com/feature/conditional-logic/
Create dynamic forms that respond to how people interact with your fields.
Conditional Logic lets you create dynamic forms that change according to the way a user interacts with your form.
In WordPress, you can use conditional logic to show a field or block of text when a checkbox is checked, display a warning when a range slider is greater than 50%, or reveal extra fields based on user input.
It can also trigger actions such as saving form progress when a Next tab button is clicked, firing an email action when a button is clicked, pushing partial completions to Constant Contact or MailChimp, or running JavaScript when a field is clicked or changed.
## Conversational Forms
URL: https://wsform.com/feature/conversational-forms/
Show questions one by one on a dedicated full-screen form page.
Conversational forms present questions one-by-one instead of showing the entire form at once. This can make forms easier to complete and improve user satisfaction.
In WordPress, each section becomes a step in the conversational form. These forms run on a dedicated full-screen page, giving you larger, easier-to-read fields.
You can customize colors, fonts, and layouts, use conditional logic, calculated fields, and variables, and integrate with WS Form actions. Conversational forms are also fully mobile responsive.
## Conversion Tracking
URL: https://wsform.com/feature/conversion-tracking/
Fire conversion tags from your forms for Google, Facebook, LinkedIn, and Fathom analytics.
Track form conversions in WordPress by firing conversion tags from a WS Form action. Supported options include Google Tag Manager (Data Layer), Google Analytics, Fathom Analytics, Facebook (Standard), Facebook (Custom), and LinkedIn (Insight Tag).
You can choose when the action runs when a form is saved, submitted, or both. Many settings accept straight text or WS Form variables, so you can pass dynamic values into your tracking setup.
If you need to fire a different type of conversion tag, you can use the Run JavaScript action.
## CSS Variables
URL: https://wsform.com/feature/css-variables/
Browse, copy, and download WS Form CSS variables for faster form styling.
WS Form includes a browsable reference of its CSS variables. You can click the copy icon to copy any variable name or default value.
You can also copy variable names directly from the Styler by clicking its copy icon. For form styling in WordPress workflows, WS Form also provides downloadable CSV and JSON files of its CSS variables.
## Data Encryption
URL: https://wsform.com/feature/data-encryption/
Encrypt form submissions in WordPress with seamless submission data encryption.
Protect form submission data with built-in encryption in WS Form. Submission meta data is encrypted and decrypted seamlessly, with no additional coding required.
WS Form uses HKDF-SHA256 keys and AES-256-CTR encryption for form submissions. In WordPress, only submissions made after data encryption is enabled are encrypted.
File uploads and signature files stored on the server are not encrypted. CSV exports, emails sent with wp_mail, and data sent to third-party integrations are also unencrypted.
## Data Sources
URL: https://wsform.com/feature/data-sources/
Populate form choices automatically from WordPress, presets, and supported custom field plugins.
Data Sources let you automatically populate Select, Checkbox, and Radio fields, plus other fields that support data lists. In WordPress, you can pull choices from presets, posts, terms, users, and supported custom field plugins.
Choose a data source, configure its settings, and click Get Data to retrieve and preview the results. WS Form also supports optional column mapping, so you can choose which columns are used for labels, values, and action variables.
Some data sources update dynamically in real time as your WordPress content changes. You can also switch a data source to Off to manually edit the data grid and make it static.
## Debug Console
URL: https://wsform.com/feature/debug-console/
Populate fields, submit test entries, and review logs and errors while viewing your form.
The Debug Console helps you test and debug forms in WordPress created with WS Form PRO while viewing a form. It includes tools for populating fields, submitting test entries, and reviewing useful technical information.
You can automatically fill form fields with appropriate sample data and, in many cases, submit a test form in a single click. The console also shows performance data, logs, and server-side errors to help you understand how your form is behaving.
If you use multiple form instances on the same page, the Debug Console lets you switch between them and review each instance independently.
## Dynamic Variables
URL: https://wsform.com/feature/dynamic-variables/
Insert dynamic content into form fields and email templates with WS Form variables.
WS Form variables let you add dynamic content to different parts of your form. You can use them in places such as default field values and email templates.
Areas that support variables include a field lookup icon. Click the icon to view available variables for that field and insert one into the value you are editing.
All variables start with the # character. Some variables accept parameters, including multiple parameters, and values containing commas can be enclosed in double quotes.
## E-Commerce
URL: https://wsform.com/feature/e-commerce/
Build forms for selling products or services in WordPress.
WS Form includes e-commerce field types that help you create forms for selling products or services.
With the WooCommerce add-on, you can add forms to products in your store. This gives you a flexible way to use forms in WordPress in your e-commerce workflow.
## Email Validation
URL: https://wsform.com/feature/email-validation/
Verify email addresses with a validation link and use the result in your form logic.
Verify a user's email address by sending a validation link. When they click the link in the email, they are returned to the form and the submission is verified.
In WordPress, this gives you a simple way to confirm submissions before changing what happens next. You can then use conditional logic to change the appearance or behavior of the form.
This method can also be used as a form of double opt-in. WS Form also includes an Email Validation demo template to help you build this kind of form.
## File Uploads
URL: https://wsform.com/feature/file-uploads/
Let visitors upload one or more files and use them in submissions, emails, and supported integrations.
Let people upload files with your forms in WordPress. The File Upload field allows users to choose one or more files from their device and upload them when the form is submitted.
Uploaded files can be saved to submissions, attached to emails, or mapped to integrations where supported. You can also choose different file handlers for each file field, including private, public, and Media Library destinations.
WS Form supports both a default file upload type and a DropzoneJS type. DropzoneJS uploads images immediately, can reduce form submission time, and performs image resizing, format, and quality changes in the browser.
## Floating Field Labels
URL: https://wsform.com/feature/floating-field-labels/
Show labels inside fields and move them out of the way when visitors enter content.
Floating field labels appear inside a field when it is empty and move outside the field when it contains content. This creates a placeholder-like effect while keeping the label visible as people type.
In WS Form, this approach helps forms occupy less screen real estate. The feature uses a pure CSS method and does not require JavaScript or third-party libraries.
You can set label positioning to Inside for all default fields in a form or apply it to individual fields in your forms in WordPress. Styling options are also available to adjust how inside labels behave when a field is populated.
## Form Scheduling
URL: https://wsform.com/feature/form-scheduling/
Set submission behavior, validation, messages, and spam controls for your forms.
WS Form gives you detailed form settings so you can control how your form behaves when it is submitted. You can change the form label, show or hide that label, reset the form after submit, and choose whether Enter or Return can submit the form.
For multi-step forms in WordPress, you can control tab behavior with options such as remembering the last tab clicked, validating each tab before moving forward, showing invalid fields, and hiding tabs while keeping tab functionality.
You can also configure invalid feedback, focus the first invalid field, set error message styles and positions, apply custom CSS classes, and use built-in spam controls such as IP throttling, IP blocklists, and keyword blocklists.
## Form Templates
URL: https://wsform.com/feature/single-click-templates/
Start with built-in templates and create forms in a single click.
Create forms faster in WordPress with built-in templates. When you add a new form in WS Form, you can start with a blank form or choose a template.
Template forms let you build a form in a single click. You can then edit any template as much as you like using the layout editor.
If you install an add-on that includes templates, you can open that add-on tab and select a template. Some add-ons also let you create forms from connected data in a single click, ready to go.
## GDPR Compliant
URL: https://wsform.com/feature/gdpr-ready/
Add consent checkboxes and create data erasure or export request forms in WordPress.
WS Form can help make your forms and website GDPR-compliant. You can add consent checkboxes to explain why data is being collected and request consent for using the information provided.
WS Form also supports GDPR request workflows in WordPress. It integrates with the WordPress personal data tools so you can create forms for data erasure requests and data export requests.
If you need guidance on GDPR itself, you can learn more here: What is GDPR?
## High Performance
URL: https://wsform.com/feature/high-performance/
Render forms fast with pre-compiled output, isolated submissions, and smart asset loading.
WS Form is designed with form-rendering performance in mind. In WordPress, published forms are rendered from a pre-compiled snapshot that uses a single database query per rendering.
Form submissions are stored separately from standard WordPress database tables. This helps avoid adding submission records to tables used by pages, posts, and attachments.
WS Form also keeps front-end output lean. Most fields use native browser functionality, scripts and CSS are only enqueued when a form is rendered, and additional libraries are only loaded when a form contains a field type that needs them.
## HoneyPot
URL: https://wsform.com/feature/honeypot/
Add honeypot protection to forms in WordPress and strengthen your spam prevention setup.
WS Form includes HoneyPot as part of its spam prevention tools for forms in WordPress.
Use HoneyPot alongside other spam protection features in WS Form, including deduplication, custom server-side validation, form validation, NONCE, IP throttling, and spam protection fields.
WS Form also supports integrations and third-party services for spam prevention, giving you multiple ways to reduce unwanted submissions.
## If ... Endif
URL: https://wsform.com/feature/if-endif/
Use #if and #endif to conditionally include content across your forms, actions, and mappings.
Use #if and #endif to conditionally include content in WS Form. In forms in WordPress, this lets you show or hide content when an expression evaluates to true or false.
These variables can be used in a variety of locations, including the Send Email action, Show Message action, conditional logic, and field mappings to external APIs.
You can compare values with operators such as equals, does not equal, less than, greater than, contains, starts with, and ends with. You can also combine multiple conditions with && and ||.
## Import / Export
URL: https://wsform.com/feature/import-export/
Back up forms, move them between websites, and import JSON or CSV data where supported.
Import and export tools in WS Form help you back up forms and transfer them between websites. Form exports download as a JSON file that you can save and later import.
In WordPress, you can import a form by selecting a JSON file from the layout editor or by dragging the file into the form builder area. You can also drag forms into the Form list.
WS Form can also export data such as select options, checkboxes, and radios, and import CSV files into data grids for entering large volumes of data. If you need to bring part of a form into another form, use the Section Library.
## Layout Editor
URL: https://wsform.com/feature/layout-editor/
Build multi-column form layouts visually with drag-and-drop editing and breakpoint control.
The Layout Editor helps you build and edit form layouts visually in WS Form. Arrange sections and fields, create multi-column structures, and refine how your form is organized without writing code.
You can also adjust layouts by breakpoint, so forms stay clear and usable across different screen sizes. It is part of the standard WS Form form-building workflow.
## MCP Server
URL: https://wsform.com/feature/mcp-server/
Use compatible AI clients to create, edit, and manage forms in WordPress with natural language.
WS Form includes a built-in Model Context Protocol (MCP) server that lets compatible AI clients connect directly to WS Form in WordPress. Using natural language, you can create and edit forms, configure fields, conditional logic and actions, apply styles, work with submissions, and retrieve form statistics.
The MCP server exposes more than 40 WS Form Abilities as MCP tools. It works with MCP-compatible AI clients including Claude, ChatGPT, Novamira, and Angie, with no middleware or custom integration code required.
Form editing through the MCP server is disabled by default for security reasons. All exposed abilities are protected by permission callbacks, and user access is checked against standard WS Form User Capabilities.
## Migrate Forms
URL: https://wsform.com/feature/migrate-forms/
Import forms and submissions from supported plugins, or export forms, sections, and data grids for transfer or backup.
WS Form includes migration tools to help you move existing forms into WordPress with less manual work. You can import forms and submissions from supported plugins and export forms, sections, and data grids for backup or transfer.
WS Form supports migration from Gravity Forms, Visual Form Builder Pro, and WPForms. It also supports importing and exporting forms, sections, and data grids when you need to move content between websites.
## Multi-Step Forms
URL: https://wsform.com/feature/tabulated-forms/
Build multi-step forms in WordPress with tabs, next and previous navigation, and tab-level validation options.
Tabs are a convenient way to build multi-step forms in WordPress. Each form can have one or many tabs, and tabs appear on your website when your form has two or more tabs.
You can add, clone, delete, rename, and reorder tabs in the layout editor. Tab labels can also be shown as headings when a tab is selected.
WS Form also lets you hide tab navigation while keeping tab functionality, so users can still move through your form with previous and next tab buttons. Validation options are available to control progress between tabs.
## Online Payment
URL: https://wsform.com/feature/online-payment/
Accept credit card and PayPal payments directly through your forms in WordPress.
Accept online payments directly from your forms with WS Form payment gateway add-ons for WordPress.
Available options include Authorize.Net Accept, ConvesioPay, Mollie, PayPal Checkout, and Stripe Elements. Depending on the gateway, you can accept credit card payments, PayPal payments, or online payments through your forms.
The Mollie add-on acts as a gateway prior to creating a form submission.
## Progress Bars
URL: https://wsform.com/feature/progress-bars/
Show form, tab, upload, or custom progress in your forms in WordPress.
Add a progress bar to your form in WordPress to show visitors how far they have progressed. WS Form supports form progress, tab progress, upload progress, and custom progress.
For multi-tab forms, you can add a progress bar to each tab. The bar shows the overall progress of the entire form across all tabs.
You can also control a progress bar manually with calculated fields, conditional logic, or your own JavaScript. Help text supports progress variables such as #progress and #progress_percent.
## Ratings Fields
URL: https://wsform.com/feature/star-ratings/
Collect one or more ratings in your forms in WordPress with flexible icons, colors, defaults, and validation.
The Rating field lets people give one or more ratings on your form. In WordPress, you can use it to collect a numeric rating value from 1 up to your chosen maximum rating.
You can control the label, help text, default value, required status, and visibility. The field also includes ARIA label support, styling options, icon choices, and validation settings.
WS Form also lets you change the icon design, icon size, selected and unselected colors, horizontal alignment, and maximum rating. For more control, you can add custom classes and custom HTML attributes.
## Repeaters
URL: https://wsform.com/feature/repeaters/
Let people duplicate rows of fields for orders, lists, and other repeatable form entries.
Repeatable sections let people duplicate a row of fields in your form. This works well for order forms, lists of names, and other forms where extra rows make completion easier.
In WordPress, you can make any section repeatable and add as many repeatable sections to a form as you wish. No additional plugins or coding are required.
Repeatable sections are compatible with conditional logic and e-commerce fields, and support all field types with usual exceptions such as reCaptcha. Repeated fields are also neatly presented in emails and submissions.
## Responsive Forms
URL: https://wsform.com/feature/responsive-forms/
Create responsive forms that adapt to phones, tablets, laptops, and desktops.
Responsive forms adjust their layout to suit the screen size of the device being used. That matters because incorrect scaling can make form elements harder to read and interact with, especially on smaller screens.
With WS Form, you can build fully responsive forms in WordPress using a drag and drop interface. You can work with breakpoints, change field and section widths and offsets, and create layouts that are easier to use across different devices.
Widths are measured in columns, with a maximum of 12 columns per field or section. You can start with a single-column mobile layout, then progressively introduce more columns at larger breakpoints for tablets, laptops, and desktop screens.
## Right-To-Left Support
URL: https://wsform.com/feature/right-to-left-support/
Use WS Form with right-to-left languages in both admin screens and front-end forms.
WS Form PRO is compatible with RTL (Right-To-Left) languages and screen layouts.
That compatibility covers both administration screens and front-end rendering, helping you build and display forms in WordPress in RTL environments.
## Run JavaScript
URL: https://wsform.com/feature/run-javascript/
Run custom JavaScript when a form is saved, submitted, or both.
Use the Run JavaScript action to run JavaScript when a form is saved or submitted. This gives you a direct way to add custom behavior to your forms in WordPress.
You can choose when the action runs: on save, on submit, or both. Enter your JavaScript in the action editor and save your changes in the sidebar.
The JavaScript can include straight text or WS Form variables. For example, you can output submitted values inside your script.
## Run WordPress Hooks
URL: https://wsform.com/feature/run-wordpress-hooks/
Run WordPress actions or filters when a form is saved, submitted, or both.
The Run WordPress Hook action lets you run a WordPress action or filter when a user saves or submits a form. It gives developers a way to run PHP code from a form workflow in WordPress.
You can choose whether the hook runs on save, submit, or both. You can also select a filter or action, enter the hook tag, and choose whether it runs before submission creation, before other actions, or after other actions.
When used as a filter, the hook can return updated submit data, a spam level, custom messages, error messages, redirects, or a halt signal for action processing. When used as an action, the hook receives the form and submit data so you can work with submitted values in your own code.
Learn how to use the Run WordPress Hook action.
## Save Progress
URL: https://wsform.com/feature/save-progress/
Let visitors save their form progress and return later to complete it.
The Save button lets a website visitor save the progress of their form and come back later to complete it.
To use Save for forms in WordPress, the Save to Submissions action must be active on the form with the Save event enabled. Actions that run when the Save button is clicked are configured in the Actions sidebar.
The Save button also includes field settings for label, help text, ARIA label, styles, visibility, disabled state, user status, custom classes, custom attributes, and breakpoint-based layout control.
## Section Library
URL: https://wsform.com/feature/section-library/
Use ready-made sections to create forms faster and reuse your own sections across your website.
The Section Library includes ready-made sections that help you create forms more quickly. In WordPress, you can open it from the Build menu under the Sections tab.
Add a section by dragging and dropping it into your form to choose where it goes, or click a section to add it to the bottom of your form.
Sections can include conditional logic. WS Form adds that logic automatically when you insert the section, helping you keep interactive behavior intact.
You can also save your own sections to My Sections, search built-in and custom sections by keyword, and import or export library items for reuse.
## Select2 Dropdowns
URL: https://wsform.com/feature/select2-dropdowns/
Upgrade select fields with Select2 for searching, AJAX, and smoother large option lists.
Select2 is a jQuery-based replacement for select boxes. In WS Form, you can add it to any Select or Price Select field in your form in WordPress.
Select2 supports searching, AJAX, and infinite scrolling of results. If your select field has a lot of options, you can enable AJAX to help improve performance.
You can enable Select2 in the field settings, or add it manually to a Select or Price Select field on your website.
## Send Emails
URL: https://wsform.com/feature/send-emails/
Send any number of form emails with configurable recipients, content, attachments, and headers.
Send Email lets you send any number of emails when a form is saved, submitted, or both. In WordPress, you can configure recipients, subject, message content, attachments, headers, and character set.
Choose HTML or plain text email format and edit messages with the WordPress visual editor or raw HTML. You can also dynamically set supported email values with WS Form variables.
Attach uploaded files, signature fields, or media library files to your emails. You can also link uploaded file names in the email submission and clear hidden field values before the action is processed.
## Server-Side Validation
URL: https://wsform.com/feature/custom-server-side-validation/
Validate submissions and fields server-side, then show feedback, messages, or redirects when checks fail.
WS Form includes server-side validation hooks for validating a full submission or validating each field when a form is submitted. This gives you a way to add your own validation logic to forms in WordPress and return errors back to the form.
Field-level validation can return standard invalid feedback, custom invalid feedback, messages, or a redirect. Submission-level validation can return messages or a redirect. WS Form supports one or more errors by pushing actions to the validation array and returning them to the form.
Validation hooks receive context such as the post mode and a partial submit object. Field validation also includes the field ID, submitted value, and repeatable section row index, and email addresses can be validated before sending emails with the Send Email action.
## Signatures
URL: https://wsform.com/feature/signatures/
Let visitors sign forms with a mouse or touch device and save signatures with each submission.
The Signature field lets website visitors physically sign your form using a mouse or a finger on a touch device.
In WordPress, you can add a signature field to a form, make it required, show help text, and control how the field is displayed. You can also choose the output format for the signature as PNG, JPG, or SVG.
Signatures are stored in a submission much like a file upload. You can also attach signatures to email actions as attachments.
## Spam Protection
URL: https://wsform.com/feature/spam-protection-2/
Protect forms in WordPress with spam checks, blocking tools, scoring, and anti-bot integrations.
WS Form includes a range of spam protection tools for forms in WordPress. You can reduce unwanted submissions with validation, blocking rules, throttling, anti-bot fields, and third-party spam protection services.
Built-in options include deduplicating form submissions, custom server-side validation, form validation, HoneyPot, NONCE, and IP throttling. You can also block submissions by keyword, IP, domain name, and user agent.
WS Form also integrates with services including Akismet, OpenAI Moderation, CleanTalk, Clearout, OOPSpam, Cloudflare Turnstile, hCaptcha, reCAPTCHA, and CaptureFox.
Spam checking with Akismet, reCAPTCHA Version 3, and hCaptcha stores a spam score against submissions. Scores run from 0% to 100%, are shown as a colored circle, and submissions deemed as spam are moved to the Spam folder on the submissions page.
## Statistics
URL: https://wsform.com/feature/form-statistics/
Monitor daily views, saves, submissions, conversion rates, and unread counts for forms in WordPress.
WS Form includes built-in statistics for forms, including views, saves, and submissions. A view is counted when a form is shown on your website, a save is counted when someone uses a Save Button to save progress, and a submission is counted when someone uses a Submit Button.
Statistics are counted daily and shown in multiple places, including the WordPress dashboard widget and the form list for individual forms. You can view statistics for all forms or a single form over a selected date range, and each form also shows an overall conversion percentage for submissions versus views.
WS Form can also send daily, weekly, or monthly email reports with views, saves, submits, and conversion analytics. Unread submission counts are shown in the WS Form admin menu and at form level, and those counts decrease when submissions are viewed.
## Styling
URL: https://wsform.com/feature/customize-appearance/
Control colors, typography, sizes, and responsive styling for better-looking forms in WordPress.
Customize how your forms in WordPress look with styling tools built into WS Form. Control colors, typography, and sizes to create forms that fit your website.
WS Form includes Styler for designing forms with intuitive controls and over 400 customizable settings. You can also use CSS variables for deeper visual control.
Responsive forms help your forms look good across mobile phones, tablets, and desktop screens. WS Form also supports form and field attributes for additional HTML-level configuration.
## Summary
URL: https://wsform.com/feature/summary/
Let users review completed fields with automatic or custom form summaries.
Add a summary to long forms so users can review the fields they have completed before submitting. In WS Form, you can create a summary automatically with the Summary field or build your own summary markup in an HTML field.
The Summary field can show or hide form, tab, and section labels, create multi-column layouts, exclude certain fields, and create tables for repeatable sections.
For custom summaries in WordPress, you can insert base summary markup with the Insert Form Summary HTML button and use WS Form variables such as #field, #text, #if, and repeatable section variables to control the output.
## Translation
URL: https://wsform.com/feature/translation/
Build multilingual forms with popular WordPress translation plugins or create separate forms for each language.
Create multilingual forms in WordPress with WS Form. It supports popular translation plugins including WPML, Polylang, TranslatePress, and Weglot.
You can also translate forms manually by creating separate forms for each language. This gives you a simple option for multilingual websites.
WS Form integrates with Polylang and WPML to automatically translate form in WordPress content into multiple languages. It also works with TranslatePress for visual browser-based translation and with Weglot for automatic translation of visible form content.
## Visitor Tracking
URL: https://wsform.com/feature/visitor-tracking/
Capture visitor tracking attributes with form submissions and use them in email acknowledgements.
WS Form includes built-in tracking attributes that can provide information about the website visitors using your form.
When a form is saved or submitted, you can attach tracking attributes to the submission. In WordPress, tracking attributes are disabled by default to help support GDPR compliance.
You can enable or disable tracking attributes in form settings while editing a form. WS Form also lets you show tracking data in an email acknowledgement using #email_tracking.
## AbuseIPDB
URL: https://wsform.com/integration/abuseipdb/
Use IP reputation data to catch abusive form submissions earlier
Type: Built-In Integration.
AbuseIPDB is an IP reputation service that helps identify IP addresses associated with abusive activity. In WS Form, you can check a visitor's IP address whenever a form is submitted and use the returned abuse confidence score as the submission's spam score.
Spam scores range from 0 to 100 and appear on the submissions page with the same colored indicators used by other WS Form spam protection services. Each check is also recorded as a system note, including the IP address, abuse confidence score, country, domain, total reports, and the reason a submission was flagged when applicable.
In WordPress, you can enable AbuseIPDB on all forms or turn it on per form. You can also set an abuse confidence score, choose a report window, add country and domain blocklists, and optionally report spam submissions back to AbuseIPDB as web spam.
If AbuseIPDB is temporarily unavailable or returns an error, WS Form still accepts the submission. The submission is not blocked solely because the AbuseIPDB request failed.
## ACF
URL: https://wsform.com/integration/advanced-custom-fields/
Create and edit ACF-powered content with flexible frontend forms
Type: Premium Integration.
Advanced Custom Fields lets you create custom fields for any post type, and WS Form can be fully integrated with those fields. You can build mobile-friendly forms with flexible layouts instead of using a fixed frontend ACF form layout.
Using WS Form with the Post Management Premium Integration, you can automatically create forms for registered WordPress post types, including ACF fields configured for that post type. WS Form can also add basic post fields and taxonomy term selectors, and it automatically creates field mappings when you build from a template.
WS Form supports ACF field types including text, email, URL, image, file, gallery, select, checkbox, radio, button group, post object, taxonomy, user, date and time pickers, color picker, group, and repeater. Repeater fields are converted to repeatable sections in WS Form, while nested repeaters and groups are not supported.
In addition to creating new posts, WS Form can pre-populate forms using post data that includes ACF custom fields. This makes it easy to load existing content into a form for editing.
## ACPT
URL: https://wsform.com/integration/acpt/
Create and edit WordPress content with ACPT custom fields from your forms
Type: Premium Integration.
ACPT lets you create custom fields for any post type, and WS Form can integrate with those fields. Using the Post Management Premium Integration, you can build forms that create and update WordPress posts containing ACPT custom fields.
WS Form can automatically create a form from a post type template, including basic post fields, ACPT fields, and taxonomy term selectors. Choice-based fields such as select, checkbox, radio, and button groups can be populated from the choices configured in ACPT.
ACPT repeater fields are supported when creating, populating, and submitting forms. WS Form can also pre-populate forms using post data that includes ACPT fields, making it easier to edit existing content.
## ACSS
URL: https://wsform.com/integration/acss/
Create consistent WS Form styling with ACSS across your site
Type: Third Party.
Recommended.
ACSS provides comprehensive styling support for WS Form. When ACSS form loading is enabled, form styling is applied automatically through a unified configuration system.
Forms share the same structural and spacing values used across your site, helping maintain a consistent look in WordPress. ACSS also gives you control over form colors and appearance.
Forms can automatically adapt to your sites configured color scheme using CSS light-dark() support. If you want more explicit control, ACSS also supports the optional utility classes .form--light and .form--dark.
ACSS form styling is currently compatible with WS Form, and the WS Form Styler must be enabled so ACSS can use the CSS variables it relies on.
## ActiveCampaign
URL: https://wsform.com/integration/activecampaign/
Build ActiveCampaign-ready forms faster and subscribe contacts automatically
Type: Premium Integration.
Connect your forms in WordPress to ActiveCampaign with the WS Form ActiveCampaign premium integration. You can push new contacts using an action, or create new forms from your ActiveCampaign lists in a single click.
Single-click form creation builds a form from one of your ActiveCampaign lists and fully configures it so it is ready to use immediately. If you prefer, you can also use any form created in WS Form and add an action to submit it to ActiveCampaign when a user saves or submits the form.
The premium integration supports all field types and includes field mapping, tag mapping, and automation mapping. You can also choose an opt-in field and assign contacts to an account.
## Airtable
URL: https://wsform.com/integration/airtable/
Turn Airtable tables into ready-to-use forms in WordPress
Type: Premium Integration.
The Airtable premium integration lets you create new forms from Airtable in a single click and push form submissions as new rows in a table.
WS Form can create a form for any of your Airtable tables automatically. The form is fully configured and ready to add to your WordPress website.
You can also use an existing WS Form and add an Airtable action to run when a form is saved, submitted, or both. Field mapping and custom mapping are available, and comments can be added when a record is added or updated.
## Akismet
URL: https://wsform.com/integration/akismet/
Reduce spam in forms in WordPress with Akismet checks built into WS Form
Type: Built-In Integration.
Akismet gives WordPress the ability to check comments and form submissions against its global spam database. WS Form integrates with Akismet so you can check form submissions for spam content.
Submissions checked with Akismet are graded for spam in the WS Form submissions page. A colored circle shows the result: red for blatant spam, orange for possible spam, and green for submissions not considered spam.
You can choose an email field and select text-based fields for Akismet to analyze. WS Form also lets you decide how to handle suspect submissions, including using a spam threshold or rejecting suspect or blatant spam.
## Amazon S3
URL: https://wsform.com/integration/amazon-s3/
Send uploaded files from your forms to Amazon S3
Type: Premium Integration.
Use the Amazon S3 premium integration to configure file fields in forms in WordPress to upload files to a connected Amazon S3 account.
You can choose the bucket path for each file field, and uploaded files remain easy to access from the submissions page. WS Form adds an Amazon S3 file handler for this setup.
The upload path defaults to WS Form/#form_id/#submit_hash/#field_id/. You can also use WS Form variables in the path to make it dynamic.
## Angie
URL: https://wsform.com/integration/angie/
Bring agentic AI into your form workflows
Type: Built-In Integration.
Connect your forms in WordPress with Angie to bring agentic AI into your workflows.
WS Form and Angie are featured together in a dedicated integration article that explores how they work side by side.
You can also explore more AI ideas for forms in our related WordPress article on building smarter forms with AI.
## Anthropic
URL: https://wsform.com/integration/anthropic/
Create forms in WordPress from a prompt with Anthropic
Type: Built-In Integration.
Use Anthropic with WS Form Create from AI to generate a form from a prompt. After you configure an AI connector, the Create from AI template appears on the Add Form admin page in WordPress.
To connect Anthropic, go to Settings > Connectors, install Anthropic, enter your API keys, and save. When the connection is successful, WordPress shows Connected.
Once connected, hover over the Create from AI template, click Use Template, describe the form you want in the modal, and click Create. You can learn more here: Create from AI template.
## ApiX-Drive
URL: https://wsform.com/integration/apix-drive/
Move WS Form submissions into ApiX-Drive for wider automation
Type: Third Party.
Connect WS Form with ApiX-Drive to send form data into your automation workflows.
This integration gives you a way to pass submissions from your forms in WordPress to ApiX-Drive using the integration page provided by ApiX-Drive.
You can learn more or start from the ApiX-Drive integration page: https://apix-drive.com/en/integrations/wsform.
## Attributer
URL: https://wsform.com/integration/attributer/
See where your form leads came from
Type: Third Party.
Connect your forms in WordPress with Attributer to capture lead source data when someone submits a form.
Attributer provides an integration page for WS Form, making it a useful option for tracking attribution data alongside your form submissions.
You can learn more about the integration on the Attributer WS Form integration page.
## Authorize.Net Accept
URL: https://wsform.com/integration/authorize-net-accept/
Take credit card payments from your forms with flexible checkout options
Type: Premium Integration.
Authorize.Net Accept lets you accept credit card payments from your forms in WordPress. You can charge a fixed amount with the button on its own, or use WS Form e-commerce fields for more advanced cart options.
The button uses Authorize.Net Accept, the latest client-side payment process offered by Authorize.Net. You can configure sandbox and production credentials, and the payment page must be served over HTTPS.
WS Form also supports one-time charges and subscriptions. You can customize the button label, header text, billing address option, and map billing and shipping address fields to the corresponding Authorize.Net fields.
## AutomatorWP
URL: https://wsform.com/integration/automatorwp/
Trigger AutomatorWP actions from your WS Form submissions
Type: Premium Integration.
Connect your forms in WordPress with AutomatorWP using the WS Form premium integration.
This integration provides 4 built-in triggers and works for anonymous and logged-in users.
You can also use field value conditional logic and an easy-to-use editor to build your automations. Learn more at AutomatorWP.
## AWeber
URL: https://wsform.com/integration/aweber/
Build AWeber-ready forms faster in WordPress
Type: Premium Integration.
Connect WS Form to AWeber to add, update, and delete subscribers using form actions. You can also pull contact data with the autocomplete feature and create new forms from your AWeber lists in a single click.
On the Add New page, choose an AWeber list to generate a form automatically. WS Form creates the form and configures it so it is ready to use on your WordPress website.
You can also use an existing form and add an AWeber action. Available settings include list selection, subscriber status, an opt-in field, field mapping, and tag mapping.
WS Form can also populate form fields using AWeber contact data for signed-in visitors whose WordPress email address matches a contact in AWeber.
## Beaver Builder
URL: https://wsform.com/integration/beaver-builder/
Add forms to Beaver Builder pages quickly
Type: Built-In Integration.
If you use Beaver Builder on your WordPress website, you can add WS Form forms with the built-in Beaver Builder module.
The module is ready to use as soon as WS Form PRO is installed. No additional plugins are required.
When editing a page in Beaver Builder, click the + icon, choose the WS Form module, and select your form from the pulldown list.
For more information about Beaver Builder, visit Beaver Builder.
## Bento
URL: https://wsform.com/integration/bento/
Build Bento-ready forms and send contact data where it needs to go
Type: Premium Integration.
Connect your forms in WordPress to Bento with the WS Form Bento premium integration. You can create new people using an action, or generate a Bento form in a single click from the Add Form page.
Single-click form creation builds a form for your Bento lists and configures it so it is ready to use immediately. Bento does not currently expose field types in its API, so fields added this way are created as text fields.
You can also use any form created in WS Form and add a Bento action to run when the form is saved, submitted, or both. The premium integration supports field mapping, custom field mapping, tag mapping, custom tag mapping, event types, and subscribed or unsubscribed status.
## Bit Integrations
URL: https://wsform.com/integration/bit-integrations/
Send WS Form submissions into Bit Integrations
Type: Third Party.
WS Form can be used with Bit Integrations to connect your forms in WordPress with Bit Integrations.
Bit Integrations provides a WS Form trigger. This lets you use WS Form submissions as part of your Bit Integrations workflows.
## Block Editor
URL: https://wsform.com/integration/wordpress-blocks/
Add forms to WordPress pages with the WS Form block
Type: Built-In Integration.
The WS Form block makes it easy to add a form to your WordPress website using the Block Editor.
Add the block from the Add Block icon, then search for WS Form or choose the WS Form category. Select the form you want to use in the editor sidebar.
WS Form shows a preview of your form on the page. The preview is approximate, and the final output depends on your website theme and styling. You can also use the Preview button to preview the form on your web page.
## Bootstrap
URL: https://wsform.com/integration/bootstrap/
Make your forms match Bootstrap-based WordPress themes
Type: Built-In Integration.
Bootstrap is a popular open-source CSS framework for responsive, mobile-first front-end development. If your WordPress theme uses Bootstrap, WS Form can output form HTML markup that is native to that framework.
WS Form physically changes the HTML so your form fits seamlessly into your theme. It also changes the breakpoint selector to match the available breakpoints in Bootstrap.
WS Form supports Bootstrap 5+, Bootstrap 4.1-4.5.x, Bootstrap 4.0, and Bootstrap 3.x. All available WS Form field types are fully compatible with Bootstrap.
When you install WS Form, it scans your theme files and automatically uses Bootstrap markup if Bootstrap is detected. You can also select Bootstrap manually in WS Form settings.
## Brevo (Sendinblue)
URL: https://wsform.com/integration/brevo/
Build Brevo-connected forms faster in WordPress
Type: Premium Integration.
Connect your forms in WordPress to Brevo with the WS Form premium integration. You can subscribe and unsubscribe contacts, create new forms from your Brevo lists in a single click, and pre-populate forms with Brevo contact data.
WS Form can automatically create a form from a Brevo list and configure it so it is ready to use immediately. You can also add a Brevo action to any WS Form form and choose whether it runs when the form is saved, submitted, or both.
The premium integration supports field mapping for Brevo attributes, including normal, category, and transactional attributes. You can also use custom mapping, and choose subscribe, unsubscribe, or subscribe with double opt-in status.
## Bricks
URL: https://wsform.com/integration/bricks-visual-site-builder/
Place your forms directly inside Bricks layouts
Type: Built-In Integration.
Add a form to a Bricks Visual Site Builder template using the WS Form element.
In Bricks, open the WS Form PRO section and add the Form element to your layout. Then choose a form from the dropdown, or enter the form ID if no form is selected.
Dynamic values are supported for the form setting. You can also optionally enter an ID for the form DOM element. This makes it easy to display your WordPress form inside a Bricks template.
## Campaign Monitor
URL: https://wsform.com/integration/campaign-monitor/
Build Campaign Monitor forms faster and manage subscribers from WordPress
Type: Premium Integration.
Connect your forms in WordPress to Campaign Monitor with the WS Form premium integration. You can push new subscribers using an action, pull subscriber data with autocomplete, and create new forms from your Campaign Monitor lists in a single click.
WS Form can create a form from any of your Campaign Monitor lists and fully configure it so the form is ready to use immediately. If you prefer, you can also add a Campaign Monitor action to any form you build in WS Form.
Available Campaign Monitor methods include Subscribe, Update, Unsubscribe, and Delete. The premium integration also supports auto field mapping, and forms created from a Campaign Monitor template automatically create field mappings for you.
You can also populate form fields using Campaign Monitor subscriber data. This is available when a signed-in website visitor has a WordPress email address that matches a subscriber email address in Campaign Monitor.
## CaptchaFox
URL: https://wsform.com/integration/captchafox/
Protect your forms with privacy-friendly CAPTCHA verification
Type: Built-In Integration.
Add CaptchaFox CAPTCHA verification to your forms in WordPress to help prevent spam and automated submissions. CaptchaFox is a privacy-friendly CAPTCHA service and a reCAPTCHA alternative.
WS Form Pro supports current CaptchaFox display modes, including Inline, Popup, and Hidden. Visible modes also support light and dark themes.
To use CaptchaFox, register your website with CaptchaFox and choose JavaScript as the platform. CaptchaFox provides a site key and secret key, which you can enter in Global Settings or directly in the field settings.
## CleanTalk
URL: https://wsform.com/integration/cleantalk/
Reduce spam in forms in WordPress with more protection options
Type: Third Party.
WS Form includes a range of spam protection tools for forms in WordPress, including CleanTalk as a third-party service integration.
You can combine spam protection methods such as HoneyPot, NONCE, IP throttling, custom server-side validation, and keyword, IP, domain name, or user agent blocking.
WS Form also supports spam scoring with selected services. Submissions identified as spam are moved to the Spam folder on the submissions page.
## Clearout
URL: https://wsform.com/integration/clearout/
Catch invalid email addresses as forms are submitted
Type: Third Party.
Clearout Email Validator integrates with WS Form to validate email addresses submitted through your forms in WordPress in real time.
The plugin performs 20+ refined real-time validation checks to determine the current status of an email address.
Once enabled, any email fields submitted on a form are checked automatically. If an email address is deemed invalid, feedback is shown on the field.
## CleverReach
URL: https://wsform.com/integration/cleverreach/
Build CleverReach-ready forms faster and keep subscriber data in sync
Type: Premium Integration.
Connect your forms in WordPress to CleverReach with the WS Form premium integration. You can push new subscribers using an action, pull subscriber data with autocomplete, and create new forms from your CleverReach lists in a single click.
WS Form can create a form for any of your CleverReach lists automatically. The form is fully configured and ready to use immediately, helping you get forms on your site faster.
You can also add a CleverReach action to any WS Form. Choose a list, select a method such as Subscribe, Blacklist, or Delete, and map your form fields to CleverReach fields.
For signed-in visitors, WS Form can populate form fields using CleverReach subscriber data when their WordPress email address matches a subscriber email address. Learn more.
## Cloudflare Turnstile
URL: https://wsform.com/integration/cloudflare-turnstile/
Add privacy-focused spam protection to your forms
Type: Built-In Integration.
Cloudflare Turnstile adds a privacy-focused, accessible widget to your WordPress form to help detect whether a visitor is human. It requires no interaction and can be used to protect your forms from unwanted spam.
To use Cloudflare Turnstile, create a Cloudflare account, create a Turnstile widget for your website hostname, and add your site key and secret key in WS Form Global Settings under Spam Protection. After that, you can add a Cloudflare Turnstile field to any form.
The Cloudflare Turnstile field includes settings for label display, site and secret keys, theme, size, appearance mode, help text, styles, vertical alignment, custom classes, user status visibility, invalid feedback, and breakpoint layout.
## CommandUI
URL: https://wsform.com/integration/commandui/
Manage WS Form faster with keyboard-first commands in WordPress
Type: Third Party.
CommandUI is a productivity tool for WordPress that adds a command palette for common administrative tasks. It is deeply integrated with WS Form, so you can access and manage forms directly from the WordPress admin interface.
With CommandUI installed, press ⌘+K on Mac or Ctrl+K on Windows and Linux to open the command palette. Type ws to access WS Form commands, then filter by form label to find the form you need.
You can quickly access WS Form actions including adding, editing, duplicating, previewing, and viewing submissions. CommandUI also provides shortcuts to styles, settings, the debug console, spam protection, reporting, variables, and more.
## Comment Management
URL: https://wsform.com/integration/comment-management/
Turn form submissions into WordPress post comments
Type: Premium Integration.
Use the Comment Management premium integration to add comments to posts from a WS Form. This helps visitors leave feedback, ask questions, or share their thoughts directly on your WordPress content.
You can create a comment form automatically from the available sample form templates, or add the Comment Management action to an existing form. Forms that use this action should be added to pages that contain a post, such as a blog article.
The action supports field mapping so you can connect your form fields to WordPress comment fields. You can also choose whether the action runs when the form is saved, submitted, or both, and set comments to Approved or Pending.
Post ID: Leave it blank to use the post ID of the page the form is on, or enter a specific post ID.
Meta: Add comment meta mappings with a meta key and value.
Type: Optionally enter a comment type, or leave it blank for normal post comments.
## Constant Contact
URL: https://wsform.com/integration/constant-contact/
Build Constant Contact forms faster and keep contact data in sync
Type: Premium Integration.
Connect your forms in WordPress to Constant Contact with the WS Form premium integration. You can push new contacts using an action, pull contact data with autocomplete, and create new forms from your Constant Contact lists in a single click.
WS Form can create a form for any of your Constant Contact lists and fully configure it so it is ready to use. You can also add an action to any WS Form form and send data to a Constant Contact list when a form is saved, submitted, or both.
The premium integration supports field mapping, custom mapping, additional list memberships, and tag mapping. It also includes options for handling duplicate contacts, including update, halt, and merge behavior for lists and tags.
## Conversion Bridge
URL: https://wsform.com/integration/conversion-bridge/
Connect your forms to Conversion Bridge for clearer tracking
Type: Third Party.
Recommended.
Use WS Form with Conversion Bridge to connect your forms in WordPress with your tracking setup.
This integration is available through Conversion Bridge. It is designed for WS Form and Conversion Bridge together.
If you want to learn more about using this integration, visit Conversion Bridge for WS Form.
## ConvesioPay
URL: https://wsform.com/integration/convesiopay/
Take credit card payments directly from your forms
Type: Premium Integration.
Connect ConvesioPay to your forms in WordPress to accept credit card payments. You can charge a fixed amount or use WS Form e-commerce fields for more advanced cart options.
Card details are sent to ConvesioPay client-side and securely tokenized before the form is submitted. If the payment succeeds, the rest of the actions configured on the form run. If it does not, an error is shown on the form.
WS Form includes Basic and Advanced ConvesioPay form templates to help you get started. You can also add the ConvesioPay and ConvesioPay Submit fields to your form and place them anywhere you like.
Serve the payment page over HTTPS.
Use test or live API keys to match your ConvesioPay environment.
Configure the webhook to receive transaction status updates such as Pending and Succeeded.
## DataKit
URL: https://wsform.com/integration/datakit/
Connect form data with DataKit
Type: Built-In Integration.
Use WS Form with DataKit to connect your forms in WordPress with your wider data workflow.
DataKit is available as a third-party integration. If you use DataKit, WS Form can be part of that setup.
## Divi
URL: https://wsform.com/integration/divi/
Build and place powerful forms inside Divi 5 faster
Type: Built-In Integration.
Use the WS Form module to add forms directly inside the Divi 5 builder on your WordPress website. The module is ready to use as soon as WS Form PRO is installed, with no additional plugins, integrations, or setup steps required.
Once added, the module behaves like any other Divi module. Click +, choose the WS Form module, then select your form from the pulldown list to render it in your layout.
This makes it easy to build and manage forms centrally in WS Form, insert them anywhere in Divi layouts, update forms without editing the page layout again, and reuse forms across multiple pages.
WS Form also supports conditional logic, calculations, multi-step forms, integrations, spam protection, and detailed form analytics for more advanced form experiences inside Divi.
## dotdigital
URL: https://wsform.com/integration/dotdigital/
Build dotdigital-ready forms faster in WordPress
Type: Premium Integration.
Connect your forms in WordPress to dotdigital with the WS Form dotdigital premium integration. You can create new forms from your dotdigital lists in a single click, push new contacts using an action, and pull contact data into forms with WS Form autocomplete.
WS Form can fully configure a form from your dotdigital list so it is ready to use immediately. You can also add a dotdigital action to any WS Form and choose whether it runs when the form is saved, submitted, or both.
The premium integration supports contact actions including subscribe, unsubscribe, resubscribe, create, suppress, and unsuppress. Field mapping links your form fields to the corresponding dotdigital fields, and forms created from a dotdigital template have field mappings created automatically.
## Drip
URL: https://wsform.com/integration/drip/
Build Drip-ready forms faster and keep contact data in sync
Type: Premium Integration.
The Drip premium integration for WS Form helps you add, update, and delete people and subscribers from your forms in WordPress. You can also remove people from campaigns, unsubscribe them, and pull people data using autocomplete.
WS Form can create a Drip form in a single click from your Drip campaigns or People. It can also fully configure the form so it is ready to use immediately.
If you prefer, you can add a Drip action to any WS Form and choose when it runs: on save, on submit, or both. The premium integration also supports field mapping, custom mapping, and tag mapping.
## Dropbox
URL: https://wsform.com/integration/dropbox/
Send form file uploads straight to Dropbox
Type: Premium Integration.
The Dropbox premium integration lets you configure file fields to upload directly to a connected Dropbox account from your forms in WordPress.
You can choose the Dropbox upload path for each file field. WS Form also supports variables in the path, so you can make folder locations dynamic.
Uploaded files are easy to access from the submissions page using the file upload icons. Files are also available in your Dropbox folder.
## Elementor
URL: https://wsform.com/integration/elementor/
Add forms to Elementor pages in a few clicks
Type: Built-In Integration.
If you use Elementor for your WordPress website, you can add forms with the WS Form PRO widget.
The widget is ready to use as soon as WS Form PRO is installed. No additional plugins are required.
To use it, drag the WS Form PRO widget from the Elements tab to your page, then select your form from the pulldown list.
For more information about Elementor, visit Elementor.
## Engine Awesome
URL: https://wsform.com/integration/engine-awesome/
Turn Engine Awesome objects into ready-to-use forms in WordPress
Type: Premium Integration.
The Engine Awesome premium integration lets you push new records to Engine Awesome objects using a WS Form action. You can also create new forms from your Engine Awesome objects in a single click on the add form page.
After connecting Engine Awesome, you can choose the objects you want to work with on the settings page. Custom objects are included, and WS Form can create a form for any working object so it is ready to use on your WordPress website.
You can also add multiple Engine Awesome actions to the same form. In the included example workflow, WS Form creates a Company first, then creates a Contact and links it to that Company by using the #engine_awesome_object_id variable.
## Etch
URL: https://wsform.com/integration/etch/
Add forms to Etch pages with a simple shortcode
Type: Built-In Integration.
Etch is a visual development platform for building scalable, maintainable, and accessible WordPress sites through a fully visual workflow.
To add a form in Etch, use the WS Form shortcode anywhere in your page markup. You can copy the shortcode from the form settings while editing a form, or from the forms list in the WordPress admin.
Form styling is handled in WS Form itself. You can learn more about shortcodes and styling in the Etch integration guide.
## Facebook Ads
URL: https://wsform.com/integration/facebook-ads/
Track Facebook conversions from your forms in WordPress
Type: Built-In Integration.
WS Form includes a Conversion Tracking action that can fire Facebook Tracking Pixel events from your forms in WordPress.
You can choose Facebook (Standard) to select an event name and add optional object properties. You can also choose Facebook (Custom) to manually enter the event name and define object properties as key value pairs.
For Facebook conversion tracking to work, a Facebook Tracking Pixel must already be installed on your website. WS Form also lets you enter straight text or use WS Form variables in these settings.
## Fathom Analyics
URL: https://wsform.com/integration/fathom-analyics/
Track form submissions as Fathom Analytics events
Type: Built-In Integration.
Use WS Form to fire Fathom Analytics events when a form is submitted on your WordPress website.
Fathom Analytics is a privacy-focused website analytics tool. In WS Form, you can add a Conversion Tracking action and choose Fathom Analytics as the action type.
When you configure the action, you can enter an event name. You can also optionally add a cents value and a site ID for the event.
## FlowMattic
URL: https://wsform.com/integration/flowmattic/
Connect your forms to FlowMattic workflows
Type: Third Party.
Connect WS Form with FlowMattic to use your form submissions in automation workflows.
This integration supports WordPress sites using WS Form and FlowMattic.
You can learn more about the integration on the FlowMattic WS Form integration page.
## FluentCRM
URL: https://wsform.com/integration/fluentcrm/
Connect your forms to FluentCRM and keep contact data moving
Type: Premium Integration.
Use the FluentCRM Premium Integration to subscribe and unsubscribe FluentCRM contacts with a WordPress form created in WS Form.
You can create new forms from your FluentCRM lists in a single click from the add form page. WS Form supports all FluentCRM field types as well as tagging.
You can also use a WS Form action to add contacts to FluentCRM when a form is saved, submitted, or both. Field mapping, custom mapping, tag mapping, duplicate handling, and opt-in settings are available.
WS Form can also pre-populate forms with data from FluentCRM for signed-in website visitors whose WordPress email address matches a contact in FluentCRM.
## Form Data Vault
URL: https://wsform.com/integration/form-data-vault/
Connect your forms with Form Data Vault
Type: Third Party.
Connect WS Form with Form Data Vault to link your forms in WordPress with Form Data Vault.
This integration is available from Form Data Vault, with more information available on their integration page.
View the Form Data Vault integration.
## Form Vibes
URL: https://wsform.com/integration/form-vibes/
Send form data to Form Vibes from WordPress
Type: Third Party.
Connect your forms in WordPress with Form Vibes.
WS Form supports Form Vibes as a third-party integration for WordPress.
## Foundation
URL: https://wsform.com/integration/foundation/
Build forms that fit Foundation-based WordPress themes cleanly
Type: Built-In Integration.
Foundation is a responsive front-end framework used by many WordPress themes. When your theme uses Foundation, WS Form can output HTML markup that is native to that framework.
This helps your forms dovetail seamlessly into your theme. WS Form also changes the breakpoint selector to match the available breakpoints in Foundation.
WS Form supports Foundation 6.4+, Foundation 6.0-6.3.1, and Foundation 5.x. All available WS Form field types are fully compatible with Foundation.
## Freshdesk
URL: https://wsform.com/integration/freshdesk/
Turn forms in WordPress into Freshdesk support tickets
Type: Premium Integration.
Use the Freshdesk premium integration to create custom support ticket forms on your WordPress website and push submissions to your Freshdesk account.
You can create a form automatically by choosing New Ticket or one of your Freshdesk forms when you add a new form in WS Form.
You can also use any form created in WS Form and add a Freshdesk action that runs when the form is saved, submitted, or both. The premium integration supports field mapping, custom mapping, tag mapping, and file attachments for Freshdesk tickets.
## FunnelKit
URL: https://wsform.com/integration/funnelkit/
Trigger FunnelKit automations from your form submissions
Type: Premium Integration.
Use the FunnelKit premium integration to push form submission data from WS Form to FunnelKit. This lets your forms in WordPress trigger FunnelKit automations.
Add an Add to FunnelKit action to your form and choose when it should run. By default, the action runs when the form is submitted.
You can also choose an opt-in field so the action only runs when an opt-in checkbox is checked. In FunnelKit, select the WS Form > Form Submits trigger for your automation and choose the form you want to use.
When building the automation, you can map the basic contact fields. You can also add an Update Fields action to set additional fields using WS Form merge fields.
## FuseWP
URL: https://wsform.com/integration/fusewp/
Connect form submissions to your email marketing software
Type: Third Party.
Use FuseWP to connect WS Form with your email marketing software. This helps you send form submission data where you need it.
FuseWP provides a guide for syncing WS Form with email marketing tools. It is a third-party option for WordPress sites that want to connect forms and email marketing.
View the FuseWP guide to learn how to set up the connection.
## GetResponse
URL: https://wsform.com/integration/getresponse/
Turn GetResponse lists into ready-to-use forms in WordPress
Type: Premium Integration.
The GetResponse premium integration connects your forms to GetResponse so you can add subscribers with a form action, pull subscriber data with autocomplete, and create new forms from your lists in a single click.
You can create a GetResponse form automatically from the Add New page in WordPress. WS Form builds the form and configures it so it is ready to use immediately.
You can also use any existing form and add an action to send entries to a GetResponse list when the form is saved, submitted, or both. The premium integration supports field mapping and tag mapping, and forms created from a GetResponse template can set up mappings automatically.
The premium integration can also populate form fields using GetResponse contact data for signed-in visitors when their WordPress email address matches a contact in GetResponse.
## Google Analytics
URL: https://wsform.com/integration/google-analytics/
Measure form activity in Google Analytics
Type: Built-In Integration.
Use the Conversion Tracking action to fire Google Analytics events from your forms in WordPress. You can choose to run the action when a form is saved, submitted, or both.
For Google Analytics, WS Form supports event settings for Event Category, Event Action, Event Label, and Event Value. You can also add Data Layer Variables and use straight text or WS Form variables in these settings.
To fire a Google Analytics event, a Google Analytics tag must be installed on your website. You can learn more in the Conversion Tracking guide.
## Google Directions
URL: https://wsform.com/integration/google-directions/
Add route details and map output to your forms
Type: Built-In Integration.
Google Directions in WS Form lets you retrieve route information in forms in WordPress. Set a start and end location, and the Google Routing field can return route distance, duration, summary, and the latitude and longitude of the start and end locations.
Route information is requested when the start and end locations are completed or changed. You can show the route details in the Google Routing field itself, hide the field if it is not needed, or map routing components to other form fields.
The field can also show the route on a WS Form Google Map field. It works with Google Address fields for easier location selection and can be used with Conditional Logic, Calculated Fields, and E-Commerce Fields.
## Google Drive
URL: https://wsform.com/integration/google-drive/
Send form file uploads straight to Google Drive
Type: Premium Integration.
Connect WS Form to Google Drive and configure file fields to upload directly to your connected Google Drive account.
You can choose the upload path for each file field and use WS Form variables to make that path dynamic. The default path is /WS Form/#form_id/#submit_hash/#field_id/, which helps keep files organized by form, submission, and field.
Files uploaded from your forms in WordPress can be accessed from the submissions page using the file upload icons. They are also available in your Google Drive folder.
You can upload to My Drive, a shared folder, or a shared drive by setting the Root Folder ID for the file field.
## Google Gemini
URL: https://wsform.com/integration/google-gemini/
Build forms faster from a simple prompt
Type: Built-In Integration.
Use Google Gemini with WS Form to create a form from an AI prompt in WordPress.
To use the Create from AI template, configure a Google connector in WS Form and enter your API key. When the connection is successful, WordPress shows it as connected.
After setup, the Create from AI template appears on the WS Form Add Form admin page. Select the template, describe the form you want to create, and click Create.
## Google Maps
URL: https://wsform.com/integration/google-maps/
Capture map locations directly in your forms
Type: Built-In Integration.
Add one or more interactive Google Maps to your forms in WordPress with the Google Map field. When someone clicks the map, the selected latitude and longitude are stored in the submission.
You can set a default latitude, longitude, zoom level, and map type. Available map types are Road Map, Satellite, Hybrid, and Terrain.
The field can also auto-center to the user’s location using browser geolocation, IP geolocation, or both. You can optionally use a text field as an address search field to find a location on the map.
To use the Google Map field, you need a Google Cloud Project with billing enabled, the Maps JavaScript API, Places API (New), and Geocoding API enabled, plus an API key entered in WS Form settings.
## Google Places
URL: https://wsform.com/integration/google-places-api/
Speed up address entry with Google-powered autocomplete
Type: Built-In Integration.
The Google Address field lets you autocomplete address fields in forms in WordPress using the Google Places API. When someone enters a partial address, suggested addresses appear. After an address is selected, its components can populate other fields on your form.
You can map Google address components to Text, Text Area, Select, Google Address, and Google Map fields. The selected address can also center a WS Form Google Map field, with an optional zoom level.
The field includes restrictions for result type and country restrictions, with support for up to five countries. You can also filter results by businesses and use geolocation methods such as browser or IP to attempt to set the address to the user’s location.
## Google reCAPTCHA
URL: https://wsform.com/integration/google-recaptcha/
Protect your forms with flexible Google reCAPTCHA options
Type: Built-In Integration.
Add a Google reCAPTCHA field to your forms in WordPress to help protect them from spam. WS Form supports all current reCAPTCHA versions: Version 2 image or audio, Version 2 invisible, and Version 3 action-based invisible reCAPTCHA.
To use reCAPTCHA, register your website with Google and add your site key and secret key. You can enter keys on each field or use global site and secret keys for all reCAPTCHA fields.
Version 3 runs silently and provides a spam score on successful submissions. WS Form stores that score with each submission and shows it on the submissions page as a color-coded indicator from 0% to 100%.
## Google Sheets
URL: https://wsform.com/integration/google-sheets/
Send form data to Google Sheets and build forms from your sheets
Type: Premium Integration.
Connect your forms in WordPress to Google Sheets and push submissions as new rows in your spreadsheet. You can also create new forms from your Google Sheets in a single click on the add form page.
The premium integration supports field mapping so you can match form fields to the column headings in the first row of your sheet. If the spreadsheet ID is entered correctly, available sheets are retrieved for selection.
You can choose to run the Google Sheets action when the form is saved, submitted, or both. The premium integration also supports custom mapping, repeater rows to sheet rows, and URL output for mapped file and signature fields.
## Groundhogg
URL: https://wsform.com/integration/groundhogg/
Connect your forms to Groundhogg contact creation, updates, and funnel activity
Type: Premium Integration.
Recommended.
Groundhogg is a marketing automation and CRM plugin for WordPress. The WS Form premium integration lets you use any form created in WS Form to create and update Groundhogg contacts, and trigger a funnel using the WS Form PRO benchmark.
You can start with one of the included Groundhogg form templates, or add a Groundhogg action to any form. The action supports field mapping, custom mapping, opt-in settings, owner assignment, tags, notes, attachment mapping, and custom meta.
The premium integration can also populate form fields using Groundhogg contact data. This works for signed-in visitors when their WordPress email address matches the email address of a contact in Groundhogg.
## hCaptcha
URL: https://wsform.com/integration/hcaptcha/
Protect your forms with flexible hCaptcha support
Type: Built-In Integration.
Add an hCaptcha field to your WordPress form to help detect whether a visitor is human before a submission is made.
WS Form supports current hCaptcha versions including Default and Invisible. You can use your site key and secret key from hCaptcha, or set global keys for all hCaptcha fields.
Visible hCaptcha fields can use a light or dark theme, and you can choose a normal or compact size. WS Form also includes language, label, help text, validation, styling, and visibility settings for the field.
When an Enterprise hCaptcha is used and a submission is successful, hCaptcha provides a spam score. WS Form stores that score with the submission and shows it on the submissions page.
## Help Scout
URL: https://wsform.com/integration/help-scout/
Turn form submissions into Help Scout conversations
Type: Premium Integration.
Connect your forms in WordPress to Help Scout and push submissions to your account as conversations. You can build custom conversation forms for your website or use mailbox-based templates to create them quickly.
The integration can create a conversation when a form is submitted and lets you choose the Help Scout mailbox, conversation status, conversation type, assignment, and whether to send the mailbox auto reply.
WS Form supports field mapping for Contact, Conversation, and Company fields, including custom fields configured in Help Scout. You can also add custom mappings, map choice fields to tags, add static tags, include an internal note, and send file uploads or signatures as attachments.
## HighLevel
URL: https://wsform.com/integration/highlevel/
Keep your HighLevel forms working and move to LeadConnector when you're ready
Type: Premium Integration.
The HighLevel premium integration for WS Form has been discontinued in favor of the new LeadConnector premium integration.
Your existing HighLevel integration will continue to function, but it will no longer receive updates and will eventually be discontinued.
For WordPress sites using HighLevel, WS Form now recommends upgrading to the LeadConnector premium integration and recreating each form action there before disabling the old HighLevel action.
## Hostinger Reach
URL: https://wsform.com/integration/hostinger-reach/
Send form contacts straight to your Hostinger Reach groups
Type: Premium Integration.
Connect your forms in WordPress to Hostinger Reach with a WS Form action. You can push new contacts from a form and add them to a selected Hostinger Reach group.
WS Form can also create new forms from your Hostinger Reach groups in a single click from the Add Form page. The form is created and configured so it is ready to use immediately.
If you prefer, you can add a Hostinger Reach action to any form you create in WS Form. You can choose whether the action runs when the form is saved, submitted, or both.
Select the Hostinger Reach group for new contacts
Choose an opt-in field so the action only runs when checked
Set contact status to Subscribed or Unsubscribed
Map WS Form fields to Hostinger Reach fields
## HubSpot
URL: https://wsform.com/integration/hubspot/
Send form data to HubSpot with flexible field mapping
Type: Premium Integration.
Connect your forms in WordPress to HubSpot with the WS Form HubSpot premium integration. You can push form submissions to HubSpot Companies, Contacts, and Deals using a WS Form action.
WS Form can also create new forms automatically from your HubSpot forms in a single click on the Add Form page. The form is created and configured so it is ready to use immediately.
For manual setups, you can add an Add to HubSpot action to any WS Form form and choose whether it runs when the form is saved, submitted, or both. Field mapping and custom mapping are available, and created contact, company, and deal IDs can be used in subsequent actions.
## iContact
URL: https://wsform.com/integration/icontact/
Build iContact-ready forms and manage contact data from WordPress
Type: Premium Integration.
The iContact premium integration for WS Form helps you work with iContact contact data from your forms in WordPress. You can push new contacts using an action, pull contact data into forms with autocomplete, and create new forms from your iContact lists in a single click.
WS Form can create a form from any of your iContact lists and fully configure it so the form is ready to use immediately. If you prefer, you can add an iContact action to any existing form and choose whether it runs when the form is saved, submitted, or both.
The premium integration also supports field mapping between your form fields and iContact fields. Signed-in website visitors can have form fields populated from iContact when their WordPress email address matches a contact in iContact.
## InstaWP
URL: https://wsform.com/integration/instawp/
Create InstaWP WordPress sites directly from your forms
Type: Premium Integration.
Use the InstaWP premium integration to launch WordPress sites from forms built in WS Form. It helps you collect the information needed to build a site and personalize email notifications and messages for new site creations.
You can create sites from specific InstaWP templates, selected templates, or from scratch. From-scratch site creation can use an InstaWP configuration or manually specified WordPress and PHP versions.
WS Form also includes InstaWP form templates and can create a fully configured form for an InstaWP endpoint in a single click. You can also add a Create InstaWP Site action to an existing form.
## JetEngine
URL: https://wsform.com/integration/jetengine/
Build forms that create and populate JetEngine-powered content
Type: Premium Integration.
Use WS Form with JetEngine to build forms in WordPress that create posts with JetEngine custom fields. WS Form can be fully integrated with custom fields created in JetEngine, including repeater fields.
With the Post Management Premium Integration, WS Form can automatically create forms for post types that use JetEngine fields. It can add basic post fields, JetEngine fields configured from your settings, and taxonomy selectors for the post type.
WS Form can also pre-populate forms using post data that includes JetEngine fields. Choice-based fields such as select, checkbox, radio, and button groups can pull their choices dynamically from JetEngine.
## Keyword Blocklist
URL: https://wsform.com/integration/keyword-blocklist/
Stop keyword-based spam before submissions get through
Type: Premium Integration.
Keyword Blocklist helps reduce spam submissions by checking form content against a blocklist of more than 1,300 keywords. Checks run server-side for reliable filtering.
Keywords are organized into 10 categories: Adult, Crypto, Finance, Gambling, Legal, Pharmaceutical, Profanity, Sales, SEO, and URL Shorteners. Each category can be enabled or disabled independently, and Adult and Profanity are enabled by default.
The integration is enabled by default and can also be extended with the wsf_submit_block_keywords filter hook if you need to add more blocked keywords.
## Kit
URL: https://wsform.com/integration/kit/
Capture subscribers in Kit from your forms in WordPress
Type: Premium Integration.
Connect your forms in WordPress to Kit and add subscribers to forms, sequences, and tags.
WS Form can create new forms for your Kit forms in a single click. Those forms automatically include your custom fields and tags so they are ready to use immediately.
You can also use a WS Form action to add subscribers to a Kit form when a form is saved, submitted, or both. Field mapping, custom mapping, tag mapping, and tag assignment are supported.
## Klaviyo
URL: https://wsform.com/integration/klaviyo/
Build Klaviyo signup forms faster in WordPress
Type: Premium Integration.
Use the Klaviyo premium integration to create WS Form forms that subscribe profiles in Klaviyo. You can create forms for your Klaviyo lists in a single click, and the form is fully configured so it is ready to use immediately.
You can also add a Klaviyo action to any form and choose whether it runs when the form is saved, submitted, or both. The action lets you choose a Klaviyo list, set a source, and map your form fields to the corresponding fields in Klaviyo.
The premium integration also supports email and SMS opt-in fields, with separate settings for each. In WordPress, you can also populate form fields using Klaviyo profile data when a signed-in visitor's WordPress email address matches a profile in Klaviyo.
## Laposta
URL: https://wsform.com/integration/laposta/
Create Laposta-ready forms faster and send subscribers where they belong
Type: Premium Integration.
Connect your forms in WordPress to Laposta with the WS Form Laposta premium integration. You can push new subscribers using an action and create new forms from your Laposta lists in a single click.
WS Form can build a form from any of your Laposta lists and fully configure it so the form is ready to use immediately. If needed, you can also use an existing form and add an action to send submissions to a selected Laposta list.
The premium integration supports field mapping, custom mapping, and an opt-in field. You can choose whether the Laposta action runs when a form is saved, submitted, or both.
You can also populate form fields using subscriber data from Laposta when a signed-in website visitor has a WordPress email address that matches a contact in Laposta.
## LeadConnector
URL: https://wsform.com/integration/leadconnector/
Create LeadConnector records from your forms faster
Type: Premium Integration.
Connect forms in WordPress to LeadConnector and push new submissions to LeadConnector objects using WS Form actions. You can also generate a form from your LeadConnector objects in a single click.
WS Form can create forms for your working LeadConnector objects and fully configure them so they are ready to use immediately. Common objects such as Contacts, Companies, and Opportunities are supported, and custom objects can be selected on the settings page.
You can also add a LeadConnector action to any WS Form form and choose whether it runs when the form is saved, submitted, or both. The premium integration supports field mapping, custom mapping, duplicate handling, tags for Contact objects, and relationships between records.
Do not use this premium integration with the LeadConnector external-tracking.js script, as it can create duplicate record errors. You can use WS Form tracking features to map tracking data to LeadConnector instead.
## LinkedIn Ads
URL: https://wsform.com/integration/linkedin-ads/
Track LinkedIn conversions when forms are saved or submitted
Type: Built-In Integration.
Use WS Form to fire a LinkedIn Insight Tag conversion event from your forms in WordPress with the Conversion Tracking action.
You can choose when the action runs: when the form is saved, submitted, or both. For LinkedIn, enter the Conversion ID you want to fire.
The same Conversion Tracking action also supports Google Tag Manager, Google Analytics, Fathom Analytics, and Facebook tracking options.
## Madlitics
URL: https://wsform.com/integration/madlitics/
See where every lead came from before it submits your form
Type: Third Party.
Madlitics captures marketing attribution data before a visitor submits your form and writes that data into WS Form fields. This helps each submission include source, channel, campaign, landing page, and click ID context.
With Madlitics on your WordPress site, you can keep first-touch attribution and UTM data attached to form submissions as visitors browse, return later, or submit from a different page.
That gives your team cleaner lead records and better reporting. You can pass attribution data collected through WS Form into your CRM, email platform, spreadsheet, or reporting workflow.
## Mailchimp
URL: https://wsform.com/integration/mailchimp/
Build Mailchimp-ready forms and keep contact data in sync
Type: Premium Integration.
Connect your forms in WordPress to Mailchimp with the WS Form Mailchimp premium integration. You can create new forms from your Mailchimp lists in a single click, or use a Mailchimp action with any form you build in WS Form.
The premium integration supports adding new contacts, unsubscribing contacts, and editing contacts. It also includes automatic field mapping and automatic tag mapping when you create a form from a Mailchimp list.
You can also pull contact data into your form using WS Form autocomplete. WS Form can populate form fields from Mailchimp for signed-in visitors when their WordPress email address matches a Mailchimp contact.
## MailerLite
URL: https://wsform.com/integration/mailerlite/
Add MailerLite subscribers from your forms in WordPress faster
Type: Premium Integration.
Connect your forms in WordPress to MailerLite with the WS Form MailerLite premium integration. You can add subscribers using an action, pull subscriber data with autocomplete, and create new forms for your MailerLite groups in a single click.
WS Form can create a MailerLite form automatically from any of your MailerLite groups, or with no group selected. The form is fully configured and ready to use immediately.
You can also add a MailerLite action to any WS Form form and choose whether it runs when the form is saved, submitted, or both. The premium integration supports field mapping and custom mapping, and forms created from a MailerLite template have field mappings created automatically.
## MailPoet
URL: https://wsform.com/integration/mailpoet/
Build MailPoet list forms faster in WordPress
Type: Premium Integration.
Use the MailPoet premium integration to create WS Form forms that subscribe or unsubscribe contacts in MailPoet. You can also create forms for your MailPoet lists in a single click.
WS Form can fully configure a MailPoet list form automatically so it is ready to use right away. If you prefer, you can add a MailPoet action to any existing WordPress form and choose whether it runs when the form is saved, submitted, or both.
The premium integration supports field mapping, an opt-in field, and options for confirmation, welcome, and subscriber notification emails. It can also populate form fields from MailPoet contact data when the visitor is signed in and their WordPress email address matches a contact in MailPoet.
## Mailster
URL: https://wsform.com/integration/mailster/
Build Mailster forms faster and keep subscriber data in sync
Type: Premium Integration.
Recommended.
Use the Mailster premium integration to create forms in WordPress that subscribe or unsubscribe contacts in Mailster. You can also create forms for your Mailster lists in a single click.
WS Form can add a Mailster action to any form so data is sent when a form is saved, submitted, or both. The premium integration supports field mapping, custom mapping, tag mapping, tags by name, double opt-in, and overwriting an existing subscriber.
You can also populate form fields using Mailster contact data. This is available when a visitor is signed in and their WordPress email address matches a contact in Mailster.
## Make
URL: https://wsform.com/integration/make/
Send WordPress form submissions to Make and use your data across thousands of apps
Type: Premium Integration.
Connect WS Form submissions to Make and integrate with thousands of apps. The Make premium integration includes a form submission trigger and makes your form fields available for use in filters or mappings.
To use the premium integration, you create a scenario in Make with the WS Form Form Submission trigger, then connect it using the API URL and API Key from the Make settings in WS Form.
Make can retrieve submission data from a published WordPress form after at least one submission has been created. Additional submission fields are also available, including submission ID, form ID, status, preview, date added, date updated, and admin URL.
## MCP Server
URL: https://wsform.com/integration/mcp-server/
Connect your forms to AI-powered workflows
Type: Built-In Integration.
WS Form includes an MCP server that lets external applications, scripts, and services interact with your forms, including AI tools that support the MCP protocol.
This opens the door to intelligent form handling, automated decision-making, and AI-assisted workflows in WordPress. The MCP server can create forms with supported WS Form field types and simplified form features such as tabs, calculations, field settings, option population, and field sizing.
For security, form editing is disabled by default and all abilities exposed through the MCP server are protected by permission callbacks. User capabilities are checked against standard WS Form capabilities.
AI-generated form modifications are experimental, so review changes carefully and test them in a staging environment before publishing.
## Meta Box
URL: https://wsform.com/integration/meta-box/
Build forms for Meta Box custom fields and WordPress content
Type: Premium Integration.
Connect WS Form with Meta Box to build forms in WordPress that work with custom fields, post types, and taxonomies. You can create forms that submit new posts containing Meta Box fields.
With the Post Management Premium Integration, WS Form can automatically create forms for registered post types, add Meta Box fields based on your settings, and add taxonomy selectors. Choice-based fields can also pull their choices dynamically from Meta Box.
WS Form also supports pre-populating forms with post data that includes Meta Box fields. Group fields are supported when creating, populating, and submitting forms.
## Modula
URL: https://wsform.com/integration/modula/
Manage Modula galleries directly through your forms
Type: Premium Integration.
Recommended.
The WS Form Modula premium integration lets you show a Modula gallery on a form and update that gallery when the form is submitted.
You can add, reorder, and delete images in a gallery. Submitted uploads and deletions are reflected in the Modula gallery, including the image order.
WS Form can also automatically create a WordPress form from an existing Modula gallery. The generated form shows the images already contained in that gallery.
The integration uses a File Upload field configured for multiple, sortable uploads with Media Library handling, and supports appending images plus horizontal and vertical alignment options for newly added images.
## Mollie
URL: https://wsform.com/integration/mollie/
Take payments through your forms in WordPress with Mollie
Type: Premium Integration.
The WS Form Mollie premium integration lets you accept online payments in forms in WordPress. It can charge a fixed amount with a button on its own, or work with WS Form e-commerce fields for more advanced cart options.
Mollie supports a wide range of payment options, including credit cards, PayPal, and local payment methods for certain countries or regions. The payment method used in a form depends on your Mollie account configuration.
The premium integration includes Mollie form templates to help you get started. Once configured, Mollie fields appear in the E-Commerce section of the form builder, including cardholder, card, expiry, CVV, and Mollie Submit fields.
You can also map billing and shipping address fields, set the amount to charge, choose a currency, add a transaction description, and control how zero-amount payments are handled.
## Moosend
URL: https://wsform.com/integration/moosend/
Turn forms in WordPress into Moosend subscriber signups
Type: Premium Integration.
Connect your forms in WordPress to Moosend with the WS Form Moosend premium integration. You can push new subscribers using an action and create new forms from your Moosend lists in a single click.
WS Form can build a form automatically from any of your Moosend lists. The form is fully configured and ready to add to your website, and you can refresh the list view if a new list does not appear.
You can also add a Moosend action to any WS Form form and choose whether it runs when the form is saved, submitted, or both. The action supports list selection, an opt-in field, field mapping, and custom mapping using WS Form variables.
The premium integration can also retrieve subscriber data to populate form fields when a signed-in visitor's WordPress email address matches a contact in Moosend.
## Notion
URL: https://wsform.com/integration/notion/
Send WordPress form submissions straight to your Notion databases
Type: Premium Integration.
The Notion premium integration lets you push WS Form submissions from your WordPress website to Notion databases.
You can create a form for any shared Notion database in a single click. WS Form builds the form and configures it so it is ready to use immediately.
You can also use an existing form and add an action to submit data to Notion when a user saves the form, submits it, or both.
Supports all field types
Quick Connect
Uses latest API
## Novamira
URL: https://wsform.com/integration/novamira/
Connect forms in WordPress with Novamira
Type: Third Party.
WS Form can be used with Novamira.
Use this integration to connect your forms in WordPress with Novamira.
## Omnisend
URL: https://wsform.com/integration/omnisend/
Build Omnisend-ready forms and manage contacts from your forms in WordPress
Type: Premium Integration.
The Omnisend premium integration for WS Form lets you add new contacts using an action and create an Omnisend form automatically in a single click.
You can create a Contact form from the Omnisend tab on the Add New page. WS Form creates the form and configures it so it is ready to use on your WordPress website.
You can also use any WS Form form and add an Omnisend action that runs when the form is saved, submitted, or both. The premium integration supports field mapping, custom mapping, custom properties, tags, contact status, and an opt-in field.
## OOPSpam
URL: https://wsform.com/integration/oopspam/
Add spam protection to your forms with OOPSpam
Type: Third Party.
Use OOPSpam with WS Form to add spam protection to your forms in WordPress.
OOPSpam provides spam protection for WS Form. This integration is available as a third-party option.
You can learn more about using OOPSpam with WS Form here: OOPSpam spam protection for WS Form.
## OpenAI
URL: https://wsform.com/integration/openai/
Build AI-powered forms in WordPress with OpenAI
Type: Premium Integration.
Use the WS Form OpenAI premium integration to create forms in WordPress from a simple prompt and connect forms to core OpenAI endpoints for text, image, audio, and moderation tasks.
Included templates let you create an AI Generated Form by describing the form you need. Supported generated fields include Text, Text Area, Email, Phone, URL, Number, File Upload, Rating, Select, Checkbox, and Radio. Help text and placeholders can also be generated.
You can also add a Make OpenAI Request action to an existing form. Documented use cases include improving copy in a text area field, transcribing speech from an uploaded audio file, creating spoken audio from text, generating image content, question-and-answer experiences, and moderating submissions for inappropriate content.
## Option Management
URL: https://wsform.com/integration/option-management/
Manage site-wide WordPress options with forms
Type: Premium Integration.
Use WS Form Option Management to set WordPress options and populate form fields with stored option values. This makes it easier to work with site-wide settings in WordPress without writing custom code.
You can use the integration with regular WordPress options or with settings pages created by supported custom field plugins. Supported plugins include Advanced Custom Fields (ACF) PRO, JetEngine, and Meta Box.
WS Form can automatically create option forms for supported settings pages. You can also use any WS Form form and map fields to option names, set custom option values, and use WS Form variables in custom mappings.
## Oxygen
URL: https://wsform.com/integration/oxygen-builder/
Add forms to Oxygen layouts quickly
Type: Built-In Integration.
Add a form to a WordPress page in Oxygen Visual Site Builder with the WS Form element.
In Oxygen, open the WS Form PRO section and add the Form element to your layout. Then choose a form from the dropdown and click Apply Params to show the form in your layout.
## Pabbly
URL: https://wsform.com/integration/pabbly/
Send form submissions into your Pabbly Connect workflows
Type: Third Party.
Connect WS Form to Pabbly Connect and use your form submissions in automated workflows.
This integration helps you pass data from forms in WordPress into Pabbly Connect so you can connect it with the apps and processes you use.
Learn more about the WS Form integration for Pabbly Connect.
## PayPal Checkout
URL: https://wsform.com/integration/paypal-checkout/
Take PayPal and card payments directly from your forms
Type: Premium Integration.
PayPal Checkout for WS Form lets you accept PayPal or credit card payments from your forms in WordPress. You can charge a fixed amount with the button on its own, or use WS Form e-commerce fields for more advanced cart options.
The PayPal Checkout button uses PayPal’s latest client-side payment process. When a transaction is completed, WS Form stores the transaction ID with the form submission.
You can configure billing and shipping address mapping, pre-populate payer details, and map transaction breakdown values such as subtotal, shipping, tax, handling fee, shipping discount, insurance, and gift wrap. The payment page must be served over HTTPS.
## PDF
URL: https://wsform.com/integration/pdf/
Turn form submissions into PDFs you can send and export
Type: Premium Integration.
The PDF premium integration lets you create PDFs from form submissions in WordPress. You can attach a PDF to a Send Email action and export a PDF from the submissions page.
You can adjust page size, page orientation, and font settings in the PDF settings tab. The premium integration also includes a Page Break field type to control where page breaks appear in generated PDFs.
Custom PDF templates are supported. The premium integration uses parsed HTML templates with WS Form variables, and generated PDF files are created dynamically rather than stored on your server.
## PersonalizeWP
URL: https://wsform.com/integration/personalizewp/
Personalize WordPress content using data collected in your forms
Type: Third Party.
Connect WS Form with PersonalizeWP to use form data for content personalization in WordPress.
This integration helps you tailor what visitors see based on information collected through your forms.
You can learn more about PersonalizeWP at personalizewp.com.
## Pipedrive
URL: https://wsform.com/integration/pipedrive/
Turn form submissions into Pipedrive deals faster
Type: Premium Integration.
Connect your forms in WordPress to Pipedrive and push new deals to a selected pipeline and stage using a WS Form action.
You can also create new forms from your Pipedrive pipelines in a single click. WS Form builds the form and configures it so it is ready to use immediately.
For existing forms, add the Pipedrive action and map your fields to deal, organization, and person fields. You can also use custom mapping, add notes, and apply deduplication options when a deal is added.
## Pods
URL: https://wsform.com/integration/pods/
Build forms for Pods custom fields and post types
Type: Premium Integration.
Use WS Form with Pods to build forms in WordPress that work with custom fields, post types, and taxonomies. WS Form can be fully integrated with custom fields created using Pods.
With the Post Management Premium Integration, you can automatically create forms for any registered post type, add Pods fields based on your settings, and include taxonomy term selectors such as categories and tags.
WS Form can push submissions as new posts that are fully compatible with Pods, pre-populate forms using post data that includes Pods fields, and support Pods group fields when creating, populating, and submitting forms.
Automatically create forms from registered post type templates
Dynamically populate select, checkbox, radio, and button group choices from Pods
Support core Pods field types, including group fields
## Polylang
URL: https://wsform.com/integration/polylang/
Make your forms available in every site language
Type: Built-In Integration.
Polylang is a multilingual plugin for WordPress that supports server-side string translation. WS Form integrates directly with Polylang and can automatically register translatable form strings for translation.
When Polylang is installed and activated, WS Form adds a Translation tab to Form Settings. You can enable the integration, manage translations in Polylang, and have translated forms display automatically in the active language.
Polylang string translation can be used for form settings, tab labels, section labels, field labels, placeholders, help text, default values, action settings, and ARIA accessibility strings.
WS Form can also translate data grid choices used by Select, Checkbox, and Radio fields. Data grid translation uses the Label column mapping, and only data grids without a data source can be translated.
## Post Management
URL: https://wsform.com/integration/post-management/
Build forms that create and update WordPress content
Type: Premium Integration.
Use the Post Management premium integration to create forms that add and update posts of any post type in WordPress. That includes posts, pages, products, and custom post types.
WS Form can create a post management form in a single click. The automatic setup creates the form, maps fields, and creates checkboxes for taxonomies associated with the post type you select.
You can map form fields to post fields, post meta data, attachments, featured images, and terms. The premium integration is also compatible with Advanced Custom Fields (ACF), ACPT, JetEngine, Meta Box, Pods, and Toolset.
## Salesforce
URL: https://wsform.com/integration/salesforce/
Connect your forms to Salesforce and work with leads, contacts, files, and flows
Type: Premium Integration.
Connect forms in WordPress directly to Salesforce with WS Form. You can create and update Salesforce objects, run supported invocable actions, upload files, detect and update duplicate records, and populate forms from Salesforce.
WS Form supports standard and custom Salesforce objects. You can choose which objects and invocable actions are available, then build a form automatically from a Salesforce object or add Salesforce actions manually to any form.
Field mapping includes automatic and custom mapping. You can send form values, fixed values, or WS Form variables to Salesforce, map file uploads and signatures, and use data returned by Salesforce in subsequent actions.
## Slack
URL: https://wsform.com/integration/slack/
Send WordPress form submissions straight to Slack
Type: Premium Integration.
Use the Add to Slack action to push messages from a WordPress form to Slack. You can configure the message text and use WS Form variables in message settings.
The Slack premium integration supports message color, attachment titles, images, icons, buttons, and field mapping. Messages can be posted to public and private channels in your workspace.
WS Form can also create a Slack form automatically so it is pre-configured to push messages to one of your Slack channels. If you use a private channel, add WS Form as an app to that channel first.
## Stripe Elements
URL: https://wsform.com/integration/stripe-elements/
Take secure card payments directly from your forms
Type: Premium Integration.
Stripe Elements lets you accept credit card payments from your forms in WordPress. You can charge a fixed amount with the button on its own, or use WS Form e-commerce fields for more advanced cart options.
The payment flow sends card details to Stripe client-side for secure tokenization. If tokenization succeeds, the form is saved and a payment intent is created server-side. If card authorization is required, it is shown to the user before the payment is confirmed and the form is submitted.
Once configured, two Stripe Elements fields are available in the form builder under E-Commerce: Stripe Card and Stripe Submit. The page containing the payment form must be served over HTTPS.
## Toolset
URL: https://wsform.com/integration/toolset/
Create WordPress posts with Toolset custom fields from your forms
Type: Premium Integration.
Use WS Form with Toolset to build forms in WordPress that create posts containing Toolset custom fields. Toolset lets you create custom fields, post types, and taxonomies, and WS Form can integrate with those custom fields.
With the Post Management Premium Integration, you can automatically create forms for any registered post type, add Toolset fields configured to your settings, and include taxonomy term selectors. WS Form can also push submissions as new posts that are compatible with Toolset and pre-populate forms using post data that includes Toolset fields.
WS Form supports Toolset group fields when creating, populating, and submitting forms. It also supports Toolset core field types including text, textarea, email, URL, phone, date, numeric, select, radio, checkboxes, image, file, WYSIWYG, and more. Repeatable fields and groups are not supported for integration purposes.
## TranslatePress
URL: https://wsform.com/integration/translatepress/
Translate your forms visually on the front end
Type: Built-In Integration.
TranslatePress is a client-side translation plugin for WordPress that translates pages visually in the browser. WS Form works with TranslatePress out of the box and does not require any special integration settings.
Create and publish your form with WS Form, add it to a page, then open that page on the front end of your website. Use TranslatePress to translate visible form content in the visual editor.
You can translate field labels, field help text, field placeholders, button labels, validation messages, and confirmation messages. Once translated, forms automatically display in the active language.
## TrustedForm
URL: https://wsform.com/integration/trustedform/
Capture TrustedForm certificates in forms in WordPress
Type: Built-In Integration.
Add the TrustedForm field to your WordPress form to bring TrustedForm lead certification into WS Form. It helps certify consumer consent, document the time and source of submissions, and support transparency in data collection and usage.
When you add the TrustedForm section, WS Form automatically adds four fields: TrustedForm, TrustedForm Certificate URL, TrustedForm Ping URL, and TrustedForm Token. WS Form also automatically enqueues the TrustedForm JavaScript and binds TrustedForm to that form.
You can choose which fields store the certificate URL, ping URL, and token, and enable sandbox mode for testing. WS Form also supports multiple TrustedForm-enabled forms on the same page and lets you set an optional identifier for tracking and reporting.
## Twilio
URL: https://wsform.com/integration/twilio/
Send SMS messages from your forms with Twilio
Type: Premium Integration.
Connect Twilio to a WordPress form created in WS Form and send SMS messages when a form is saved, submitted, or both.
You can create new forms from your Twilio phone numbers in a single click from the Add New page. WS Form creates the form and configures it so it is ready to use.
The Twilio action supports text messages and can include file uploads, signatures, and media library files as attachments.
## Uncanny Automator
URL: https://wsform.com/integration/uncanny-automator/
Trigger WordPress automations from your forms
Type: Third Party.
Connect your forms in WordPress to Uncanny Automator and build automated workflows without code.
WS Form works with Uncanny Automator through the WS Form Lite integration page from Uncanny Automator.
You can explore the integration here: Uncanny Automator for WS Form Lite.
## User Management
URL: https://wsform.com/integration/user-management/
Build WordPress user forms faster
Type: Premium Integration.
Use the User Management premium integration to create forms in WordPress for user registration, profile editing, login, forgot password, reset password, and logout.
WS Form can create these user management forms in a single click. You can also add a User Management action to an existing form and choose whether it runs when the form is saved, submitted, or both.
For register and update methods, you can map form fields to user metadata and set custom meta keys and values. The premium integration is also compatible with Advanced Custom Fields (ACF), ACPT, JetEngine, Meta Box, Pods, and Toolset.
You can also pre-populate forms with user data, which is useful for edit profile forms. For login forms, you can create a fixed redirect or pass a redirect URL dynamically.
## Webex
URL: https://wsform.com/integration/webex/
Send form submissions to Webex your way
Type: Built-In Integration.
Use the Webex premium integration to push messages to Webex from a WordPress form. You can configure the message text, add a file attachment, and build an adaptive card.
WS Form variables can be used in message settings, including text and adaptive card content. You can send messages to a Webex space or directly to a person by email address.
WS Form can also create a pre-configured form for your Webex spaces. You can also add a Webex action to an existing form so it runs when a form is saved, submitted, or both.
## Webhook Action
URL: https://wsform.com/integration/webhook-action/
Connect your forms to custom endpoints and return data to fields
Type: Built-In Integration.
Webhook Action lets you send WordPress form submission data to any URL endpoint. Supported request methods include POST, GET, PUT, DELETE, and PATCH.
You can map form fields to request keys, add custom key/value pairs, and include additional HTTP headers. WS Form also supports JSON and URL encoded content types.
When response processing is enabled, returned JSON data can be mapped into form fields. You can also map HTTP status codes to ignore the response, process response field mapping, throw an error, or halt action processing.
Common uses include pushing submissions to a custom endpoint, sending data to a third party without a native integration, and pre-loading form fields with data from an endpoint.
## Weglot
URL: https://wsform.com/integration/weglot/
Show translated forms in the active language with Weglot
Type: Built-In Integration.
Weglot is a client-side translation platform for WordPress that automatically translates website content using JavaScript. WS Form includes built-in support for Weglot by registering dynamic selectors so form content can be translated correctly.
Weglot can translate visible form content including field labels, field placeholders, field help text, validation messages, button labels, and confirmation messages.
To translate a form, create and publish your form, add it to a page, then open that page in the translated language. You can review and edit translations in the Weglot Visual Editor.
Once translated, forms automatically display in the active language. Translation management and language display behavior are controlled through Weglot.
## WooCommerce
URL: https://wsform.com/integration/woocommerce/
Create WooCommerce product add-ons with flexible form layouts
Type: Third Party.
Use WS Form with WooCommerce to build product premium integrations for your store. This integration is designed for WooCommerce product premium integrations in WordPress.
You can use WS Form to create flexible form layouts for product pages. This helps you present extra product options in a format that fits your store.
Learn more about the WooCommerce product premium integrations integration at WooCommerce.
## WordPress Hooks
URL: https://wsform.com/integration/wordpress-hooks/
Add custom WordPress hook logic to your form workflow
Type: Built-In Integration.
Use the Run WordPress Hook action to run a WordPress action or filter when a user saves or submits a form. This gives developers a flexible way to run custom PHP code from a WordPress form workflow.
You can choose whether the hook runs on save, submit, or both. WS Form also lets you choose a filter or action hook type, enter the hook tag, and decide whether it runs before submission creation, before other actions, or after other actions.
When using a filter, WS Form passes the form and submit objects to your hook. Your filter can return an updated submit object, a spam level from 0 to 100, an array for messages, field value changes, or redirects, or a value that halts further action processing.
Action hooks also receive the form and submit data, making it possible to retrieve submitted field values and process them in your own PHP code.
## WP Fusion
URL: https://wsform.com/integration/wp-fusion/
Send WordPress form submissions to your CRM with flexible mapping
Type: Premium Integration.
Recommended.
Use the WP Fusion premium integration to synchronize WS Form submissions with leading CRMs and marketing automation systems. It can also keep user profiles in sync with CRM contact records.
When the WP Fusion plugin is installed, WP Fusion appears as an action in your form settings. You can run that action when a form is saved, submitted, or both, and push the submission to the CRM configured in WP Fusion.
WS Form supports field mapping, custom field mapping, and list selection for WP Fusion. You can also choose an opt-in field, or enable Add Only When so only new contacts are added and existing ones are not updated.
## WPBakery
URL: https://wsform.com/integration/wpbakery/
Embed WS Form layouts directly inside WPBakery
Type: Built-In Integration.
WS Form includes a native integration with WPBakery, so you can add any WS Form to a page or post built with WPBakery using the built-in WS Form element.
The integration works in both the WPBakery backend editor and frontend editor. After you select a form, the element shows a live preview in the editor to help you position it in your layout.
You can choose the form to display and optionally add a custom element ID or CSS class to the form wrapper. On published pages, the form is rendered using the standard WS Form engine, so WS Form functionality remains available.
## WPML
URL: https://wsform.com/integration/wpml/
Build multilingual forms that display in the active language
Type: Built-In Integration.
WS Form integrates directly with WPML so you can translate form content in WordPress using WPML string translation. When enabled, WS Form can automatically register translatable form strings for each form.
You can translate form settings, tab labels, section labels, field labels, placeholders, help text, default values, action settings, and ARIA accessibility strings. WS Form also installs a WPML translation package for each form to help manage translations.
Data grids used by Select, Checkbox, and Radio fields can also be translated. Translation uses the Label column mapping, and data grids without a data source can be registered as translatable strings.
## Zapier
URL: https://wsform.com/integration/zapier/
Send WS Form submissions to thousands of apps with Zapier
Type: Premium Integration.
Connect your forms in WordPress to 3000+ apps with the WS Form Zapier premium integration. Zapier uses a New Submission trigger so you can start actions when a form submission is received.
You can connect Zapier to WS Form using the API URL and API Key shown in the Zapier settings tab. To create a zap, you will need one published form and at least one submission.
Along with your form fields, WS Form makes additional submission data available in Zapier for filters and mappings. This includes values such as Submission ID, Form ID, status, preview, date added, date updated, and the admin URL.
## Zendesk
URL: https://wsform.com/integration/zendesk/
Turn WordPress form submissions into Zendesk support tickets
Type: Premium Integration.
The Zendesk premium integration lets you create custom support ticket forms on your WordPress website and push submissions to your Zendesk account.
You can get started quickly with the included Support Ticket template, which creates a form in a single click and is ready to add to your website.
You can also use any form created in WS Form and add a Zendesk action. The action can run when a form is saved, submitted, or both, and supports field mapping, custom mapping, and tag mapping.
The premium integration also supports attaching files and signatures to Zendesk tickets, and includes additional variables for use in actions such as messages and emails.
## Zoho CRM
URL: https://wsform.com/integration/zoho-crm/
Build Zoho CRM forms quickly and send form data where it belongs
Type: Premium Integration.
Connect forms in WordPress to Zoho CRM with the WS Form Zoho premium integration. You can push new records to Zoho CRM modules using a WS Form action.
WS Form can also create new forms from your Zoho module layouts in a single click on the add form page. This creates the form and configures it so it is ready to use immediately.
You can work with selected Zoho modules, including custom modules. The premium integration supports field mapping, custom mapping, attachment mapping, and updating existing records using Zoho upsert behavior.
## Abilities
URL: https://wsform.com/knowledgebase/abilities/
A list of the registered abilities used by our MCP Server.
The following abilities are registered with the WordPress abilities-api.
## AbuseIPDB
URL: https://wsform.com/knowledgebase/abuseipdb/
Protect your forms from abusive IP addresses by integrating WS Form with AbuseIPDB to automatically score, identify, and manage spam submissions.
AbuseIPDB is a third-party IP reputation service that helps identify IP addresses associated with abusive activity. WS Form can check a visitor's IP address against the AbuseIPDB database whenever a form is submitted and use the returned abuse confidence score as the submission's spam score.
Spam scores range from 0 (low risk) to 100 (high confidence of abuse). On the submissions page, spam scores are shown using the same colored indicators as other WS Form spam protection services:
Red - Blatant spam
Orange - Possible spam
Green - Not considered spam
Each AbuseIPDB check is also recorded as a system note on the submission, including the IP address, abuse confidence score, country, domain, total reports, and the reason a submission was flagged when applicable.
If AbuseIPDB is temporarily unavailable or returns an error, WS Form will still accept the submission. The submission is not blocked solely because the AbuseIPDB request failed.
## Get an AbuseIPDB API Key
Before you can use AbuseIPDB with WS Form, you'll need an AbuseIPDB account and API key.
Create an account at https://www.abuseipdb.com/register.
Copy your AbuseIPDB API key.
In WS Form, go to Settings > Spam Protection > AbuseIPDB.
Paste your API key into the API Key setting.
## Configuring AbuseIPDB
Global AbuseIPDB settings are located at:
WS Form > Settings > Spam Protection > AbuseIPDB
### API Key
Enter your AbuseIPDB API key to enable AbuseIPDB checks.
If you prefer not to store the API key in the database, it can also be defined using the PHP constant WSF_ABUSEIPDB_API_KEY.
### Enable On All Forms
Enable this setting to check submissions against AbuseIPDB on every form.
If this setting is disabled, you can enable AbuseIPDB individually for each form using the form's Spam settings.
When enabled globally, the form-level Enable setting is locked to show that AbuseIPDB is enabled for all forms.
### Bypass If Administrator
This option is enabled by default.
When enabled, AbuseIPDB checks are skipped for users who are signed in as an administrator and can manage WS Form. This is useful while building or testing forms.
If enabled globally, the matching form-level setting is locked.
### Abuse Confidence Score
This optional setting accepts a value between 0 and 100.
If you enter a value, any submission whose AbuseIPDB score is equal to or greater than that value is immediately treated as spam on every form. The submission can still be saved by the Database action, but other actions and integrations do not run.
If you leave this setting blank, WS Form uses each form's Spam Threshold setting instead. The AbuseIPDB score is still recorded on the submission and compared against that form's threshold to determine whether it should be placed in the submissions spam folder.
### Report Window (Days)
Specify how many days of AbuseIPDB reports should be considered when checking an IP address.
The default value is 30 days. Valid values are between 1 and 365.
### Country Blocklist
Select one or more countries to block.
If a visitor's IP address is associated with a blocked country, the submission is treated as maximum spam regardless of its AbuseIPDB score. The submission can still be saved by the Database action, but other actions and integrations do not run.
The system note records the flagged reason as Country blocklist.
### Domain Blocklist
Enter one or more domains separated by commas or new lines.
For example:
example.com
Domain matching is suffix-aware, so entering example.com also matches domains such as subdomain.example.com.
If the visitor's IP address matches a blocked domain, the submission is treated as maximum spam regardless of its AbuseIPDB score. The submission can still be saved by the Database action, but other actions and integrations do not run.
The system note records the flagged reason as Domain blocklist.
### Report Spam To AbuseIPDB
Enable this setting if you want WS Form to report spam submissions back to AbuseIPDB as web spam.
Each submission is reported only once. When the report is successful, a system note is added to the submission confirming that the IP address was reported.
## Enabling AbuseIPDB on a Form
If Enable On All Forms is not enabled globally, you can enable AbuseIPDB for individual forms.
Open the form in the layout editor.
Click the Settings icon at the top of the layout editor.
Click the Spam tab.
Locate the AbuseIPDB section in the sidebar.
Enable Enable.
If an API key has not yet been configured, the sidebar displays instructions to configure your API key under Settings > Spam Protection > AbuseIPDB, then enable protection for the current form or for all forms.
## Per-Form Settings
### Enable
Enable this option to check submissions against the AbuseIPDB IP reputation database.
If Enable On All Forms is enabled globally, this setting is locked.
### Bypass If Administrator
This option is enabled by default.
When enabled, AbuseIPDB checks are skipped while you are signed in as an administrator.
If the global Bypass If Administrator setting is enabled, this option is locked.
### Spam Threshold
The form's Spam Threshold setting is used when the global Abuse Confidence Score setting is left blank.
Submissions receive a spam score between 0 and 100. If the AbuseIPDB score meets or exceeds the form's Spam Threshold, the submission is placed in the submissions spam folder.
## How AbuseIPDB Spam Checking Works
When a submission is received, WS Form performs the following checks:
Gets the visitor's IP address and checks it with AbuseIPDB using the configured report window.
Receives the abuse confidence score and related information such as the country, domain, and total reports.
Records the result as a system note on the submission.
If the visitor's country appears in the Country Blocklist, the submission is treated as spam and other actions and integrations do not run.
Otherwise, if the visitor's domain appears in the Domain Blocklist, the submission is treated as spam and other actions and integrations do not run.
Otherwise, if a global Abuse Confidence Score has been configured and the returned score meets or exceeds it, the submission is treated as spam and other actions and integrations do not run.
If no global Abuse Confidence Score has been configured, the returned score is compared with the form's Spam Threshold to determine whether the submission should be placed in the submissions spam folder.
## Tip
During development, leave Bypass If Administrator enabled so you can test your forms without your own submissions being checked by AbuseIPDB.
## Accessibility and Web Forms for WordPress
URL: https://wsform.com/knowledgebase/accessibility-and-web-forms/
WS Form has a goal of complying with Web Content Accessibility Guidelines (WCAG) wherever possible to make Web forms more accessible.
WS Form has a goal of complying with Web Content Accessibility Guidelines (WCAG) wherever possible to make Web forms for WordPress more accessible.
Considerations for accessibility in WS Form include:
Accessible Rich Internet Applications (ARIA) attributes such as field labels, descriptions, required fields.
Fully responsive form design allowing for different layouts per device.
High contrast text used by default in our WS Form framework, for example, ensuring required asterisks have a high contrast red color and providing the option to change the required indicator to a text string.
High contrast button and message colors.
Offering section (fieldset) labels on fields to better describe sections of a form.
Offering the ability to change the form, tab and section headings to comply with heading tags sequential requirements.
Offering the ability to add help text at a form and field level.
Accessibility friendly spam protection methods such as Honeypot and Cloudflare Turnstile.
A default font size of 16px to prevent unnecessary input zoom on mobile devices.
Clean DOM structure allowing for easy custom styling with CSS.
We would recommend that you adjust your form to comply with WCAG requirements when embedded on your WordPress website.
The WAVE Web Accessibility Evaluation Tool can be used to test your website for WCAG errors. Their free browser plugin is a great tool for helping ensure websites are accessible.
## Actions
URL: https://wsform.com/knowledgebase/introduction-actions/
Actions are events that occur when a form is either saved or submitted.
Actions run whenever a user clicks a submit or save button. An action could be sending an email, redirecting to a different web page or showing a message. Actions can also involve more complex functionality such as adding a contact to an email marketing platform such as MailChimp, or pushing a message to a Slack channel.
To manage your actions, click the Actions icon at the top of the layout editor. This will open the Actions sidebar:
## Adding Actions
To add an action, click the add icon below the action list.
Select an action from the pulldown list. Once selected, you can rename that action to anything you like.
Configure the action settings. To see a complete list of the available actions and learn more about how to configure them, click here.
## Editing Actions
To edit an action, click the settings icon next to the action name.
To disable an action, click the disable icon . You can also use conditional logic to disable and enable actions.
The delete an action, click the delete icon .
The actions included with WS Form PRO are:
Send Email
Show Message
Redirect to a Page
Save Submissions
Conversion Tracking
Run WordPress Hook
Run WordPress Search
Run Javascript
Webhook
Data Export Request
Data Erasure Request
## Integrations
Premium integrations are also available. Click here to learn more about configuring these actions.
[downloads category="32" columns="3" number="0" orderby="title" order="ASC"]
## ActiveCampaign Integration
URL: https://wsform.com/knowledgebase/activecampaign/
The ActiveCampaign integration lets you push new contacts using an action and create new forms from your lists in a single click on the add form page.
The ActiveCampaign integration lets you push new contacts using an action and create new forms from your lists in a single click on the add form page.
## Installation
The ActiveCampaign plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the ActiveCampaign plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the ActiveCampaign tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to ActiveCampaign
In order to use the integration, you need to connect it to ActiveCampaign. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the ActiveCampaign tab at the top of the page.
Enter your API URL and key.
If you do not have a ActiveCampaign account, you can create a new account here.
## Creating a Form for ActiveCampaign
### Automatically
WS Form can create a form for any of our ActiveCampaign lists in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a ActiveCampaign form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the ActiveCampaign tab at the top of the page.
Click on any of your ActiveCampaign lists to create a form.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the ActiveCampaign tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to ActiveCampaign when a user saves or submits their form.
To add a ActiveCampaign action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a ActiveCampaign List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The ActiveCampaign action settings are as follows:
#### When Should This Action Run?
You can choose to run the ActiveCampaign action when the form is saved, submitted, or both.
#### ActiveCampaign List
Choose the ActiveCampaign List you would like contacts to be added to. If you have created a new list since viewing this screen, you can click the refresh icon to retrieve the new list.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding custom fields in ActiveCampaign. For example you would want to map your Email field to the Email field in ActiveCampaign.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding ActiveCampaign field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tag mapping tells WS Form which of your form fields relate to the tags ActiveCampaign.
To map a field:
Click the Add icon at the bottom right of the interest mapping section.
Select your form field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Tag mapped fields need to be a choice field, such as Select, Checkbox, or Radio fields. The value of the submitted value should be the tag ID.
If you use the automatic method above, WS Form PRO will automatically build tag mapping options for you.
#### Account Assignment
Account assignments allow you to assign ActiveCampaign contacts to an account.
At present ActiveCampaign only supports one account assignment but this may change in future.
To add a new account assignment:
Click the Add icon at the bottom right of the interest mapping section.
Enter the Account ID.
Optionally enter a Job Title for the account assignment.
Click the Save button at the bottom of the sidebar to save your changes.
#### Automation Mapping
Automation mapping tells WS Form which active ActiveCampaign automations you would like newly subscribed contacts to be assigned to.
To add a new automation assignment:
Click the Add icon at the bottom right of the interest mapping section.
Select an active automation (inactive automations are not shown).
Repeat this process for each automation you want to assign.
Click the Save button at the bottom of the sidebar to save your changes.
## Add Button
URL: https://wsform.com/knowledgebase/section_add/
The add button is used with repeatable sections to add a new row.
The Add button is used with repeatable sections to add a new row. The add button can be placed within or outside of the section it will add rows to.
## Demo
## Adding an Add Button
To learn how to add, edit, clone, move, resize, offset, or delete an add button, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This label is used to identify the add button in the WS Form form builder.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Repeatable Section
This setting determines which section the row should be added to when the add button is clicked. You can choose to put the add button inside the repeatable section, or outside of it.
If you add the add button to a repeatable section, it will automatically be assigned to it. If you add to a section that is not repeatable you will be alerted to the fact that the repeatable section needs to be chosen.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the add button.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
#### Type
The type option allows you to choose how this button is styled. The options are:
Default
Primary
Secondary
Success
Information
Warning
Danger
#### Remove Full Width Class
Checking this option will no-longer render the button as 100% width.
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
Field restrictions enable you to define what can or cannot be entered into the field.
#### Disabled
If checked the field will be disabled, and it cannot be interacted with. You can re-enable a field dynamically by using conditional logic.
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Custom Attributes
This setting is used to add custome attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custome attributes as you need.
To add a custome attributes key value pair:
Click the Add icon to add a custome attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custome attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Add Custom Templates to the Template Library
URL: https://wsform.com/knowledgebase/add-custom-templates-to-the-template-library/
Learn how to add custom templates to the WS Form 'Add New' page.
When users create a new form they use the Add New admin page in WS Form. This displays the template library which contains a combination of built in templates and templates added by integrations. It is also possible for you to add your templates to this page.
There are a few steps to setting this up.
Create and export custom templates
Create a custom template directory structure
Create a config.json file
Register your custom template directory
## Create and Export Custom Templates
Creating custom templates is easy with WS Form! Simply create a new form and then export the form to a JSON file. To export a form, click the export icon at the top of the layout editor. You'll put any exported form files in a custom template directory.
Exported forms have a file name such as: wsft-form-my-custom-template.json
## Create a Custom Template Directory
You can create a custom template directory anywhere that is accessible to your web server. We recommend using the wp-content directory which won't be overwritten when you update WordPress, plugins or themes. An example location for your custom template directory relative to the WordPress root directory might be:
wp-content/ws-form/templates/
Within this folder you will create a folder that will contain your JSON template files. For example:
wp-content/ws-form/templates/my-custom-templates/
You can add as many custom templates as you wish into this folder.
An example path full path to a JSON template file might be:
wp-content/ws-form/templates/my-custom-templates/wsft-form-my-custom-template.json
A config.json file will also be placed in the root of your custom template directory.
## Create a config.json File
The config.json file describes your custom template directory structure to WS Form. The file is located in the root of your custom template directory. For example:
wp-content/ws-form/templates/config.json
An example config.json file is shown below:
{"template_categories": [
{
"id" : "my-custom-templates",
"label" : "My Custom Templates",
"file_path" : "my-custom-templates/",
"templates" : [
{
"id" : "wsft-form-my-custom-template",
"label" : "My Custom Template",
"file_json" : "wsft-form-my-custom-template.json",
"pro_required" : 1
}
]
}
]}
Each custom template category is defined as an object in the template_categories array. Each category is configured as follows:
Key
Value
Example
id
A unique identifier for the template category.
my-custom-templates
label
A public facing label that describes the template category.
My Custom Templates
file_path
The file path relative to your custom template directory.
my-custom-templates/
templates
An array describing each of the templates in the category.
See below
Each template description is defined as an object in the templates array key as follows:
Key
Value
Example
id
A unique identifier for the template.
my-custom-templates
label
A public facing label that describes the template.
My Custom Templates
file_json
The file name relative to your template category directory.
wsft-form-my-custom-template.json
pro_required
1 = WS Form PRO required
0 = WS Form PRO not required (Will work with WS Form LITE)
1
## Register the Custom Template Directory
To tell WS Form about your custom template directory, you use the wsf_template_form_config_files filter hook. This filter hook has a single parameter passed to it which is an array of the template config.json files used by the Add New admin page.
Using the example file custom template directory path above, an example of using this filter hook is shown below:
// Register filter function for wsf_template_form_config_files hook
add_filter('wsf_template_form_config_files', 'my_template_form_config_files', 10, 1);
// Filter function for wsf_template_form_config_files hook
function my_template_form_config_files($config_files) {
// Add path to my config.json file
$config_files[] = WP_CONTENT_DIR . '/ws-form/templates/config.json';
// Return $config_files array to WS Form
return $config_files;
}
This code would typically be placed in your themes functions.php file (preferably a child theme is one exists) but it could also be added using a custom code plugin.
## Example Completed Template Directory
An example completed template directory might look as follows:
wp-content/ws-form/templates/ wp-content/ws-form/templates/config.json wp-content/ws-form/templates/my-custom-templates/ wp-content/ws-form/templates/my-custom-templates/wsft-form-my-custom-template-1.json wp-content/ws-form/templates/my-custom-templates/wsft-form-my-custom-template-2.json wp-content/ws-form/templates/my-custom-templates/wsft-form-my-custom-template-3.json
## Add File Types to File Upload Fields in WordPress
URL: https://wsform.com/knowledgebase/add-file-types-to-file-upload-fields-in-wordpress/
Learn how to enable additional file types for WS Form file upload fields by extending WordPress's default MIME type settings.
By default, WordPress restricts which file types can be uploaded for security reasons. If you're using a File Upload field in WS Form and want to allow additional file types (such as .svg, .zip, or other custom formats), you can enable them by adding a simple code snippet to your website.
## Step 1: Allow Additional File Types in WordPress
To enable additional file types, use the upload_mimes filter in WordPress. Add the following code to your theme’s functions.php file or use a plugin like Code Snippets to add it safely:
add_filter( 'upload_mimes', 'wsf_allow_additional_mime_types' );
function wsf_allow_additional_mime_types( $mimes ) {
// Example: Allow SVG and ZIP files
$mimes['svg'] = 'image/svg+xml';
$mimes['zip'] = 'application/zip';
// Add more file types as needed:
// $mimes['ext'] = 'mime/type';
return $mimes;
}
Only allow file types you trust. Enabling certain formats (e.g., SVG) may require extra sanitization for safe use.
## Step 2 (Optional): Restrict File Types in WS Form
Once WordPress allows additional file types, you can optionally restrict which types are permitted for a specific File Upload field in WS Form.
Edit your form in WS Form.
Click the File Upload field to open its settings.
In the Allowed File Types setting, enter the file extensions you want to accept (e.g., svg, zip).
Save your form.
This step is not required, but it allows you to limit uploads to specific file types at the form level.
Learn more: File Upload Accept Parameters
## Step 3: Test Your Form
Preview or publish your form and try uploading a file using the new extension. If configured correctly, the file should upload successfully without errors.
## Additional Notes
Some file types (e.g., .svg) may not preview properly in the WordPress media library unless additional plugins or sanitizers are used.
If uploads still fail, check server-level restrictions (e.g., MIME type filtering in PHP or NGINX/Apache).
Use a trusted MIME type reference: Common MIME Types (MDN)
## Add PDF Links to Submissions CSV Exports
URL: https://wsform.com/knowledgebase/add-pdf-links-to-submissions-csv-exports/
It is possible to add links to submission PDF exports using WS Form filter hooks.
It is possible to add links (URLs) to submission PDF exports using the WS Form wsf_submit_export_csv_header and wsf_submit_export_csv_row filter hooks.
Sample code for doing so can be found below:
// Add a callback function for the wsf_submit_export_csv_row filter hook
add_filter( 'wsf_submit_export_csv_header', 'wsf_submit_export_csv_header_function', 10, 2 );
// Callback function for the wsf_submit_export_csv_header filter hook
function wsf_submit_export_csv_header_function( $csv_header, $form_id ) {
// Add PDF URL to CSV export header
$csv_header['pdf_url'] = __('PDF URL', 'ws-form');
// Return key value pairs array for CSV header
return $csv_header;
}
// Add a callback function for the wsf_submit_export_csv_row filter hook
add_filter( 'wsf_submit_export_csv_row', 'wsf_submit_export_csv_row_function', 10, 3 );
// Callback function for the wsf_submit_export_csv_row filter hook
function wsf_submit_export_csv_row_function( $csv_row, $form_id, $submit ) {
// Create instance of the PDF action class
$ws_form_action_pdf = new WS_Form_Action_PDF();
// Get PDF URL
$pdf_url = $ws_form_action_pdf->get_pdf_url(
$submit->hash, // Submission hash
$form_id, // Form ID
true // Download (true = Yes, false = No)
);
// Add PDF URL to CSV row
$csv_row['pdf_url'] = $pdf_url;
// Return key value pairs array for CSV row
return $csv_row;
}
## Add Row Numbers to Repeatable Sections
URL: https://wsform.com/knowledgebase/add-row-numbers-to-repeatable-sections/
This tutorial demonstrates how to add row numbers to repeatable sections.
This tutorial demonstrates how to add row numbers to each repeater in a repeatable sections.
## Demo
## Tutorial
Create a repeatable section by checking the Repeatable setting in a section.
Add a Text Editor field to the repeatable section.
Enter the following in the content of the Text Editor field: Row #calc(#section_row_number)
The #calc variable tells WS Form to keep the #section_row_number variable up to date each time the repeatable section row count changes.
## Other Section Variables
In addition to #section_row_number, the following section related variables can be used.
## Add Select2 to a WS Form Select Field
URL: https://wsform.com/knowledgebase/add-select2-to-a-ws-form-select-field/
This tutorial explains how to add the Select2 jQuery plugin to any select field in your form.
Select2 is a jQuery based replacement for select boxes. It supports searching, AJAX, and infinite scrolling of results.
You can add Select2 to any Select or Price Select field in your WordPress form.
## Demo
## How To
Click the field settings icon.
In the Basic tab enable the Select2 setting.
Optional: Check the Use AJAX setting if your select field has a lot of options to improve performance.
Click Save & Close.
## Manually Adding Select2
You can also manually add Select2 to any Select or Price Select field.
### Prerequisites
#### Select2
In order to use Select2, you must include the compiled JavaScript and CSS files on your website. There are multiple options for including these pre-compiled files. Learn more.
### Sample JavaScript
Add this JavaScript to your website and replace 123 with the field ID of your select field. If you can't find you field ID, click here.
(function($) {
// When WS Form has finished rendering a form, it fires a wsft-rendered event on the document element
// The event is passed the form object, form_id and instance_id
$(document).on('wsft-rendered', function(e, form, form_id, instance_id) {
// Select field ID goes here
var field_id = 123;
// Initialize select2 on the select field
$('#wsft-' + instance_id + '-field-' + field_id).select2();
});
})(jQuery);
## Support
For additional questions about Select2, please visit: https://select2.org/
## Adding Forms to Your Website
URL: https://wsform.com/knowledgebase/adding-forms-to-your-website/
There are various ways to add a form to your website, such as via a WordPress Block or visual editor such as Elementor, Beaver Builder or Divi.
Before you add a form to your website, you should ensure it is published first.
There are various ways to add a form to your website.
## WordPress Block
To add a form to a post or page using the WordPress block:
Click the Add Block icon.
Search for WS Form.
Click the WS Form icon.
Select the published form you wish to insert into your content.
Select the form you want to use for that block in the settings toolbar and then click the editor's Update button.
## Visual Builders
WS Form has modules for the following popular visual builders:
Beaver Builder
Breakdance
Bricks
Divi
Elementor
Oxygen
## Shortcode
The WS Form Shortcode
## PHP Code
To add a form in your PHP code, you can use the following code:
... where 123 is equal to your form ID.
## Classic Editor (Legacy)
To add a form to a post or page using the regular WordPress visual editor (Classic Editor):
Click the Add WS Form button.
Select the published form you wish to insert into your content.
Click the Insert WS Form button.
This will automatically insert a shortcode into your content.
## Widget (Legacy)
If your theme allows widgets to be added to areas of your website, you can add the WS Form widget.
For more information about adding a widget to your website theme, click here.
## Agent Skills
URL: https://wsform.com/knowledgebase/agent-skills/
Learn how to install and use WS Form Agent Skills to give compatible AI coding agents product-specific knowledge, workflows, and best practices.
Agent Skills provide compatible AI coding agents with packaged knowledge about how to work with WS Form. They help an agent understand the product, choose the appropriate native functionality, and follow recommended workflows when building or modifying forms.
The official WS Form Agent Skills repository is available at github.com/wsform/skills.
There is currently one skill available, named ws-form.
## What Are WS Form Agent Skills?
WS Form Agent Skills are designed for AI coding agents that support the Agent Skills specification.
Compatible agents can load the ws-form skill to learn how WS Form works and how it should be used.
The skill provides knowledge and workflow guidance covering areas such as native functionality, preferred workflows, architectural decisions, common pitfalls, and best practices.
For example, the skill teaches an agent to prefer native WS Form functionality instead of unnecessarily writing custom PHP or JavaScript.
Agent Skills provide guidance only. They do not execute operations on a form or WordPress site by themselves.
## Agent Skills, Abilities, And MCP
Agent Skills, WS Form Abilities, and the WS Form MCP Server perform different roles.
FeaturePurpose
Agent SkillsProvide knowledge and workflow guidance so an AI agent understands how WS Form works and which approach it should use.
AbilitiesProvide executable capabilities for creating, editing, and inspecting forms on a WordPress site.
MCP ServerMakes WS Form capabilities available to compatible AI clients through the Model Context Protocol.
These components are designed to complement each other.
The ws-form skill helps the agent decide what it should do. Abilities and MCP provide the executable capabilities needed to make those changes when connected to a WordPress site.
For example, an agent can use the skill to determine the appropriate native WS Form approach for a task, then use MCP to inspect the existing form and make the required changes.
Agent Skills are not a replacement for Abilities or MCP.
## Prerequisites
To use the WS Form Agent Skill, you need an AI coding agent that supports the Agent Skills format.
Examples of compatible coding agents include Cursor and Claude Code. Other agents that support Agent Skills can also use the repository.
If you only want the agent to use WS Form knowledge while helping with development, you do not need to connect it to a WordPress site.
If you want the agent to inspect or modify forms on a WordPress installation, you will also need WS Form installed on that site and an appropriate Abilities or MCP connection.
See MCP Server for information about connecting an AI client to WS Form.
## Installing The WS Form Skill
The official skill can be installed from the WS Form Skills GitHub repository using the Vercel Skills CLI.
Open a terminal in the environment where you use your AI coding agent.
Run the following command:
npx skills add wsform/skills --skill ws-form
The CLI installs the ws-form skill for use by supported agents.
### List Available Skills
You can list the skills available in the repository without installing them by running:
npx skills add wsform/skills --list
There is currently one official skill:
ws-form
## What The ws-form Skill Covers
The ws-form skill gives compatible agents guidance for working with WS Form across common form-building and administration tasks.
It helps agents:
Build and modify forms using native WS Form functionality.
Select appropriate field types.
Work with sections, tabs, and layouts.
Configure Conditional Logic.
Work with calculations.
Configure actions and integrations.
Work with submissions.
Use validation correctly.
Use spam protection correctly.
Style forms using supported WS Form mechanisms.
Troubleshoot forms and submissions.
Use WS Form Abilities and MCP effectively.
Avoid unnecessary custom PHP and JavaScript.
The skill also provides WS Form-specific terminology and conventions.
For example, repeatable rows in WS Form are implemented using repeatable sections. WS Form does not use a repeater field.
It also teaches agents that email notifications are configured using Send Email actions rather than form settings, and uses terminology such as Field ID 123 when referring to a field by ID.
## Using Agent Skills With MCP And Abilities
For the most complete AI-assisted workflow, you can use the ws-form skill together with the WS Form MCP Server and WS Form Abilities.
The skill provides the knowledge. Abilities and MCP provide the executable capabilities.
A typical workflow is:
Install the ws-form skill so your agent understands WS Form workflows and best practices.
Connect your AI client to WS Form using MCP if you want it to work with forms on a WordPress site.
Ask the agent to inspect the existing form before making changes.
Use the skill's guidance to determine the appropriate native WS Form solution.
Use the available Abilities through MCP to make the required changes.
Review the changes before publishing or using the form on a live site.
You do not need to duplicate the MCP configuration when installing the skill. The skill and MCP connection are separate components.
For MCP setup, authentication, and supported capabilities, see MCP Server.
## Working Safely With AI Form Editing
When allowing an AI agent to modify forms, we recommend working on a staging site rather than a production site and reviewing all changes before publishing them.
New forms created through Abilities are created as drafts. You must publish the form before embedding it on a live page.
Form editing through AI is disabled by default. To enable it:
Go to WS Form → Settings → AI.
Enable Allow Updates.
Deleting forms or other supported resources requires Allow Deletes, which is also disabled by default.
Only enable the permissions your AI client needs.
## Using The Skill Effectively
Install the ws-form skill whenever you want a compatible AI coding agent to help with WS Form development. This gives the agent product-specific context before it starts proposing solutions.
If the agent also needs to inspect or change forms on a WordPress site, connect it to the WS Form MCP Server.
Where possible, have the agent inspect an existing form before modifying it. This gives it the context it needs to work with the existing fields, sections, actions, Conditional Logic, calculations, and other configuration.
Prefer native WS Form functionality wherever possible. Custom PHP or JavaScript should generally only be considered when the required behavior cannot be achieved using supported WS Form features.
MCP can be used with both WS Form LITE and WS Form PRO. Available field types and some capabilities differ by edition. See MCP Server for information about field-type scope.
## AI Generated Forms for WordPress
URL: https://wsform.com/knowledgebase/ai-generated-forms-for-wordpress/
In this tutorial, we’ll walk you through the process of creating an AI generated form using WS Form’s OpenAI integration.
WS Form PRO was the first WordPress form plugin to integrate with OpenAI, allowing you to generate forms for WordPress dynamically using AI by providing a simple prompt.
In this tutorial, we’ll walk you through the process of creating an AI generated form using WS Form’s OpenAI integration.
## Install the OpenAI Integration
To enable the AI generated forms feature in WS Form PRO, you first need to install and activate the OpenAI Integration in WordPress.
Download the OpenAI Integration.
Navigation to the WordPress plugins page.
Click Add New Plugin.
Click Upload.
Choose the OpenAI Integration zip file.
Follow the on-screen instructions to Install and Active the plugin.
## Obtain an API Key from OpenAI
To use the OpenAI integration, you need an API key from OpenAI.
Go to OpenAI’s website.
Sign in or create an account.
Navigate to the API Keys section.
Generate a new API key and copy it.
## Configure the OpenAI Integration in WS Form
In your WordPress dashboard, go to WS Form > Settings.
Click the OpenAI tab.
Add your OpenAI License Key obtained when you downloaded the OpenAI integration.
Paste the OpenAI API Key obtained in the previous step.
Click Save Changes.
## Create an AI Generate Form
To create a form for WordPress from a prompt:
Click Add New in the WS Form WordPress admin menu.
Click the OpenAI tab.
Click Use Template on the AI Generated Form template.
Enter a Prompt, then click Create.
## How to Write a Prompt
Prompts should be written in natural language.
### Simple Prompts
Example basic prompts are:
A dog adoption form.
A doctor appointment form.
A form for booking a rental property.
A membership form for a club.
### Adding More Context
You can prompt for WS Form to add more functionality to a form. For example:
A dog adoption form. Add help text to each field to improve accessibility.
A doctor appointment form. Add a select field that contains reasons for the appointment.
A form for booking a rental property. Add a check-in and check-out date fields.
A membership form for a club. Add a file upload field for uploading a member photo.
### Calculators
The WS Form AI Generated Form feature can also be used for creating calculators. Example prompts might be:
A mortgage calculator.
A window configurator.
## Airtable Integration
URL: https://wsform.com/knowledgebase/airtable/
The Airtable integration lets you push form submissions as new rows in a table and create new forms from Airtable in a single click on the add form page.
The Airtable integration lets you push form submissions as new rows in a table and create new forms from Airtable in a single click on the add form page.
## Installation
The Airtable plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Airtable plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Airtable tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Airtable
In order to use the integration, you need to connect it to Airtable. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Airtable tab at the top of the page.
Click Connect and follow the onscreen prompts
If you do not have a Airtable account, you can create a new account here.
## Creating a Form for Airtable
### Automatically
WS Form can create a form for any of your Airtable tables in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a Airtable form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Airtable tab at the top of the page.
Click on any of your bases.
A modal will pop-up from which you should select the table within Airtable base you want to push form submissions to.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your Airtable base does not appear, click the refresh icon in the Airtable tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is added as a row to a Airtable table form when a user saves or submits their form. Your Airtable table should, at minimum, have columns of field headings in the first row.
To add a Airtable action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to Airtable from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Airtable action settings are as follows:
#### When Should This Action Run?
You can choose to run the Airtable action when the form is saved, submitted, or both.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Update Record ID
By default, WS Form will create a new table row. If you enter a record ID you can update an individual row in your table.
To find a record ID, you can click the Expand Record icon in Airtable and then look for the record ID in the URL that begins with rec. Learn more.
WS Form variables can also be used in this field.
#### Update Method
If an update record ID has been specified, you can choose which method should be used with the record is updated. There are two options:
Update mapped fields
This option will update any fields than have been mapped. Any fields that are not mapped will be left as is.
Replace record
This option will update any fields than have been mapped. Any fields that are not mapped will be set blank.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding column in Airtable. For example you would want to map your Email field to the Email column in Airtable.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Airtable column heading.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Mapping
Custom mapping allows you to set a Airtable cell to any value you wish, including the use of WS Form variables. For example, you might want to map a lead source to a cell in your sheet.
To add a custom mapping:
Click the Add icon at the bottom right of the custom mapping section.
In the left-hand column, enter a value or a WS Form variable.
In the center column, select the corresponding Airtable table column.
In the right-hand column. select the cell format.
Repeat this process for each custom mapping you require.
Click the Save button at the bottom of the sidebar to save your changes.
#### Comments
Comments can also be added to a record when it is added or updated.
To add a comment:
Click the Add icon at the bottom right of the comments section.
Enter a comment. WS Form variables can be used here.
Click the Save button at the bottom of the sidebar to save your changes.
## Allow Users to Add Custom Terms to Posts
URL: https://wsform.com/knowledgebase/allow-users-to-add-custom-terms-to-posts/
You can allow users to add custom terms by enabling tagging on a select field.
You can use the Post Management integration to add or update posts in WordPress. When a post is added or updated you can also specify which terms a post is assigned to. It is also possible to add additional terms to a taxonomy if they don't exist by using a select field that has the Enable Tagging setting checked.
By enabling tagging, any term not found in the options of a select field will be added as a new option and submitted with the form. If that select field is then mapped to a taxonomy, the new term will be added.
Let's create a select field and configure it to enable tagging:
Add a select field to your form.
Edit the select field and In the Basic tab and check the following settings:
Multiple
Select2
Enable Tagging
Click on the Options tab and configure it as follows:
Data Source: Terms
Filter By Taxonony: Choose the taxonomy you want to choose terms from and add new terms to
Click Get Data and ensure the following settings are present under Column Mapping:
Labels: Name
Values: ID
Click Save & Close.
Next we need to configure the Post Management action so that the select field is mapped to the taxonomy you chose in step 3 above. You should add a Post Management action if you don't already have one.
Click the Actions icon at the top of the page. The Actions sidebar will open.
Edit your Post Management action.
Under Term Mapping choose your select field in the left column and the taxonomy you chose in step 3 above in the right column.
Click Save & Close.
You form will now add a term if the term chosen does not already exist.
## Amazon S3 Integration
URL: https://wsform.com/knowledgebase/amazon-s3/
The Amazon S3 integration allows you to configure file fields to upload to a connected Amazon S3 account.
The Amazon S3 integration allows you to configure file fields to upload to a connected Amazon S3 account. You can choose which path to upload the files to and can easily access the files from the submissions page.
The integration creates a new file handler to WS Form called Amazon S3.
## Installation
The Amazon S3 integration is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Amazon S3 integration, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Amazon S3 tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Amazon S3
In order to use the integration, you need to connect it to Amazon S3.
First you will need to create IAM user credentials. To do this:
Open the IAM console in your Amazon account.
Click Users from the side menu.
Click Create User.
Enter a User Name.
Ensure the user has read and write permissions for the S3 service. You may wish to create a new policy specifically for this purpose. Learn more.
Edit the newly created user, then click the Security credentials tab.
Under Access keys click Create access key.
Choose Third-party service as the user case.
Click Create access key.
Copy the provided access key and secret key and store it somewhere securely.
Next you will need to enter the access key and secret key in WS Form settings
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Amazon S3 tab at the top of the page.
Enter the access key and secret key.
Click Save.
Alternatively you can add the keys to your wp-config.php file as follows:
define('WSF_AMAZON_S3_ACCESS_KEY', 'PASTE YOUR ACCESS KEY HERE');
define('WSF_AMAZON_S3_SECRET_KEY', 'PASTE YOUR SECRET KEY HERE');
## How to Configure File Fields for Amazon S3
To configure a file field to push its uploads to Amazon S3:
Click the settings icon on the file field.
In the basic tab change the File Handler setting to Amazon S3.
Choose the region of your bucket, e.g. us-west-2
Enter the name of the bucket you wish to upload files to, e.g. ws-form. This must match the name of an existing bucket. Learn more.
Optionally, change the upload path.
The upload path defaults to:
WS Form/#form_id/#submit_hash/#field_id/
You can use WS Form variables in this path to make it dynamic. The default value ensures each form, submission and field on the form is given its own folder in Amazon S3 to minimize the chance of files being overwritten. Bear in mind that each file field can be configured with the Multiple setting to be able to upload more than one file.
Some variables you might find helpful for this path are:
Variable
Description
#form_id
Returns the ID of the form.
#submit_hash
A unique identifier for the submission.
#field_id
The ID of the file field.
## Accessing Amazon S3 Uploads
To access the files that are uploaded to Amazon S3, you can click on the file upload icons in submissions as you would any other file upload. The files are, of course, also accessible from within your Amazon S3 bucket.
## Angie
URL: https://wsform.com/knowledgebase/angie/
Learn how to use Angie, Elementor’s agentic AI, to create and manage WS Form forms in WordPress using natural language commands.
This article applies to WS Form version 1.10.60 and above. Features described here may change in future updates.
WS Form integrates with Angie, Elementor’s agentic AI assistant for WordPress. This integration allows Angie to create and modify WS Form forms using natural language. For example, you can ask Angie to create a contact form, add a field, or translate form labels.
Angie connects to WS Form through the Model Context Protocol (MCP), which provides a secure way for AI agents to communicate with WordPress plugins.
## What is Agentic AI?
Agentic AI can perform actions rather than just generate text. It can analyze a situation, plan steps, and complete tasks automatically. In WordPress, that could include creating a page, installing a plugin, or building a form without manual setup.
## What is Angie?
Angie is Elementor’s agentic AI plugin. It connects your site to your Elementor account and provides AI-powered automation. When used with WS Form, Angie can create and manage forms directly in WordPress.
## Getting Started
### Install and Connect Angie
In your WordPress admin, go to Plugins > Add New.
Search for Angie.
Click Install Now, then Activate.
After activation, click Sign in to Angie to connect your site to your Elementor account. You must be signed in for Angie to access AI-powered services. Angie includes free daily credits. For extended or commercial use, select an Elementor AI plan.
Once Angie is connected, it will automatically detect WS Form.
### Configure WS Form
Warning: AI-generated form modifications are experimental. While Angie provides powerful automation capabilities, AI technology can produce unexpected or incorrect results. We strongly recommend reviewing all AI-generated form changes before publishing and never using AI-driven edits directly on production forms. Always test modifications in a staging environment first. WS Form and its authors assume no responsibility for data loss, form errors, or other issues arising from AI-assisted actions.
AI editing is disabled by default for security reasons. If you would like to experiment with making form edits with AI:
Go to WS Form > Settings > AI.
Under Abilities API, check Allow Updates.
Click Save Changes.
## Using Angie with WS Form
After setup, you can communicate with Angie using plain language prompts. Angie will interpret your request and perform the task through WS Form’s API and schema.
Here are some example actions you can request:
## Tips
Start a new, fresh chat for each form you work with.
If you create a new form, you don't need to specify the form ID in subsequent prompts.
If you are modifying an existing form, identify it initially in your prompt using the form ID
e.g. Publish form ID 123.
You can insert fields before another field by identifying it by ID or label
e.g. Add a select field before the submit button for preferred method of communication.
## Available Field Types
Angie can create forms using both WS Form LITE and WS Form PRO field types.
LITE field types:
Checkbox
Email
Note
Number
Phone
Radio
Select
Text
Text Area
Text Editor
URL
PRO-only field types:
Color
Date/Time
File Upload
Hidden
Next Tab Button
Previous Tab Button
Price
Rating
Validate
Supported WS Form features:
Tabs (multi-step forms)
Calculations (for example, #calc(#field(1) + #field(2)))
Field settings such as Required, Placeholder, Default Value, Help, and Invalid Feedback
Select, Checkbox, and Radio option population
Responsive field sizing
## Current Limitations
Updates to select, checkbox and radio data grid rows are limited a 2 column format of values and labels.
Tabs and sections can only be added when initially creating a new form.
Conditional logic cannot be added.
We hope to add additional functionality as AI technology evolves and becomes more reliable.
## Security
All MCP abilities exposed to Angie are protected by WS Form’s capability system. Permission callbacks ensure only authorized users can make changes. Refer to User Capabilities for more information.
## Disabling WS Form in Angie
WS Form automatically detects when Angie is installed. To disable the integration:
Go to WS Form > Settings > AI.
Under Angie, uncheck Enabled.
Click Save Changes.
## Assign a Form to a WooCommerce Product
URL: https://wsform.com/knowledgebase/how-to-assign-a-form-to-a-woocommerce-product/
WS Form PRO can be used to customized WooCommerce products.
WS Form PRO can be used to customized WooCommerce products.
This brief tutorial explains how to assign a form to a product.
We also recommend that you read the full documentation for the WooCommerce extension to understand all of the available configuration options.
## Prerequisites
The following plugins are required to be installed and activated on your WordPress website.
WooCommerce
WS Form PRO
WS Form PRO Product Integrations (WooCommerce Extension)*
* Sold Separately
## Assigning a Form to a WooCommerce Product
To assign a new or existing form to a WooCommerce product:
Create or edit a WooCommerce product
Enter a regular price (You can enter 0 if you want WS Form to control the price of the product using e-commerce fields)
Click on the WS Form tab in the Product data section.
Choose a template or click to choose an existing published form you have already created.
Once the form has been created or selected, a preview of your form will be shown along with options to edit or remove the form.
To test your product customization, click Publish (or Update for an existing product) to save your changes then click the product URL at the top of the page.
## Template Considerations
Your WooCommerce product template should, at minimum, include an Add to Cart button.
## Learn More
The full documentation for the WooCommerce extension can be found here.
## Authorize Accept Gets Stuck on Loading
URL: https://wsform.com/knowledgebase/authorize-accept-gets-stuck-on-loading/
If the Authorize Accept gets stuck on loading, it may because your hosting is not configured with a required Content-Security-Policy directive.
If the Authorize Accept gets stuck on loading, it may because your hosting is not configured with a required Content-Security-Policy directive. You can add the following code to your .htaccess file to fix this issue:
Header set Content-Security-Policy "frame-ancestors self *.YOUR_WEBSITE.com *.authorize.net"
Replace .YOUR_WEBSITE.com with your domain name.
## Authorize.Net Accept Integration
URL: https://wsform.com/knowledgebase/auth_checkout/
The Authorize.Net integration allows you to accept credit card payments from your forms.
Note: You must serve the page containing the payment form over HTTPS. In short, the address of the page containing Authorize.Net Accept must start with https:// rather than just http://.
The Authorize.Net integration allows you to accept credit card payments from your forms. You can either charge a fixed amount using the button in isolation, or you can use the WS Form E-Commerce fields to produce more advanced cart options.
The Authorize.Net button uses the latest, client-side payment process offered by Authorize.Net called Accept.
## Installation
The WS Form Authorize.Net integration is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Authorize.Net integration, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Authorize.Net tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Configuring Authorize.Net
In order to use the Authorize.Net button, you first need to enter the following information for your sandbox and/or production accounts:
API Login ID
API Transaction Key
Client Key
To find these credentials, log in to your sandbox or production account and go to: Authorize.Net under Account > Settings > Security Settings > General Security Settings
Your API Login ID and Transaction Key can be found under API Credentials and Keys. Your Client Key can be found (or created) under Manage Public Client Key.
If you do not yet have an Authorize.Net sandbox or production account, you can create them here:
Create Sandbox Account (We recommend you read the Authorize.Net Testing Guide)
To enter your credentials and keys:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Authorize.Net tab at the top of the page.
Choose Sandbox or Production under Environment, depending on the environment you want to use.
Enter your sandbox and production credentials and keys.
Click the Save button.
Once configured, the Authorize.Net button will appear under the E-Commerce section of the Build when editing a form.
You can enter sandbox and/or production credentials and keys; having both sets is not necessary.
## Adding The Authorize.Net Button
To learn how to add, edit, clone, move, resize, offset, or delete an Authorize.Net button field, please click here.
When editing a custom button field, the field settings sidebar will appear. This contains the following tabs:
Basic
Advanced
You can edit any of the settings in each of these tabs and then click the Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This label is used to identify the custom button in the WS Form form builder.
### Transaction
#### Type
You can create a one-time charge or initiate a subscription (ARB). The available options are:
One-Time
Subscription
By Field
The By Field setting allows you to specify the type by a field. For example you could use a Radio field to determine the type of transaction. The type field should return onetime or subscription as a value.
#### Amount To Charge
By default this field is blank, and the Authorize.Net button will charge the amount calculated by the e-commerce fields on your form (the same as entering #ecommerce_cart_total). For example, you might have a single price field for making a donation or a more elaborate form with prices, quantities, and subtotals.
You can also enter a fixed amount into this field.
WS Form variables can be entered into this field.
#### Description
Enter the description of the transaction in this field. For example: Payment To My Blog.
WS Form variables can be entered into this field.
### Subscription
These settings are only shown if the transaction Type is set to Subscription.
#### Name
Enter the name of the subscription for reference.
#### Interval Length
Enter the interval length for the subscription. For a unit of days, use an integer between 7 and 365, inclusive. For a unit of months, use an integer between 1 and 12, inclusive.
#### Interval Unit
Choose the interval unit. Options are:
Month(s)
Days
By Field
#### Total Occurencies
Enter how many times the subscription will occur. Enter 9999 for infinite.
#### Start Date
Enter a start date for the payment schedule.
### Customer
#### ID
Enter a unique customer ID used to represent the customer associated with the transaction. WS Form variables can be used in this field, for example:
#field(1)-#field(2)
#### Email
Select a email field on your form to associate with the transaction. This field is optional.
#### Phone
Select a phone field on your form to associate with the transaction. This field is optional.
#### Type
Select Individual or Business to determine how transactions should be classified.
### Appearance
#### Billing Address Option
Specify whether the name and postal code fields should be shown on the form and whether they are required to be filled in.
#### Header Text
This is the text that is displayed on the header of the payment form. The default is to not display any text.
#### Button Label
This is the text that is displayed on the button. The default is "Pay".
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how the Authorize.Net button is rendered.
### Billing
#### Billing Address Mapping
This field is optional. Billing Address Mapping tells WS Form which of your form fields relate to the corresponding billing fields in Authorize.Net.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Authorize.Net field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Shipping Address Mapping
This field is optional. Shipping Address Mapping tells WS Form which of your form fields relate to the corresponding shipping fields in Authorize.Net.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Authorize.Net field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
### Transaction
#### Zero Amount
You can configure how WS Form should handle zero amounts for Authorize.Net buttons. In some cases you may wish to show an error message (e.g., a donation amount is set to zero). In other cases you may wish to still submit the form (e.g., if something is determined to be free). Select the appropriate action from the pull-down list.
#### Zero Amount Message
If you opt to show an error message, enter the error message you would like to be shown here.
#### Error Messages
WS Form PRO processes any error messages as standard WS Form messages. The error message settings match those of the Show Message action. You can configure these options to change how the error messages are displayed to users.
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Auto Delete Submissions
URL: https://wsform.com/knowledgebase/auto-delete-submissions/
Automatically move saved submissions to trash or permanently delete them after a set number of days using the Save Submission action.
WS Form can automatically remove saved submissions after a specified number of days. You can choose to move expired submissions to trash, where they can be restored, or permanently delete them.
This is useful when you only need to retain submission data for a limited period, such as when implementing a data retention policy or GDPR-style cleanup.
## Requirements
The Save Submission action must be present and enabled on the form.
If the Save Submission action is disabled or removed, submissions will not be saved and the auto delete feature cannot be applied to new submissions.
## How to Enable Auto Delete Submissions
Edit the form in WS Form.
Open the Actions sidebar.
Select the Save Submission action.
Find Auto Delete Submissions.
Choose Move to Trash or Permanently Delete.
Enter the retention period in Delete After (Days).
Save or publish the form.
The default value for Delete After (Days) is 90 days. The minimum value is 1 day.
## Auto Delete Submissions Options
### Off
Select Off to disable auto deletion for new submissions. New submissions will not be given an expiry date.
Turning this setting off does not immediately remove expiry dates that have already been assigned to existing submissions.
### Move to Trash
Select Move to Trash to move expired submissions to trash after the number of days specified in Delete After (Days).
This is the safer option if you may need to recover a submission later. Trashed submissions can be restored from the submissions Trash view.
### Permanently Delete
Select Permanently Delete to permanently remove expired submissions after the number of days specified in Delete After (Days).
Permanent deletion cannot be undone. Related submission data, such as notes, meta data, and uploaded files, is also removed.
This option can be useful when implementing a retention policy or GDPR-style data cleanup where submission data should not be retained beyond a specified period. Choose it carefully because deleted submissions cannot be restored.
### Delete After (Days)
Delete After (Days) determines how many days a submission is retained before it is moved to trash or permanently deleted.
The default is 90 days, and the minimum is 1 day.
For example, setting this to 30 means a new submission will be assigned an expiry date 30 days after it is created.
## What Happens After Setup?
When a submission is saved, WS Form stores an expiry date based on the current Delete After (Days) value.
WS Form then uses WordPress scheduled events, known as WP-Cron, to check for expired submissions. The scheduled check runs hourly.
Processing may not happen at the exact moment a submission expires. With the default WordPress WP-Cron system, scheduled events are triggered by visits to the site. On a low-traffic site, an expired submission may therefore remain for longer before it is processed.
Existing submissions that have already been assigned an expiry date keep that date if you later change the Delete After (Days) setting.
When an expired submission is processed, WS Form uses the form's current Auto Delete Submissions setting to determine how it should be handled.
## Restoring Trashed Submissions
If you select Move to Trash, expired submissions are moved to the submissions Trash view. They can be restored if you need them again.
If you select Permanently Delete, the submission and its related data are removed permanently. There is no restore option within WS Form.
If you are unsure whether submission data might be needed later, Move to Trash provides a recoverable option.
## Troubleshooting
### Submissions Are Not Being Automatically Deleted or Moved to Trash
Check the following:
The Save Submission action exists on the form and is not disabled.
Auto Delete Submissions is set to Move to Trash or Permanently Delete, not Off.
Delete After (Days) is set.
Enough days have passed since the submission was created.
You have allowed time for the scheduled check to run.
WS Form checks for expired submissions about once per hour. Processing is not instant.
WordPress WP-Cron is triggered by site visits by default. A site receiving little or no traffic may experience delays.
### WP-Cron Is Not Running
WordPress uses WP-Cron to run scheduled tasks. Unlike a traditional server cron service, the default WP-Cron system is normally triggered when someone visits the site.
On sites with little or no traffic, scheduled tasks may therefore run late.
You can use a WP-Cron management plugin such as WP Crontrol to check whether the following scheduled event is present:
ws_form_wp_cron_action_database
If WP-Cron has been disabled, check wp-config.php for:
define( 'DISABLE_WP_CRON', true );
When DISABLE_WP_CRON is enabled, the built-in WP-Cron system will not be triggered by site visits. This configuration usually requires a server cron job that requests wp-cron.php on a regular schedule.
A server-level cron job is also a more reliable option for sites where scheduled tasks need to run consistently.
Caching and CDN configurations can sometimes prevent WP-Cron from being triggered if requests do not reach WordPress. If scheduled events are consistently delayed or not running, check your caching, CDN, and hosting configuration.
Your hosting provider can usually help confirm whether WP-Cron is running correctly and configure a real server cron if required.
### Submissions Are Being Trashed Instead of Permanently Deleted
If submissions are being moved to trash when you expected them to be permanently deleted, or permanently deleted when you expected them to be moved to trash, check the form's current setting.
WS Form uses the form's current Auto Delete Submissions setting when the scheduled task processes an expired submission.
Edit the form, open the Save Submission action, and check the current Auto Delete Submissions setting. Make sure you save or publish the form after making changes.
### I Turned Auto Delete Off but Older Submissions Still Disappeared
Turning Auto Delete Submissions to Off prevents new submissions from being assigned an expiry date.
It does not immediately clear expiry dates that were previously assigned to existing submissions. An older submission that already has an expiry date may therefore still be processed when the scheduled task runs.
## Frequently Asked Questions
### What Is the Default Retention Period?
The default Delete After (Days) value is 90 days.
### What Is the Minimum Retention Period?
The minimum value is 1 day.
### Can I Restore an Automatically Deleted Submission?
If Move to Trash was selected, you can restore the submission from the submissions Trash view.
If Permanently Delete was selected, the submission cannot be restored.
### Does Changing Delete After (Days) Update Existing Expiry Dates?
No. Submissions that have already been assigned an expiry date keep that date. The new value is used when assigning expiry dates to new submissions.
### Does Auto Delete Run at the Exact Time a Submission Expires?
No. WS Form checks for expired submissions using an hourly WordPress scheduled event. The exact processing time can vary, particularly when the default visit-triggered WP-Cron system is used on a low-traffic site.
### Should I Use Move to Trash or Permanently Delete?
Use Move to Trash if you want the ability to recover expired submissions.
Use Permanently Delete when the data should be removed completely after your chosen retention period. This can be useful for retention or GDPR-style cleanup policies, but permanent deletion cannot be undone.
## Automatically Login Users After Registration
URL: https://wsform.com/knowledgebase/automatically-login-users-after-registration/
Using the User Management integration, it is possible to automatically login a user after they have been registered.
Using the User Management integration, it is possible to automatically login a user after they have been registered. This is done by simply adding an additional User Management action configured to use the Login method.
To do this:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open.
Click the Add icon to add a new action.
Select User Management from the Action pulldown. A series of settings will appear.
Choose Login as the Method.
Map the same Username and Password field as you used for the Register action to the Login action.
Click Save
Now once the register action completes successfully, the user will be automatically logged into the website.
## AWeber Integration
URL: https://wsform.com/knowledgebase/aweber/
The AWeber integration lets you add, update, and delete subscribers, pull contact data, and create new forms from your lists in a single click.
The AWeber integration lets you add, update, and delete subscribers using an action, pull contact data using the WS Form autocomplete feature, and create new forms from your lists in a single click on the add form page.
More information on AWeber.com
## Installation
The AWeber plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the AWeber plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the AWeber tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to AWeber
In order to use the integration, you need to connect it to AWeber. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the AWeber tab at the top of the page.
Click Connect and follow the onscreen prompts.
If you do not have a AWeber account, you can create a new account here.
## Creating a Form for AWeber
### Automatically
WS Form can create a form for any of your AWeber lists in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create an AWeber form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the AWeber tab at the top of the page.
Click on any of your AWeber lists to create a form.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the AWeber tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to AWeber when a user saves or submits their form.
To add an AWeber action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a AWeber List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The AWeber action settings are as follows:
#### When Should This Action Run?
You can choose to run the AWeber action when the form is saved, submitted, or both.
#### AWeber List
Choose the AWeber List you would like contacts to be added to. If you have created a new list since viewing this screen, you can click the refresh icon to retrieve the new list.
#### Status
Select the subscriber status you would like to process submissions as. Choose from:
Subscribe
Unsubscribe
Delete
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked, opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in AWeber. For example, you would want to map your Email field to the Email field in AWeber.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding AWeber field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tag mapping tells WS Form which of your form fields relate to tags in AWeber.
To map a field:
Click the Add icon at the bottom right of the interest mapping section.
Select your form field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Interest mapped fields need to be a choice field, such as Select, Checkbox, or Radio fields.
If you use the automatic method above, WS Form PRO will automatically build interest mapping options for you.
## Populate Forms Using AWeber
As well as pushing form data with this integration, you can also retrieve contact data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a contact in AWeber.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose AWeber from the Action To Populate From pull-down menu.
Select the list you wish to populate data from in the List To Populate From pull-down menu.
Map the AWeber fields to your form fields.
Click Save at the bottom.
Note that if you created your form using a AWeber template, the field mappings will automatically be created for you. You can also map tags.
## Beaver Builder Module
URL: https://wsform.com/knowledgebase/beaver-builder-module/
If you use Beaver Builder for your WordPress website, you can use the WS Form PRO module to easily add forms to your website.
If you use Beaver Builder for your WordPress website, you can use the WS Form PRO module to easily add forms to your website. The module is ready to use a soon as you have installed WS Form PRO, no additional plugins are required.
To use the module, simple click + and select the WS Form module when editing a page in Beaver Builder.
Then select your form from the pulldown list and that’s it!
For more information about Beaver Builder, click here. Beaver Builder is a plugin developed by Fastline Media.
The Beaver Builder module was introduced in version 1.4.59 of WS Form PRO.
## Bento Integration
URL: https://wsform.com/knowledgebase/bento/
The Bento integration lets you create new people using an action and create new forms in a single click on the add form page.
The Bento integration lets you create new people using an action and create new forms in a single click on the add form page.
## Installation
The Bento plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Bento plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Bento tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Bento
In order to use the integration, you need to connect it to Bento. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Bento tab at the top of the page.
Enter your Site ID, Publishable and Secret Key.
If you do not have a Bento account, you can create a new account here.
## Creating a Form for Bento
### Automatically
WS Form can create a form for any of our Bento lists in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a Bento form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Bento tab at the top of the page.
Click on the Person template to create a form.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
Note that Bento does not currently expose field types in their API, so until then all fields added will be text fields.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to Bento when a user saves or submits their form.
To add a Bento action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a Bento List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Bento action settings are as follows:
#### When Should This Action Run?
You can choose to run the Bento action when the form is saved, submitted, or both.
#### Bento List
At present this will always be Person.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Status
Choose 'Subscribed', 'Unsubscribed' or 'None'. This setting is sends a 'subscribe' or 'unsubscribe' command to Bento when the subscribers is added.
#### Event Types
Events can be used to trigger flows in Bento. You can add as many event types to trigger as you wish. By default, the action is configured to fire a $subscribe event type.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding custom fields in Bento. For example you would want to map your Email field to the Email field in Bento.
To map a field:
Click the Add icon at the bottom right of the Field Mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Bento field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Field Mapping
Custom mapping allows you to set a Bento field to any value you wish, including the use of WS Form variables.
To add a custom mapping:
Click the Add icon at the bottom right of the Custom Field Mapping section.
In the left-hand column, enter a value or a WS Form variable.
In the right-hand column, select the corresponding Bento field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tag mapping tells WS Form which of your form fields relate to the tags Bento.
To map a field:
Click the Add icon at the bottom right of the Tag Mapping section.
Select your form field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Tag mapped fields need to be a choice field, such as Select, Checkbox, or Radio fields. The value of the submitted value should be the tag ID.
If you use the automatic method above, WS Form PRO will automatically build tag mapping options for you.
#### Custom Tag Mapping
As well as mapping WS Form fields to subscriber tags, you can also add tags by name using this setting. If a tag doesn't already exist in Bento it will be automatically created before being assigned to the subscriber.
To add a tag:
Click the Add icon at the bottom right of the Custom Tag Mapping section.
Enter the tag name. WS Form variables can be used in this setting.
Repeat this process for each tag you wish to assign to the subscriber.
Click the Save button at the bottom of the sidebar to save your changes.
## Bootstrap Framework
URL: https://wsform.com/knowledgebase/building-wordpress-forms-for-bootstrap/
WS Form can output HTML markup that is native to the Bootstrap framework
Bootstrap is a popular, free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS- and (optionally) JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components. Many popular WordPress themes use Bootstrap.
If your WordPress theme uses the Bootstrap framework, WS Form can output forms that contain HTML markup that is native to that framework. This means that WS Form physically changes the HTML so that your form dovetails seamlessly into your theme.
In addition to output native markup, WS Form will also change the breakpoint selector to match the available breakpoints in Bootstrap. This feature is only available in WS Form PRO.
All of the available WS Form field types are fully compatible with Bootstrap.
## Demo
To view a demo of a WS Form outputting a form for the Bootstrap framework, click here.
## Supported Versions
WS Form supports the following versions of Bootstrap:
Bootstrap 5+
Bootstrap 4.1-4.5.x
Bootstrap 4.0
Bootstrap 3.x
## Configuring WS Form to Use Bootstrap Framework
### Automatic
When you first install WS Form, it will scan your theme files and if Bootstrap is detected it will automatically output your form using Bootstrap markup.
### Manual
To manually select Bootstrap as your framework:
Click on WS Form in the WordPress administration menu.
Click on 'Settings'.
Click on the Advanced tab.
Select Bootstrap under the Framework dropdown.
Click Save.
## Sample Output
An example of the HTML output for a tel field is shown below (includes some additional markup required by WS Form).
Please provide a valid phone number.
## Breakdance Website Builder - Form Element
URL: https://wsform.com/knowledgebase/breakdance-website-builder-form-element/
Adding a form to a Breakdance Website Builder layout can be done easily by using the WS Form element.
Adding a form to a Breakdance Website Builder (breakdance.com) layout can be done easily by using the WS Form element.
In Breakdance, click Add.
Open the Forms category and click the WS Form element to add it to your layout.
Choose a form from the dropdown, or you can enter the form ID below the dropdown if no form is selected. Dynamic data is also supported for this setting.
The form will then be displayed in your template.
You can also optionally enter an ID for the form DOM element too.
## Breakpoint Queries
URL: https://wsform.com/knowledgebase/breakpoint-queries/
By default, responsive columns in WS Form are based on the width of the browser window. This works well for most forms, but it can cause layouts to appear too…
By default, responsive columns in WS Form are based on the width of the browser window. This works well for most forms, but it can cause layouts to appear too wide when the same form is used in a narrow container such as a sidebar, modal, popup, footer, or card.
Breakpoint Queries let you choose whether responsive columns are based on the browser width or the width of the form itself. This makes it easy to reuse the same form in different locations without creating separate versions or writing custom CSS.
This setting only affects the WS Form responsive column grid. It does not change the layout of your theme or other page content.
## Before You Start
Your front end framework must be set to WS Form (WS Form > Settings > Appearance / Markup > Framework).
Layout CSS must be enabled. This is enabled by default when using the WS Form framework.
This setting is not available when using Bootstrap or Foundation because those frameworks provide their own responsive grid system.
## How to Enable Breakpoint Queries
Edit your form in the Layout Editor.
Click Settings in the top toolbar.
Open the Styling tab.
Locate the Breakpoint Queries setting.
Select either Browser Width or Form Width.
Click Save or Save & Close, then publish your form if required.
## Breakpoint Query Options
OptionDescription
Browser WidthResponsive columns are based on the width of the browser window. This is the default behavior.
Form WidthResponsive columns are based on the width of the form itself. Ideal for forms displayed in sidebars, popups, modals, cards, footers, and other narrow containers.
## Breakpoint Sizes
Changing the Breakpoint Queries setting does not change the breakpoint sizes. Only what is measured changes.
Extra Small: Up to 575px
Small: 576px and above
Medium: 768px and above
Large: 992px and above
Extra Large: 1200px and above
## When to Use Form Width
Form Width is recommended when your form is displayed inside a container that is significantly narrower than the browser window.
Sidebars
Modals and popups
Cards and panels
Footer areas
The same form is reused in multiple locations with different widths
Choose Browser Width if your forms are typically displayed full width or you want to retain the default responsive behavior.
## Example
Imagine you have a two-column contact form that is used on a full width contact page and inside a 320px sidebar.
With Browser Width, the sidebar version may remain in two columns because the browser window is still wide.
With Form Width, the sidebar version automatically stacks into a single column because the form itself is narrow.
## Browser Support
Form Width uses CSS Container Queries, which are supported by current versions of Chrome, Edge, Firefox, and Safari.
If you need to support very old browsers that do not support Container Queries, use the Browser Width option instead.
## Troubleshooting
### I Can't See the Breakpoint Queries Setting
Breakpoint Queries are only available when using the WS Form framework. If you are using Bootstrap or Foundation, this setting will not appear because those frameworks manage responsive layouts themselves.
### Nothing Changed After Enabling Form Width
Save and publish your form after changing the setting.
If Compile CSS is enabled under WS Form > Settings, save the global settings to rebuild the layout CSS.
Confirm the form is actually narrower than the breakpoint you expect.
### Only Part of My Form Changed
Breakpoint Queries only control the WS Form responsive column grid. Third party widgets, custom CSS, and theme styles continue to use their own responsive behavior.
## For Developers
When Form Width is enabled, WS Form adds the wsf-form-container-query class to the form and uses CSS Container Queries to control responsive columns. This makes it easy to target container based layouts with your own custom CSS if required.
## Brevo Integration
URL: https://wsform.com/knowledgebase/brevo/
This integration lets you subscribe and unsubscribe Brevo contacts using a WordPress form created in WS Form.
This integration lets you subscribe and unsubscribe Brevo contacts using a WordPress form created in WS Form. You can create new forms from your Brevo lists in a single click from the add form page. You can also pre-populate forms with data from Brevo.
Brevo was formerly Sendinblue.
## Installation
The Brevo plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Brevo plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Brevo tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Brevo
In order to use the integration, you need to connect it to Brevo. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Brevo tab at the top of the page.
Enter your API key from the Brevo SMTP and API page. Ensure you are using a version 3 key.
Click Save.
If you do not have a Brevo account, you can create a new account here.
## Creating a Form for Brevo
### Automatically
WS Form can create a form for any of your Brevo objects in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a Brevo form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Brevo tab at the top of the page.
Click on a list.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the Brevo tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to a Brevo object when a user saves or submits their form.
To add a Brevo action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to Brevo from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Brevo action settings are as follows:
#### When Should This Action Run?
You can choose to run the Brevo action when the form is saved, submitted, or both.
#### Brevo List
Select which list the contact should be subscribed to.
#### Status
You can choose to subscribe or unsubscribe a contact. For GDPR compliance you can also choose the Subscribe with Double Opt-In status. This method requires you to set-up a double opt-in template in Brevo.
If you are subscribing a contact, the email address or SMS attribute must be mapped and completed.
If you are unsubscribing a contact, the email address must be mapped and completed.
#### Enable Update (Subscribe Status Only)
If checked, the contact will be updated if a matching contact is already found.
#### Double Opt-In Template ID (Subscribe with Double Opt-In Status Only)
If you have chosen the Subscribe with Double Opt-In status, you will need to specify the template ID of a double opt-in template.
The template ID is a number. For example, in the screenshot below, the template ID would be: 1
##### How to Create a Double Opt-In Email Template in Brevo
To learn how to create a double opt-in email template please refer to the Brevo article:
Create a custom double opt-in (DOI) email template
The optional step in this article of adding an optin tag to your email template is mandatory. You must add an optin tag to the email in order for Brevo to be able to identify it as a double opt-in template.
You can ignore the last step in this article, ("Link your custom double opt-in confirmation template to your sign-up form") as the double opt-in email will be triggered via their API from WS Form.
#### Double Opt-In Redirect URL (Subscribe with Double Opt-In Status Only)
If you have chosen the Subscribe with Double Opt-In status, you will need to specify the redirect URL that a user will be sent to after they have clicked the double opt-in link. This would typically be an absolute URL to a page on your website.
For example: https://mywebsite.com/double-opt-in-thank-you/
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
When the users opts-in, WS Form will set the custom attribute OPT_IN to True.
#### Field Mapping
Field mapping tells WS Form which of your form fields relates to the corresponding attributes in Brevo. For example you would want to map your email form field to the email attribute in Brevo. WS Form supports mapping to normal, category and transactional attributes.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Brevo attribute.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
If you are mapping a phone field, we recommend enabling the International Phone Input setting and setting the Return Format setting to E164. Otherwise the format should be: +15551234567
#### Custom Mapping
Custom mapping allows you to set a Brevo field to any value you wish, including the use of WS Form variables. For example you might want to map a lead source to a source attribute in Brevo, or perhaps set a transaction attribute ID to the #submit_id variable.
To add a custom mapping:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, enter a value or a WS Form variable.
In the right-hand column, select the corresponding Brevo attribute.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
## Populate Forms Using Brevo
As well as pushing form data with this integration, you can also retrieve contact data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a contact in Brevo.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose Brevo from the Action To Populate From pull-down menu.
Select the list you wish to populate data from in the List To Populate From pull-down menu.
Map the Brevo attribute to your form fields.
Click Save at the bottom.
Note that if you created your form using a Brevo template the field mappings will automatically be created for you.
## Bricks Visual Site Builder - Form Element
URL: https://wsform.com/knowledgebase/bricks-visual-site-builder-form-element/
Adding a form to a Bricks Visual Site Builder template can be done easily by using the WS Form element.
Adding a form to a Bricks Visual Site Builder (bricksbuilder.io) template can be done easily by using the WS Form element.
In Bricks open the WS Form PRO section and click the Form element to add it to your layout.
Choose a form from the dropdown, or you can enter the form ID below the dropdown if no form is selected. Dynamic values are supported in this setting.
The form will then be displayed in your template.
You can also optionally enter an ID for the form DOM element too.
## Build a WordPress Form with the ACPT Plugin
URL: https://wsform.com/knowledgebase/build-a-wordpress-form-with-the-acpt-plugin/
In this tutorial, we’ll show you how to integrate WS Form PRO with the ACPT WordPress plugin.
ACPT is a plugin that allows you to create custom fields for any post type. WS Form can be fully integrated with custom fields created using ACPT.
In this tutorial, we’ll show you how to integrate WS Form PRO with the ACPT WordPress plugin. You'll learn how to create a form that can create and update a WordPress post that contains custom fields configured in ACPT.
https://www.youtube.com/watch?v=MdwlVaocdLk
When used with the WS Form Post Management Integration you can:
Automatically create forms that contain the fields you have made in ACPT for any post type.
Automatically populate select, checkbox, radio and button groups with the choices you have configured in ACPT.
Push form submissions as new posts that are fully compatible with ACPT.
Pre-populate forms using post data that includes ACPT fields.
ACPT repeater fields are fully supported when creating, populating and submitting forms.
## Prerequisites
For this tutorial you will need the following plugins:
ACPT
WS Form PRO
Post Management Integration (Also compatible with the User Management Integration)
## Create Fields in ACPT
First, we’re going to create some custom fields that will appear when we edit a post in WordPress. We can choose any of the field types that ACPT offers, including groups and repeaters.
The following ACPT field types are supported in WS Form:
Basic
Checkbox
Editor
HTML
Number
Radio
Range
Select
Select (Multiple)
Text
Textarea
Toggle
Specialized
Address
Color
Country
Email
Date
Date / Time
Icon
Phone
Rating
Time
URL
Unit of Measure
Currency
Weight
Length
Media
Embed
File
Gallery
Image
Video
Grouped
Repeater
Relations
Post
Post (Multiple)
Relationship
Term
Term (Multiple)
User
User (Multiple)
If you add a Repeater field in ACPT, that field will be converted to a repeatable section in WS Form. When that form is submitted the repeated rows will be populated in the post at rows in ACPT. WS Form also supports the above field types in repeatable sections.
## Create a Form
Next, we’re going to create a form in WS Form. To do this, we click on Add New in the WS Form menu.
Because we have the Post Management integration installed, you’ll see that we have a Post Management tab. If we click on that tab it will show us templates for each post type registered in WordPress. Note that the Post template has an ACPT icon on it indicating that custom fields have been found for that post type. We’re going to choose the Post template.
After you click on a template, WS Form automatically creates a form for you. WS Form will:
Add basic post fields (title, excerpt and featured image).
Add ACPT fields, fully configured according to your ACPT settings.
Add taxonomy term selectors (e.g. Category and Tags on posts).
At the top of the form is a section that includes standard fields we would expect to see for a post, such as the title, content an excerpt. In addition to that it has created fields and sections for all of the custom fields we created with ACPT. WS Form sets the width of fields to match your ACPT configuration settings.
You can edit the form in exactly the same way as you would any other form. For example, you can resize fields, resize sections and even split the form up across multiple tabs. All of the functionality of the WS Form layout editor is available to you.
## Field Mapping (Optional)
When the form is submitted, the fields on your form are used to create a post in WordPress. WS Form automatically creates field mappings for you if you use a template.
The fields are mapped to either WordPress or ACPT fields by using a Post Management action.
To edit the field mappings:
Click the Actions icon at the top of the layout editor.
Click the gear icon next to the Post Management action.
Scroll down to the Field Mapping and ACPT Field Mapping.
Adjust the field mappings as required then click Save & Close. For more information about field mapping, see our Post Management knowledge base article.
Fields such as selects, checkboxes and radios pull their choices dynamically from ACPT. This means that if you change a choice in ACPT it will automatically update on your form.
Likewise, relational fields in ACPT such as Post and Term fields are also updated dynamically.
## Preview The Form
Now let’s test the form. To do that we simply click the Preview button.
You’ll notice in our preview window that we have the WS Form debug console open. This is a really great feature for testing forms and allows you to populate a form in a single click. Every time you click Populate the form is populated with different data. There’s even a Populate & Submit button which lets you populate the form with data and submit it.
## View The Post
Now that the form is submitted, let’s take a look at how that looks in WordPress.
First, we’ll click back to the WordPress admin. Then we’ll click on Posts in the WordPress menu.
And there is our new post that was created by WS Form.
If we click on the post, we can see that the post title, excerpt and content have been populated from the form. Below that you can see the custom fields created in ACPT that have also been populated.
WS Form supports integration with all of the core ACPT field types.
## Pre-Populating a Form with ACPT Custom Fields
In addition to creating posts, WS Form can also pre-populate forms using ACPT custom fields. To demonstrate this, we’ll go back to the layout editor for the form we just created. Next, we click on the form settings icon at the top of the layout editor.
Then we click on the data tab. From here we configure WS Form to populate the form using the data from an existing WordPress post. In this example, we’ll set WS Form to use the ID of the post we just created.
Below that, you will find the field mappings.
These allow you specify which post and ACPT fields will be mapped to which WS Form field. You’ll notice that because we created this form from a template, all of the fields are already mapped for us, so all we need to do is click Save & Close. Then we click Preview to view the form.
The form has been populated with the data from the post and is ready for editing.
And that’s how easy it is to integrate WS Form with ACPT!
## Build a WordPress Form with the Advanced Custom Fields (ACF) Plugin
URL: https://wsform.com/knowledgebase/how-to-build-a-wordpress-form-with-the-advanced-custom-fields-acf-plugin/
Automatically create forms that contain the fields you have made in ACF for any post type.
Advanced Custom Fields (ACF) is a plugin that allows you to create custom fields for any post type. WS Form can be fully integrated with custom fields created using ACF.
To obtain the official free or PRO version of ACF, please refer to this ACF blog article:
Installing and Upgrading to the Latest Version of ACF
In this tutorial, we’ll show you how to integrate WS Form PRO with the ACF plugin. You'll learn how to create a form that can create a WordPress post that contains custom fields configured in ACF.
https://www.youtube.com/watch?v=Npx4-igXxAM
ACF has basic form functionality built-in that enables you to place the same ACF form you find in the WordPress admin onto the frontend of your website. However, this form has a fixed layout and design.
By using WS Form you can develop powerful, mobile friendly forms that have any layout in place of this basic functionality.
In this tutorial we’re going to create a form that will create a new blog post when it is submitted. These same instructions can be used to create any other post types such as pages or products.
When used with the WS Form Post Management Integration you can:
Automatically create forms that contain the fields you have made in ACF for any post type.
Automatically populate select, checkbox, radio and button groups with the choices you have configured in ACF.
Push form submissions as new posts that are fully compatible with ACF.
Pre-populate forms using post data that includes ACF fields.
## Prerequisites
For this tutorial you will need the following plugins:
Advanced Custom Fields (ACF)
WS Form PRO
Post Management Integration (Also compatible with the User Management Integration)
## Create Fields in ACF
First, we’re going to create some custom fields that will appear when we edit a post in WordPress. We can choose any of the field types that ACF offers, including groups and repeaters.
You can find some helpful resources on how to configure ACF here.
The following ACF field types are supported in WS Form:
Basic
Text
Textarea
Number
Range
Email
URL
Password
Content
Image
File
Gallery
WYSIWYG
Choice
Select
Checkbox
Radio
Button Group
True/False
Relational
Post Object
Page Link
Relationship
Taxonomy
User
jQuery
Google Map
Date Picker
Date Time Picker
Time Picker
Color Picker
Layout
Message
Tab
Group
Repeater
If you add a Repeater field in ACF, that field will be converted to a repeatable section in WS Form. Nested repeaters and groups are not supported. When that form is submitted the repeated rows will be populated in the post at rows in ACF. WS Form supports all field types in repeatable sections.
## Create a Form
Next, we’re going to create a form in WS Form. To do this, we click on Add New in the WS Form menu.
Because we have the Post Management integration installed, you’ll see that we have a Post Management tab. If we click on that tab it will show us templates for each post type registered in WordPress. We’re going to choose the Post template.
After you click on a template, WS Form automatically creates a form for you. WS Form will:
Add basic post fields (title, excerpt and featured image).
Add ACF fields, fully configured according to your ACF settings.
Add taxonomy term selectors (e.g. Category and Tags on posts).
At the top of the form is a section that includes standard fields we would expect to see for a post, such as the title, content an excerpt. In addition to that it has created fields and sections for all of the custom fields we created with ACF. WS Form sets the width of fields to match your ACF configuration settings.
You can edit the form in exactly the same way as you would any other form. For example, you can resize fields, resize sections and even split the form up across multiple tabs. All of the functionality of the WS Form layout editor is available to you.
## Field Mapping (Optional)
When the form is submitted, the fields on your form are used to create a post in WordPress. WS Form automatically creates field mappings for you if you use a template.
The fields are mapped to either WordPress or ACF fields by using a Post Management action.
To edit the field mappings:
Click the Actions icon at the top of the layout editor.
Click the gear icon next to the Post Management action.
Scroll down to the Field Mapping and ACF Field Mapping.
Adjust the field mappings as required then click Save & Close. For more information about field mapping, see our Post Management knowledge base article.
Fields such as selects, checkboxes and radios pull their choices dynamically from ACF. This means that if you change a choice in ACF it will automatically update on your form.
Likewise, relational fields in ACF such as Post Object and User fields are also updated dynamically.
## Preview The Form
Now let’s test the form. To do that we simply click the Preview button.
You’ll notice in our preview window that we have the WS Form debug console open. This is a really great feature for testing forms and allows you to populate a form in a single click. Every time you click Populate the form is populated with different data. There’s even a Populate & Submit button which lets you populate the form with data and submit it.
## View The Post
Now that the form is submitted, let’s take a look at how that looks in WordPress.
First, we’ll click back to the WordPress admin. Then we’ll click on Posts in the WordPress menu.
And there is our new post that was created by WS Form.
If we click on the post, we can see that the post title, excerpt and content have been populated from the form. Below that you can see the custom fields created in ACF that have also been populated.
WS Form supports integration with all of the core ACF field types.
## Pre-Populating a Form with ACF Custom Fields
In addition to creating posts, WS Form can also pre-populate forms using ACF custom fields. To demonstrate this, we’ll go back to the layout editor for the form we just created. Next, we click on the form settings icon at the top of the layout editor.
Then we click on the data tab. From here we configure WS Form to populate the form using the data from an existing WordPress post. In this example, we’ll set WS Form to use the ID of the post we just created.
Below that, you will find the field mappings.
These allow you specify which post and ACF fields will be mapped to which WS Form field. You’ll notice that because we created this form from a template, all of the fields are already mapped for us, so all we need to do is click Save & Close. Then we click Preview to view the form.
The form has been populated with the data from the post and is ready for editing.
And that’s how easy it is to integrate WS Form with ACF!
## Build a WordPress Form with the JetEngine Plugin
URL: https://wsform.com/knowledgebase/build-a-wordpress-form-with-the-jetengine-plugin/
In this tutorial, we’ll show you how to integrate WS Form PRO with the JetEngine plugin.
In this tutorial, we’ll show you how to integrate WS Form PRO with the JetEngine plugin. You'll learn how to create a form that can create a WordPress post that contains custom fields configured in JetEngine.
JetEngine is a plugin that allows you to create custom fields for any post type. WS Form can be fully integrated with custom fields created using JetEngine. By using WS Form you can develop powerful, mobile friendly forms that have any layout in place of this basic functionality.
When used with the WS Form Post Management Integration you can:
Automatically create forms that contain the fields you have made in JetEngine for any post type.
Automatically populate select, checkbox, radio and button groups with the choices you have configured in JetEngine.
Push form submissions as new posts that are fully compatible with JetEngine.
Pre-populate forms using post data that includes JetEngine fields.
WS Form also integrates JetEngine with user management forms such as Register and Edit Profile.
JetEngine repeater fields are fully supported when creating, populating and submitting forms.
## Prerequisites
For this tutorial you will need the following plugins:
JetEngine
WS Form PRO
Post Management Integration (Also compatible with the User Management Integration)
## Create Fields in JetEngine
First, we’re going to create some custom fields that will appear when we edit a post in WordPress. We can choose any of the field types that JetEngine offers, including repeaters. Custom fields are added to a Meta Box in JetEngine.
You can find some helpful resources on how to configure JetEngine here.
The following JetEngine field types are supported in WS Form:
Text
Date
Time
Datetime
Textarea
WYSIWYG
Switcher
Checkbox
Media
Gallery
Radio
Repeater
Select
Number
Colorpicker
Posts
HTML
If you add a Repeater field in JetEngine, that field will be converted to a repeatable section in WS Form. When that form is submitted the repeated rows will be populated in the post at rows in JetEngine. WS Form supports all field types in repeatable sections.
## Create a Form
Next, we’re going to create a form in WS Form. To do this, we click on Add New in the WS Form menu.
Because we have the Post Management integration installed, you’ll see that we have a Post Management tab. If we click on that tab it will show us templates for each post type registered in WordPress. Any post types that contain JetEngine custom fields will be indicating with a JetEngine icon. We’re going to choose the Post template.
After you click on a template, WS Form automatically creates a form for you. WS Form will:
Add basic post fields (title, excerpt and featured image).
Add JetEngine fields, fully configured according to your JetEngine settings.
Add taxonomy term selectors (e.g. Category and Tags on posts).
At the top of the form is a section that includes standard fields we would expect to see for a post, such as the title, content an excerpt. In addition to that it has created fields and sections for all of the custom fields we created with JetEngine. WS Form sets the width of fields to match your JetEngine configuration settings.
You can edit the form in exactly the same way as you would any other form. For example, you can resize fields, resize sections and even split the form up across multiple tabs. All of the functionality of the WS Form layout editor is available to you.
## Field Mapping (Optional)
When the form is submitted, the fields on your form are used to create a post in WordPress. WS Form automatically creates field mappings for you if you use a template.
The fields are mapped to either WordPress or JetEngine fields by using a Post Management action.
To edit the field mappings:
Click the Actions icon at the top of the layout editor.
Click the gear icon next to the Post Management action.
Scroll down to the Field Mapping and JetEngine Field Mapping.
Adjust the field mappings as required then click Save & Close. For more information about field mapping, see our Post Management knowledge base article.
Fields such as selects, checkboxes and radios pull their choices dynamically from JetEngine. This means that if you change a choice in JetEngine it will automatically update on your form.
Likewise, relational fields in JetEngine such as Posts are also updated dynamically.
## JetEngine Relations (Optional)
You can create a JetEngine relation from a WS Form field using this setting. The relation will relate to the Post ID created or updated with the Post Management action. To do this, use the JetEngine Relation setting. To add a Jet Engine Relation setting:
Click the add icon.
Choose the WS Form field you would like to use to populate the relationship with. We would recommend using a Select, Checkbox or Radio field. A Hidden field could also be used. You can use the Data Source feature to populate the field with Post data if you wish. Ensure the value mapping is set to ID and the label mapping is set to Title. Ultimate the field value should contain a Post ID you want to establish a relationship with.
In the second column, choose the JetEngine Relation you would like to set.
In the third column choose the Context. This defaults to Child which will update the child component of the relationship.
In the fourth column you can choose whether or not to replace all existing relationships on the post.
## Custom JetEngine Relations (Optional)
You can create a JetEngine relation from a custom value which can contain a WS Form variable. The relation will relate to the Post ID created or updated with the Post Management action. To do this, use the JetEngine Relation setting.
Two useful variables for this setting are:
#post_id_last - This represents the post ID added or updated by the previous Post Management action. #post_id_first - This represents the post ID added or updated by the first Post Management action.
To add a Jet Engine Relation setting:
Click the add icon.
Choose the WS Form field you would like to use to populate the relationship with. We would recommend using a Select, Checkbox or Radio field. A Hidden field could also be used. You can use the Data Source feature to populate the field with Post data if you wish. Ensure the value mapping is set to ID and the label mapping is set to Title. Ultimate the field value should contain a Post ID you want to establish a relationship with.
In the second column, choose the JetEngine Relation you would like to set.
In the third column choose the Context. This defaults to Child which will update the child component of the relationship.
In the fourth column you can choose whether or not to replace all existing relationships on the post.
## Preview The Form
Now let’s test the form. To do that we simply click the Preview button.
You’ll notice in our preview window that we have the WS Form debug console open. This is a really great feature for testing forms and allows you to populate a form in a single click. Every time you click Populate the form is populated with different data. There’s even a Populate & Submit button which lets you populate the form with data and submit it.
## View The Post
Now that the form is submitted, let’s take a look at how that looks in WordPress.
First, we’ll click back to the WordPress admin. Then we’ll click on Posts in the WordPress menu.
And there is our new post that was created by WS Form.
If we click on the post, we can see that the post title, excerpt and content have been populated from the form. Below that you can see the custom fields created in JetEngine that have also been populated.
WS Form supports integration with all of the core JetEngine field types.
## Pre-Populating a Form with JetEngine Custom Fields
In addition to creating posts, WS Form can also pre-populate forms using JetEngine custom fields. To demonstrate this, we’ll go back to the layout editor for the form we just created. Next, we click on the form settings icon at the top of the layout editor.
Then we click on the data tab. From here we configure WS Form to populate the form using the data from an existing WordPress post. In this example, we’ll set WS Form to use the ID of the post we just created.
Below that, you will find the field mappings.
These allow you specify which post and JetEngine fields will be mapped to which WS Form field. You’ll notice that because we created this form from a template, all of the fields are already mapped for us.
In addition to field mapping, JetEngine Relations are also supported. You can populate a WS Form field with a JetEngine relation value. The relation will relate to the post ID you have configured to populate from. To add a JetEngine Relation setting:
Click the add icon.
Choose the JetEngine Relation you would like to set the WS Form field from.
In the second column choose the WS Form field you would like to populate. We would recommend using a Select, Checkbox or Radio field. You can use the Data Source feature to populate the field with Post data if you wish. Ensure the value mapping is set to ID and the label mapping is set to Title.
In the third column choose the Context. This defaults to Child which will update the child component of the relationship.
Next click Save & Close. Then we click Preview to view the form.
The form has been populated with the data from the post and is ready for editing.
And that’s how easy it is to integrate WS Form with JetEngine!
## Build a WordPress Form with the Meta Box Plugin
URL: https://wsform.com/knowledgebase/build-a-wordpress-form-with-the-meta-box-plugin/
Automatically create forms that contain the fields you have made in Meta Box for any post type.
In this tutorial, we’ll show you how to integrate WS Form PRO with the Meta Box plugin. You'll learn how to create a form that can create a WordPress post that contains custom fields configured in Meta Box.
https://www.youtube.com/watch?v=BW9DrvfOXqc
Meta Box is a plugin that allows you to create custom fields, post types and taxonomies. WS Form can be fully integrated with custom fields created using Meta Box.
By using WS Form you can develop powerful, mobile friendly forms that have any layout in place of this basic functionality.
In this tutorial we’re going to create a form that will create a new blog post when it is submitted. These same instructions can be used to create any other post types such as pages or products.
When used with the WS Form Post Management Integration you can:
Automatically create forms that contain the fields you have made in Meta Box for any post type.
Automatically populate select, checkbox, radio and button groups with the choices you have configured in Meta Box.
Push form submissions as new posts that are fully compatible with Meta Box.
Pre-populate forms using post data that includes Meta Box fields.
Meta Box group fields are fully supported when creating, populating and submitting forms.
## Prerequisites
For this tutorial you will need the following plugins:
Meta Box (And any associated extensions)
WS Form PRO
Post Management Integration (Also compatible with the User Management Integration)
## Create Fields in Meta Box
First, we’re going to create some custom fields that will appear when we edit a post in WordPress. We can choose any of the field types that Meta Box offers, including groups and key value fields.
You can find some helpful resources on how to configure Meta Box here.
The following Meta Box field types are supported in WS Form:
Basic
Button
Button Group
Checkbox
Checkbox List
Hidden
Password
Radio
Select
Select Advanced
Text
Textarea
URL
Advanced
Autocomplete
Color Picker
Custom HTML
Date Picker
Datetime Picker
Google Maps
Image Select
Key Value
oEmbed
jQuery UI Slider
Switch
Time Picker
WYSIWYG Editor
HTML 5
Datetime Local
Email
Month
Number
Range
Phone Number
Week
WordPress
Post
Taxonomy
Taxonomy Advanced *
User
Upload
File
File Advanced
File Input
File Upload *
Image
Image Advanced
Image Upload *
Single Image
Video
Layout
Divider
Heading
Group
Tab
* Recommended
The post management integration also provides support for MB Relationships.
## Tips
When creating Meta Box fields for WS Form, the following tips will help:
To create a repeater, use the Meta Box Group field. WS Form supports all of the above field types in groups up to one level.
For map fields, we support the Google Maps field type.
For file uploads:
In Meta Box we recommend using the File Upload and Image Upload fields.
In WS Form, File Upload fields must use Media Library as the file handler. We recommend using DropzoneJS as the file upload type.
When using Tabs, you should start a field group with a Tab field to ensure Meta Box renders the tabs correctly.
## Create a Form
Next, we’re going to create a form in WS Form. To do this, we click on Add New in the WS Form menu.
Because we have the Post Management integration installed, you’ll see that we have a Post Management tab. If we click on that tab it will show us templates for each post type registered in WordPress. We’re going to choose the Post template.
After you click on a template, WS Form automatically creates a form for you. WS Form will:
Add basic post fields (title, excerpt and featured image).
Add Meta Box fields, fully configured according to your Meta Box settings.
Add taxonomy term selectors (e.g. Category and Tags on posts).
At the top of the form is a section that includes standard fields we would expect to see for a post, such as the title, content an excerpt. In addition to that it has created fields and sections for all of the custom fields we created with Meta Box. WS Form sets the width of fields to match your Meta Box configuration settings.
You can edit the form in exactly the same way as you would any other form. For example, you can resize fields, resize sections and even split the form up across multiple tabs. All of the functionality of the WS Form layout editor is available to you.
## Field Mapping (Optional)
When the form is submitted, the fields on your form are used to create a post in WordPress. WS Form automatically creates field mappings for you if you use a template.
The fields are mapped to either WordPress or Meta Box fields by using a Post Management action.
To edit the field mappings:
Click the Actions icon at the top of the layout editor.
Click the gear icon next to the Post Management action.
Scroll down to the Field Mapping and Meta Box Field Mapping.
Adjust the field mappings as required then click Save & Close. For more information about field mapping, see our Post Management knowledge base article.
Fields such as selects, checkboxes and radios pull their choices dynamically from Meta Box. This means that if you change a choice in Meta Box it will automatically update on your form.
Likewise, relational fields in Meta Box such as Post Object and User fields are also updated dynamically.
## Preview The Form
Now let’s test the form. To do that we simply click the Preview button.
You’ll notice in our preview window that we have the WS Form debug console open. This is a really great feature for testing forms and allows you to populate a form in a single click. Every time you click Populate the form is populated with different data. There’s even a Populate & Submit button which lets you populate the form with data and submit it.
## View The Post
Now that the form is submitted, let’s take a look at how that looks in WordPress.
First, we’ll click back to the WordPress admin. Then we’ll click on Posts in the WordPress menu.
And there is our new post that was created by WS Form.
If we click on the post, we can see that the post title, excerpt and content have been populated from the form. Below that you can see the custom fields created in Meta Box that have also been populated.
WS Form supports integration with all of the core Meta Box field types.
## Pre-Populating a Form with Meta Box Custom Fields
In addition to creating posts, WS Form can also pre-populate forms using Meta Box custom fields. To demonstrate this, we’ll go back to the layout editor for the form we just created. Next, we click on the form settings icon at the top of the layout editor.
Then we click on the data tab. From here we configure WS Form to populate the form using the data from an existing WordPress post. In this example, we’ll set WS Form to use the ID of the post we just created.
Below that, you will find the field mappings.
These allow you specify which post and Meta Box fields will be mapped to which WS Form field. You’ll notice that because we created this form from a template, all of the fields are already mapped for us, so all we need to do is click Save & Close. Then we click Preview to view the form.
The form has been populated with the data from the post and is ready for editing.
And that’s how easy it is to integrate WS Form with Meta Box!
## Build a WordPress Form with the Pods Plugin
URL: https://wsform.com/knowledgebase/build-a-wordpress-form-with-the-pods-plugin/
In this tutorial, we’ll show you how to integrate WS Form PRO with the Pods plugin.
If you're a regular user of Pods, consider donating to help support the project. Donate here.
In this tutorial, we’ll show you how to integrate WS Form PRO with the Pods plugin. You'll learn how to create a form that can create a WordPress post that contains custom fields configured in Pods.
https://www.youtube.com/watch?v=ylsHWxcvfmQ
Pods is a plugin that allows you to create custom fields, post types and taxonomies. WS Form can be fully integrated with custom fields created using Pods.
By using WS Form you can develop powerful, mobile friendly forms that have any layout.
In this tutorial we’re going to create a form that will create a new blog post when it is submitted. These same instructions can be used to create any other post types such as pages or products.
When used with the WS Form Post Management Integration you can:
Automatically create forms that contain the fields you have made in Pods for any post type.
Automatically populate select, checkbox, radio and button groups with the choices you have configured in Pods.
Push form submissions as new posts that are fully compatible with Pods.
Pre-populate forms using post data that includes Pods fields.
Pods group fields are fully supported when creating, populating and submitting forms.
## Prerequisites
For this tutorial you will need the following plugins:
Pods (And any associated extensions)
WS Form PRO
Post Management Integration (Also compatible with the User Management Integration)
## Create Fields in Pods
First, we’re going to create some custom fields that will appear when we edit a post in WordPress. We can choose any of the field types that Pods offers, including groups and key value fields.
You can find some helpful resources on how to configure Pods here.
The following Pods field types are supported in WS Form:
Text
Plain Text
Website
Phone
E-mail
Password
Paragraph
Plain Paragraph Text
WYSIWYG (Visual Editor)
Code (Syntax Highlighting)
Date / Time
Date / Time
Date
Time
Number
Plain Number
Currency
Relationships / Media
File / Image / Video
oEmbed
Relationship
Other
Yes / No
Color Picker
Layout Elements
Heading
HTML Content
## Create a Form
Next, we’re going to create a form in WS Form. To do this, we click on Add New in the WS Form menu.
Because we have the Post Management integration installed, you’ll see that we have a Post Management tab. If we click on that tab it will show us templates for each post type registered in WordPress. We’re going to choose the Post template.
After you click on a template, WS Form automatically creates a form for you. WS Form will:
Add basic post fields (title, excerpt and featured image).
Add Pods fields, fully configured according to your Pods settings.
Add taxonomy term selectors (e.g. Category and Tags on posts).
At the top of the form is a section that includes standard fields we would expect to see for a post, such as the title, content an excerpt. In addition to that it has created fields and sections for all of the custom fields we created with Pods.
You can edit the form in exactly the same way as you would any other form. For example, you can resize fields, resize sections and even split the form up across multiple tabs. All of the functionality of the WS Form layout editor is available to you.
## Field Mapping (Optional)
When the form is submitted, the fields on your form are used to create a post in WordPress. WS Form automatically creates field mappings for you if you use a template.
The fields are mapped to either WordPress or Pods fields by using a Post Management action.
To edit the field mappings:
Click the Actions icon at the top of the layout editor.
Click the gear icon next to the Post Management action.
Scroll down to the Field Mapping and Pods Field Mapping.
Adjust the field mappings as required then click Save & Close. For more information about field mapping, see our Post Management knowledge base article.
Fields such as selects, checkboxes and radios pull their choices dynamically from Pods. This means that if you change a choice in Pods it will automatically update on your form.
Likewise, relational fields in Pods such as Post Object and User fields are also updated dynamically.
## Preview The Form
Now let’s test the form. To do that we simply click the Preview button.
You’ll notice in our preview window that we have the WS Form debug console open. This is a really great feature for testing forms and allows you to populate a form in a single click. Every time you click Populate the form is populated with different data. There’s even a Populate & Submit button which lets you populate the form with data and submit it.
## View The Post
Now that the form is submitted, let’s take a look at how that looks in WordPress.
First, we’ll click back to the WordPress admin. Then we’ll click on Posts in the WordPress menu.
And there is our new post that was created by WS Form.
If we click on the post, we can see that the post title, excerpt and content have been populated from the form. Below that you can see the custom fields created in Pods that have also been populated.
WS Form supports integration with all of the core Pods field types.
## Pre-Populating a Form with Pods Custom Fields
In addition to creating posts, WS Form can also pre-populate forms using Pods custom fields. To demonstrate this, we’ll go back to the layout editor for the form we just created. Next, we click on the form settings icon at the top of the layout editor.
Then we click on the data tab. From here we configure WS Form to populate the form using the data from an existing WordPress post. In this example, we’ll set WS Form to use the ID of the post we just created.
Below that, you will find the field mappings.
These allow you specify which post and Pods fields will be mapped to which WS Form field. You’ll notice that because we created this form from a template, all of the fields are already mapped for us, so all we need to do is click Save & Close. Then we click Preview to view the form.
The form has been populated with the data from the post and is ready for editing.
And that’s how easy it is to integrate WS Form with Pods!
## Build a WordPress Form With the Toolset Plugin
URL: https://wsform.com/knowledgebase/build-a-wordpress-form-with-the-toolset-plugin/
In this tutorial, we’ll show you how to integrate WS Form PRO with the Toolset plugin.
In this tutorial, we’ll show you how to integrate WS Form PRO with the Toolset plugin. You'll learn how to create a form that can create a WordPress post that contains custom fields configured in Toolset.
Toolset is a plugin that allows you to create custom fields, post types and taxonomies. WS Form can be fully integrated with custom fields created using Toolset.
By using WS Form you can develop powerful, mobile friendly forms that have any layout.
In this tutorial we’re going to create a form that will create a new blog post when it is submitted. These same instructions can be used to create any other post types such as pages or products.
When used with the WS Form Post Management Integration you can:
Automatically create forms that contain the fields you have made in Toolset for any post type.
Automatically populate select, checkbox, radio and button groups with the choices you have configured in Toolset.
Push form submissions as new posts that are fully compatible with Toolset.
Pre-populate forms using post data that includes Toolset fields.
Toolset group fields are fully supported when creating, populating and submitting forms.
## Prerequisites
For this tutorial you will need the following plugins:
Toolset
WS Form PRO
Post Management Integration (Also compatible with the User Management Integration)
## Create Fields in Toolset
First, we’re going to create some custom fields that will appear when we edit a post in WordPress. We can choose any of the field types that Toolset offers, including groups and key value fields.
You can find some helpful resources on how to configure Toolset here.
The following Toolset field types are supported in WS Form:
Audio
Checkbox
Checkboxes
Colorpicker
Date
Email
Embed
File
Image
Numeric
Phone
Post
Radio
Select
Skype
Textarea
Textfield
URL
Video
WYSIWYG
Repeatable fields and groups are not currently supported for integration purposes.
## Create a Form
Next, we’re going to create a form in WS Form. To do this, we click on Add New in the WS Form menu.
Because we have the Post Management integration installed, you’ll see that we have a Post Management tab. If we click on that tab it will show us templates for each post type registered in WordPress. We’re going to choose the Post template.
After you click on a template, WS Form automatically creates a form for you. WS Form will:
Add basic post fields (title, excerpt and featured image).
Add Toolset fields, fully configured according to your Toolset settings.
Add taxonomy term selectors (e.g. Category and Tags on posts).
At the top of the form is a section that includes standard fields we would expect to see for a post, such as the title, content an excerpt. In addition to that it has created fields and sections for all of the custom fields we created with Toolset.
You can edit the form in exactly the same way as you would any other form. For example, you can resize fields, resize sections and even split the form up across multiple tabs. All of the functionality of the WS Form layout editor is available to you.
## Field Mapping (Optional)
When the form is submitted, the fields on your form are used to create a post in WordPress. WS Form automatically creates field mappings for you if you use a template.
The fields are mapped to either WordPress or Toolset fields by using a Post Management action.
To edit the field mappings:
Click the Actions icon at the top of the layout editor.
Click the gear icon next to the Post Management action.
Scroll down to the Field Mapping and Toolset Field Mapping.
Adjust the field mappings as required then click Save & Close. For more information about field mapping, see our Post Management knowledge base article.
Fields such as selects, checkboxes and radios pull their choices dynamically from Toolset. This means that if you change a choice in Toolset it will automatically update on your form.
Likewise, relational fields in Toolset such as Post Object and User fields are also updated dynamically.
## Preview The Form
Now let’s test the form. To do that we simply click the Preview button.
You’ll notice in our preview window that we have the WS Form debug console open. This is a really great feature for testing forms and allows you to populate a form in a single click. Every time you click Populate the form is populated with different data. There’s even a Populate & Submit button which lets you populate the form with data and submit it.
## View The Post
Now that the form is submitted, let’s take a look at how that looks in WordPress.
First, we’ll click back to the WordPress admin. Then we’ll click on Posts in the WordPress menu.
And there is our new post that was created by WS Form.
If we click on the post, we can see that the post title, excerpt and content have been populated from the form. Below that you can see the custom fields created in Toolset that have also been populated.
WS Form supports integration with all of the core Toolset field types.
## Pre-Populating a Form with Toolset Custom Fields
In addition to creating posts, WS Form can also pre-populate forms using Toolset custom fields. To demonstrate this, we’ll go back to the layout editor for the form we just created. Next, we click on the form settings icon at the top of the layout editor.
Then we click on the data tab. From here we configure WS Form to populate the form using the data from an existing WordPress post. In this example, we’ll set WS Form to use the ID of the post we just created.
Below that, you will find the field mappings.
These allow you specify which post and Toolset fields will be mapped to which WS Form field. You’ll notice that because we created this form from a template, all of the fields are already mapped for us, so all we need to do is click Save & Close. Then we click Preview to view the form.
The form has been populated with the data from the post and is ready for editing.
And that’s how easy it is to integrate WS Form with Toolset!
## Calculate Character and Word Counts for a Form Field
URL: https://wsform.com/knowledgebase/calculate-character-and-word-counts-for-a-form-field/
You can use WS Form PRO to calculate the number of characters or words in a form field.
You can use WS Form PRO to calculate the number of characters or words in a form field. You can also incorporate this with other calculations, for example you could multiply the number for characters by 10 in a Price field.
## Demo
## Character Count
Syntax: #field_count_char(field_id, "regex_filter")
To get the number of characters in a field, you could use:
#calc(#field_count_char(123))
... where 123 is the ID of the field. The #calc variable ensures the value is updated whenever the source field changes. You would typically add this to the default value of a field.
The calculation can also be filtered by using a JavaScript regular expression. For example:
#calc(#field_count_char(123, "/[^0-9a-z]/gi"))
This would only include alphanumeric letters in the character calculation, i.e. spaces would not be included.
Furthermore you can also use the #field_count_char variable alongside arithmetic within the #calc variable. For example:
#calc(#field_count_char(123, "/[^0-9a-z]/gi") * 10)
This would multiple the count of alphanumeric characters by 10.
## Word Count
Syntax: #field_count_word(field_id, "regex_filter")
To get the number of words in a field, you could use:
#calc(#field_count_word(123))
... where 123 is the ID of the field. The #calc variable ensures the value is updated whenever the source field changes. You would typically add this to the default value of a field.
Furthermore you can also use the #field_count_word variable alongside arithmetic within the #calc variable. For example:
#calc(#field_count_char(123, "/[^0-9a-z]/gi") * 10)
This would multiple the count of alphanumeric characters by 10.
## Calculated Fields
URL: https://wsform.com/knowledgebase/calculated-fields/
The calculated fields function in WS Form PRO makes it easy to create calculate field values that are updated in realtime.
The #calc calculated fields function in WS Form PRO makes it easy to create calculate field values that are updated in realtime. It can handle everything from simple addition to more complex trigonometric functions.
## Demo
## Features
Works with all fields that can accept a numeric input (including rating and progress).
Calculates from any field or variable that can output a numeric output (including dates).
Works with repeatable sections.
Full logging to the debug console.
## How To Create A Calculated Field
Common field types you might use a calculated field in include:
Number
Price
Text
Text Area
Text Editor
HTML
You can put calculated values in the following settings of a field:
Label
Default value
Content (Text Editor / HTML fields)
Placeholder
Help
Minimum
Maximum
To create a calculated field value for the default value of a field, click the field settings icon and then enter a #calc(...) variable in the Default Value setting.
Anything within the brackets will be calculated in realtime on your form and used as the value of your field.
You can create calculations such as:
#calc(1 + 2)
You can include values from other fields on your form, for example, multiplying field ID 123 value by 5:
#calc(#field(123) * 5)
You can use WS Form math variables (listed at the end of this document) to perform more complex calculations, for example, rounding the previous example to two decimal places:
#calc(#round(#field(123) * 5, 2))
You could even create a calculated field that works out the sum of all values of a field in a repeatable section. The syntax is easy:
#calc(#field(123))
... where field ID 123 is a field in a repeatable section. WS Form PRO automatically sums the values together. The #section_row_count(456) function (where 456 is the section ID) can be used to calculate the average value of those values:
#calc(#field(123) / #section_row_count(456))
There is an easier way of creating these calculations ... the calculator!
### Calculator
WS Form PRO includes a calculator feature that helps creating calculated values for fields.
Click the field settings icon.
Click the calculator icon. On most fields this is found on the Default Value setting.
The calculator will then appear directly below:
The cursor will automatically position itself within the #calc() function. In addition to the normal numeric and arithmetic buttons, the calculator has the following additional buttons:
Insert Field - Click this to insert a #field() variable into your calculated field. It lists all of the fields on your form that are compatible with the calculated field feature.
del - Deletes a character
AC (All Clear) - Deletes the entire calculation
f - Inserts a math variable into your calculation such as #pi, #cos(...) or #sin(...) (See below)
Note that whilst the calculator will do its best to maintain a suitable cursor position, you can always click on the default value itself to reposition the cursor.
### Source Field Rules
If a field used in a calculation is an e-commerce type (e.g. price, price select etc), the input value is assumed to be a currency and WS Form will therefore correctly interpret the price according to your currency symbol, decimal and thousand separator settings and will convert that to a floating point number.
If a field used in a calculation is not an e-commerce type (e.g. number, text, select etc), the input value should follow standard conventions used for evaluating numbers in JavaScript, i.e.
Period for decimal separator
No thousand separators
For example: 123.45
### Display Calculations as Prices
If you wish to show a calculation as a price using your currency settings, you can use the ecommerce_price variable, for example:
#ecommerce_price(#calc(#field(1) + #field(2)))
### JavaScript Floating Point Rounding
WS Form calculations are assessed using standard JavaScript. In some cases this can result in floating point numbers such as:
123.40000000000001 instead of 123.4
This is actually perfectly normal in the computing world! If you're interested here is an explanation.
In order to get a neater looking number, simply use the #round variable, for example:
#round(#calc(#field(1) + #field(2)), 1)
The last parameter is the number of decimal places you would like to use.
### Variables
In addition to #field(...), the following variables can be used inside with #calc(...).
## Calculating Minimum and Maximum Field Attributes
URL: https://wsform.com/knowledgebase/calculating-minimum-and-maximum-field-attributes/
WS Form can calculate minimum and maximum field attributes of a series of fields.
WS Form can calculate minimum and maximum field attributes of a series of fields.
## Demo
## Variables
The calculations in the demo above are achieved using the following variables:
Variable
Description
Client-Side Example
#field_min_id(id, id[, id])
Returns the ID of the field that contains the lowest number.
#calc(#field_min_id(1, 2, 3))
#field_max_id(id, id[, id])
Returns the ID of the field that contains the highest number.
#calc(#field_min_id(1, 2, 3))
#field_min_label(id, id[, id])
Returns the label of the field that contains the lowest number.
#text(#field_min_label(1, 2, 3))
#field_max_label(id, id[, id])
Returns the label of the field that contains the highest number.
#text(#field_min_label(1, 2, 3))
#field_min_value(id, id[, id])
Returns the value of the field that contains the lowest number.
#calc(#field_min_value(1, 2, 3, 4))
#field_max_value(id, id[, id])
Returns the value of the field that contains the highest number.
#calc(#field_max_value(1, 2, 3, 4))
You must specify 2 or more field ID's for these variables to work.
If you use these variables in an action, such as Send Email, you should not include #calc or #text
## Campaign Monitor Integration
URL: https://wsform.com/knowledgebase/campaign-monitor/
The Campaign Monitor integration lets you push new subscribers using an action, pull subscriber data using the WS Form autocomplete feature, and create new for…
The Campaign Monitor integration lets you push new subscribers using an action, pull subscriber data using the WS Form autocomplete feature, and create new forms from your lists in a single click on the add form page.
## Installation
The Campaign Monitor plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Campaign Monitor plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Campaign Monitor tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Campaign Monitor
In order to use the integration, you need to connect it to Campaign Monitor. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Campaign Monitor tab at the top of the page.
Click Connect and follow the onscreen prompts
If you do not have a Campaign Monitor account, you can create a new account here.
## Creating a Form for Campaign Monitor
### Automatically
WS Form can create a form for any of our Campaign Monitor lists in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a Campaign Monitor form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Campaign Monitor tab at the top of the page.
Click on any of your Campaign Monitor lists to create a form.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the Campaign Monitor tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to Campaign Monitor when a user saves or submits their form.
To add a Campaign Monitor action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a Campaign Monitor List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Campaign Monitor action settings are as follows:
#### When Should This Action Run?
You can choose to run the Campaign Monitor action when the form is saved, submitted, or both.
#### Campaign Monitor List
Choose the Campaign Monitor List you would like subscribers to be added, updated or removed from. If you have created a new list since viewing this screen, you can click the refresh icon to retrieve the new list.
#### Method
Select the Campaign Monitor method you would like to call when the action runs. Choose from:
Subscribe
Update
Unsubscribed
Delete
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Name Mask
The name mask determines how the name field for a subscriber is determined. We recommend using text field variable for this setting. For example:
#field(1)
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in Campaign Monitor. For example you would want to map your Email field to the Email field in Campaign Monitor.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Campaign Monitor field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
## Populate Forms Using Campaign Monitor
As well as pushing form data with this integration, you can also retrieve subscriber data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a subscriber in Campaign Monitor.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose Campaign Monitor from the Action To Populate From pull-down menu.
Select the list you wish to populate data from in the List To Populate From pull-down menu.
Map the Campaign Monitor fields to your form fields.
Click Save at the bottom.
Note that if you created your form using a Campaign Monitor template the field mappings will automatically be created for you. You can also map tags (Campaign Monitor interests).
## CaptchaFox Field
URL: https://wsform.com/knowledgebase/captchafox/
Adds EU-based, privacy-friendly CAPTCHA verification to help prevent spam for form submissions in WordPress.
The CaptchaFox field lets you add CaptchaFox CAPTCHA verification to your WordPress forms to help prevent spam and automated submissions. Because CaptchaFox is a privacy-friendly CAPTCHA service and reCAPTCHA alternative, it distinguishes human users from bots using interactive or invisible challenges.
WS Form Pro supports all current CaptchaFox display modes for WordPress spam protection. Specifically, you can choose from:
Inline
Popup
Hidden
## Demo
[ws_form id="13811"]
## Register Your WordPress Site with CaptchaFox
To use CaptchaFox in WordPress, you must first register your website. Then CaptchaFox can issue the keys required for verification.
Sign up for a CaptchaFox account
Register your website and, under “Choose your platform,” select JavaScript.
After you register your website, CaptchaFox provides two keys:
Site key
Secret key
You can enter these keys either in Global Settings or directly in the field settings (see below). As a result, CAPTCHA spam protection becomes active on your WordPress forms.
## Adding a CaptchaFox CAPTCHA Field to WordPress Forms
To learn how to add, edit, clone, move, resize, offset, or delete a CaptchaFox field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field. Click Save & Close or Save to apply your changes. To discard changes, click Cancel or select another form element to close the field settings sidebar.
### Basic
The Basic tab contains the settings most commonly used to configure this field.
#### Label
This is the label displayed alongside the field. You can enter a label here or double-click the field label directly in the editor. Use a clear, descriptive label such as Verification.
#### Show Label
If enabled, the label is shown on your form. Disable this option if you do not want the label to appear.
#### CaptchaFox Type
Select the desired CaptchaFox type from the dropdown. Depending on your selection, you will be prompted for the required configuration details.
#### Site Key
Enter the site key provided when you registered your website. You can also define a global site key for all CaptchaFox fields in Global Settings.
#### Secret Key
Enter the secret key provided when you registered your website. You can also define a global secret key for all CaptchaFox fields in Global Settings.
#### Mode
Select how the CaptchaFox challenge is displayed: Inline, Popup, or Hidden.
#### Theme
Visible modes support light and dark themes. Choose a theme that matches your site design.
#### Help
For visible modes you can enter help text to be shown alongside the field.
### Advanced
The Advanced tab contains additional settings for controlling how the field is displayed and behaves.
#### Styles
Use the Styles settings to customize the field’s appearance.
##### Vertical Alignment
Controls how this field aligns vertically relative to other fields in the same row:
Top
Middle
Bottom
#### Classes
WS Form allows you to add custom CSS classes to fields.
##### Field Wrapper
Add one or more CSS classes to the field wrapper. Field wrappers are HTML containers used to position fields on the page. Separate multiple classes with a space.
#### Restrictions
##### User Status
Choose which users can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you select Has User Role or Capability, additional options appear to choose specific roles or capabilities.
#### Localization
##### Language
Select the language used by CaptchaFox.
#### Validation
##### Show Invalid Feedback
Displays validation feedback when the form is submitted and the field fails validation. If enabled, the message appears below the field.
##### Invalid Feedback Text
WS Form automatically generates validation feedback for all fields. If this setting is left empty, the default text shown in light gray will be used. You can enter custom feedback text here if required.
WS Form variables can be used in this field.
#### Breakpoints
Breakpoint settings control the field width and offset (number of columns from the left side of the form or the previous field) at each responsive breakpoint. For more information, click here.
## Cart Detail Field
URL: https://wsform.com/knowledgebase/cart_price/
The e-commerce cart detail field is used to show cart level amounts such as the cart subtotal, shipping, and discount fields. These fields are optional.
The Cart Detail field is used to show cart-level amounts, such as the cart subtotal, shipping, and discount fields. These fields are optional.
Their location on a typical cart can be found below:
The following types of cart detail fields are available:
Subtotal - The total amount of all price subtotal fields
Shipping
Tax
Handling Fee
Discount - Learn more about creating a discount field
Shipping Discount
Insurance
Gift Wrap
Other
The cart total is calculated from the sum of all the cart detail fields. You are not required to put any cart detail fields on the form in order for the cart to calculate correctly.
Put the amount you want to charge for that detail in the Default Value setting of the field. WS Form variables can be use too.
For example, to charge 10% tax you could configure a Price Detail field as type Tax and then enter the following in the Default Value setting:
#calc(#ecommerce_cart_subtotal * 0.1)
## Adding a Cart Detail Field
To learn how to add, edit, clone, move, resize, offset, or delete a price subtotal field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, Price Subtotal.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Text Align
This setting determines how the price will be aligned in the field. This defaults to Right for ease of reading, but you can change it to different justifications.
### Type
Select which type of cart detail field this is. Choose from:
Subtotal (the total amount of all price subtotal fields)
Shipping
Tax
Handling Fee
Discount
Shipping Discount
Insurance
Gift Wrap
Other
### Default Value
The default value setting is used to populate the field with some default content. Unlike the placeholder text, default values are stored when the form is saved or submitted.
WS Form variables can be entered into this field.
### Allow Negative Value
If negative amounts are permitted in this field, check this box.
### Placeholder
Field placeholders are used to place text in a field prior to the website visitor completing the field. The web browser then removes the placeholder text when text is entered into the field. Placeholder text is typically used to provide an example of what should be entered into that field, such as $1.00 for a currency field. If this field is left blank, a placeholder will not be added to the field.
Placeholder text is not stored when the form is saved or submitted.
WS Form variables can be entered into this field.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### Auto Complete
Web browsers sometimes have features for helping users fill forms in, for example pre-filling the user's address based on earlier user input. The autocomplete content attribute can be used to hint to the web browser how to, or indeed whether to, provide such a feature.
Use this setting if you would like to specify the value of the autocomplete attribute. Use the off option to prevent auto complete on the field.
### Prefix / Suffix
The prefix and suffix settings allow you to add a prefix box and/or suffix box to the field.
For example, you could add a unit of measure as a suffix, or an @ symbol as a prefix.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
### Exclusions
#### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
### Hidden Behavior
These settings allow you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
#### Always Include in Actions
The normal behavior for a field that has been hidden is that it will not be included if an action has a Clear Hidden Fields setting enabled. For example, if you have a Send Email action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
#### Always Include in Cart Total
The normal behavior for an e-commerce field that has been hidden is that it will not be included in the Cart Total calculation.
If this setting is checked, this field will always be included in the Cart Total calculation if it is hidden.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the cart detail field.
#### Label Position
There are five positions you can choose from for your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the form settings advanced tab. For new forms this will be the Top positioning.
Note that when using some frameworks some label positions may not be available.
#### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to Default Label Width and change the setting. 4. Click Save at the bottom.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
Field restrictions enable you to define what can or cannot be entered into the field.
#### Read Only
If checked the field will be read only. Read-only forms provide a way of showing a value in a field without giving the website visitor the opportunity to change the value.
#### Minimum
This is the minimum number that should be entered into the field in order for it to be valid. Leaving this blank will mean any minimum value can be entered. This can be any negative or positive number.
#### Maximum
This is the maximum value that can to be entered into the field in order for it to be valid. Leaving this blank will set the maximum character length to infinity. This can be any negative or positive number.
#### Allow Negative Values
If negative amounts are permitted in this field, check this box.
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted, and the field has not been completed according to the field settings you have configured. For example if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Datalist
Many field types have a datalist option. When a website visitor starts to type in a field, the browser will display options that it believes match what the website visitor is typing in. The website visitor can then click on the datalist option to speed up their data entry. Datalist is also used to provide hints to the website visitor as to the available options that can be entered for a field.
Tip: In some browsers you may need to activate a datalist function for this to work, while some older browsers may not support this feature.
To create datalist suggestions for the field, add rows to the datalist data grid. Data grids make entering lists of information quick and easy. You can also use the data grid to import a CSV file of data into the datalist field, which makes adding large suggestion lists easier than entering them one by one.
For more information about using WS Form data grids, click here.
## Cart Total Field
URL: https://wsform.com/knowledgebase/cart_total/
The e-commerce cart total field allows you to show the overall cart total amount.
The Cart Total field allows you to show the overall cart total amount. This is the sum of all cart detail fields.
The cart total field is read-only and cannot be changed by the web user.
## Adding a Cart Total Field
To learn how to add, edit, clone, move, resize, offset, or delete a price subtotal field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, Price Subtotal.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Text Align
This setting determines how the price will be aligned in the field. This defaults to Right for ease of reading, but you can change it to different justifications.
### Allow Negative Value
If negative amounts are permitted in this field, check this box.
### Prefix / Suffix
The prefix and suffix settings allow you to add a prefix box and/or suffix box to the field.
For example, you could add a unit of measure as a suffix, or an @ symbol as a prefix.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
### Exclusions
#### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
### Hidden Behavior
These settings allow you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
#### Always Include in Actions
The normal behavior for a field that has been hidden is that it will not be included if an action has a Clear Hidden Fields setting enabled. For example, if you have a Send Email action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the cart total field.
#### Label Position
There are five positions you can choose from for your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the form settings advanced tab. For new forms this will be the Top positioning.
Note that when using some frameworks some label positions may not be available.
#### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to Default Label Width and change the setting. 4. Click Save at the bottom.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Change Form Submission Limit Settings Using PHP
URL: https://wsform.com/knowledgebase/how-to-change-form-submission-limit-settings-using-php/
Sometimes you might want to change form settings dynamically using PHP prior to the form being rendered on your website.
Sometimes you might want to change form settings dynamically using PHP prior to the form being rendered on your website.
In this tutorial we show you how to change the form submission limit and message shown if that limit is exceeded using a simple PHP script. The script would typically reside in the functions.php file in your theme folder (always use the child theme for custom configuration if your theme allows it).
## Creating The Filter
First we are going to use the following function to create a new filter in WordPress:
add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )
You can learn more about this function by clicking here.
The tag we will use is a WS Form filter called:
wsf_pre_render_
For example, to process the form_object for form ID 123, the tag would be:
wsf_pre_render_123
The second parameter provides WordPress with the callback function through which $form_object will flow.
The third parameter determines the priority, we can just leave that with a number of 10.
The fourth parameter defines how many parameters are passed to the callback function, in this case it is 2; $form_object and $preview.
The complete statement looks something like this:
add_filter( 'wsf_pre_render_123', 'wsf_pre_render_callback', 10, 2 );
This filter is applied prior to the form being rendered.
## Creating The Callback Function
The callback function is a called by WordPress to filter the form.
Two parameters are passed to the callback function:
$form_object - A complete object containing the form itself.
$preview - Whether the form is being rendered in preview mode or not (We'll ignore this parameter in this tutorial).
Here is a simple example of the callback function:
// My callback function for tag wsf_pre_render_123
function wsf_pre_render_callback( $form_object, $preview ) {
// Do something with $form_object here
// ...
// Return the form object back to WS Form
return $form_object;
}
As you can see, we return $form_object back to WS Form at the end of the function after making changes to it.
For the purpose of this tutorial we're going to edit two different meta values, one to set the form submission limit and another to change the message that is shown if the form submission limit is exceeded.
To edit the meta values we use the following code:
$form_object->meta->submit_limit_count = 5;
This changes the submit_limit_count property in the meta data to 5. You can set that to any value you wish.
$form_object->meta->submit_limit_message = __('Test message');
This changes the message shown if the limit is exceeded to read 'Test Message'. We'd recommend adding a domain to the __() function. Learn more here.
## Putting It All Together
The final code you would add to your functions.php file can be found below:
// Add a filter for form ID 123
add_filter( 'wsf_pre_render_123', 'wsf_pre_render_callback', 10, 2 );
// My callback function for tag wsf_pre_render_123
function wsf_pre_render_callback( $form_object, $preview ) {
// Set limit to 5
$form_object->meta->submit_limit_count = 5;
// Change limit message (optional)
$form_object->meta->submit_limit_message = __('Test message', 'ws-form');
// Return the form object back to WS Form
return $form_object;
}
## Change Required Field Indicators
URL: https://wsform.com/knowledgebase/change-required-field-indicators/
You can change field required indicators to use any HTML you wish.
WS Form uses the markup * to indicate required fields using an accessible friendly and high contrast tone of red. In the Styler this color can be found under Form > Color Palette > Danger. The same color is used for showing invalid feedback and field borders when a field is invalid.
This a commonly used method for indicating that a field is required. For improved accessibility, you may wish to change this to a word.
You can change this to anything you would like, such as small text. To do this:
Click the settings icon in the top toolbar when editing a form. The form settings sidebar will then appear on the right-hand side of the page.
Click the Styling tab.
In the Required Fields section, change the Custom Required HTML setting. For example, simply enter Required or if you are familiar with HTML you can enter anything else you wish here.
Click Save & Close.
## Change Tab Labels Using PHP
URL: https://wsform.com/knowledgebase/change-tab-labels-using-php/
Sometimes you might want to change a tab label dynamically using PHP prior to the form being rendered on your website.
Sometimes you might want to change a tab label dynamically using PHP prior to the form being rendered on your website.
In this tutorial we show you how to change a tab label using a simple PHP script. The script would typically reside in the functions.php file in your theme folder (always use the child theme for custom configuration if your theme allows it).
## Creating The Filter
First we are going to use the following function to create a new filter in WordPress:
add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )
The tag we will use is a WS Form filter called:
wsf_pre_render_
For example, to process the form_object for form ID 123, the tag would be:
wsf_pre_render_123
The second parameter provides WordPress with the callback function through which $form_object will flow.
The third parameter determines the priority, we can just leave that with a number of 10.
The fourth parameter defines how many parameters are passed to the callback function, in this case it is 2; $form_object and $preview.
The complete statement looks something like this:
add_filter( 'wsf_pre_render_123', 'wsf_pre_render_callback', 10, 2 );
This filter is applied prior to the form being rendered.
## Creating The Callback Function
The callback function is a called by WordPress to filter the form.
Two parameters are passed to the callback function:
$form_object - A complete object containing the form itself.
$preview - Whether the form is being rendered in preview mode or not (We'll ignore this parameter in this tutorial).
Here is a simple example of the callback function:
// My callback function for tag wsf_pre_render_123
function wsf_pre_render_callback( $form_object, $preview ) {
// Do something with $form_object here
// ...
// Return the form object back to WS Form
return $form_object;
}
As you can see, we return $form_object back to WS Form at the end of the function after making changes to it.
For the purpose of this tutorial we're going to change the label of the first tab. Data about each tab is stored in an array called groups. Each group array element is an object. The label is stored in an object variable called label.
To edit the tab label we use the following code:
$form_object->groups[0]->label = 'New Tab Label';
## Putting It All Together
The final code you would add to your functions.php file can be found below:
// Add a filter for form ID 123
add_filter( 'wsf_pre_render_123', 'wsf_pre_render_callback', 10, 2 );
// My callback function for tag wsf_pre_render_123
function wsf_pre_render_callback( $form_object, $preview ) {
// Change label of first tab (0 = First tab, 1 = Second tab etc)
$form_object->groups[0]->label = 'New Tab Label';
// Return the form object back to WS Form
return $form_object;
}
## Changing a Field or Button Label with PHP
URL: https://wsform.com/knowledgebase/changing-a-field-or-button-label-with-php/
You can use WordPress filter hooks and WS Form functions to dynamically update the label of any field before a form is rendered.
You can use WordPress filter hooks and WS Form functions to dynamically update the label of any field or button before a form is rendered.
## Example Code
Here is example code for setting the label of the field with ID 321 in form ID 123. Add this code to your theme functions.php file or favorite code snippet plugin.
label = 'Your label here';
// Return the form
return $form;
}
## Code Breakdown
### WordPress Filter
Before WS Form outputs a form, a WordPress filter named wsf_pre_render_{form_id} runs, where {form_id} is your form ID. WS Form provides a form object to this filter that you can modify.
Below is an example of using this filter:
label = 'Your label here';
// Return the form
return $form;
}
## Checkbox Field
URL: https://wsform.com/knowledgebase/checkbox/
The Checkbox field creates a list of tickable inputs.
The Checkbox field creates one or more square boxes on your form that can be checked.
## Demo
Learn more: Style Checkboxes
## Adding a Checkbox Field
To learn how to add, edit, clone, move, resize, offset, or delete a checkbox field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, First Name or Email.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Enable Select All
When enabled, WS Form will show a Select All checkbox above the first checkbox. This enables users to select or deselect all checkboxes in a single click.
### Default Value
If a value is entered into this setting, the checkbox containing that value will be checked by default. Note that this value needs to be the checkbox value not the text shown for the checkbox.
Comma separated values can be entered into this setting. Values will be trimmed.
Other ways of setting the default value, include:
Select rows in the Checkboxes tab using the Selected icon. Learn more
Set the default value using PHP. Learn more
Use the WordPress Filter Hook Data Source. Learn more
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### Layout
#### Orientation
Checkboxes can either be oriented in a vertical, horizontal or grid format. Use this setting to determine which orientation you would like the checkboxes to appear in.
If you select Grid, you can set a width for each checkbox at each breakpoint. If you only change the smallest breakpoint, all of the other breakpoints will inherit that width too. This enables you to create multi-column layouts if you have more than one checkbox in your field.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
### Exclusions
#### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
### Hidden Behavior
#### Always Include in Actions
This setting allows you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
The normal behavior for a field that has been hidden is that it will not be included if an action has a Clear Hidden Fields setting enabled. For example, if you have a Send Email action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the checkbox field.
#### Label Position
There are five positions you can choose from for your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the form settings advanced tab. For new forms this will be the Top positioning.
Note that when using some frameworks some label positions may not be available.
#### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to Default Label Width and change the setting. 4. Click Save at the bottom.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
#### Minimum Checked
Enter a number in this setting to determine the minimum number of checkboxes that should be checked in order for this field to validate.
#### Maximum Checked
Enter a number in this setting to determine the maximum number of checkboxes that can be checked in order for this field to validate.
Note that this option is not available if Enable Select All is checked.
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Duplicates
#### No Duplicates in Repeatable Sections
This setting only applies to checkbox fields that are within a repeatable section. It prevents the same checkbox from being checked across multiple repeatable section rows. For example, if you had a checkbox field with t-shirt sizes and selected Small in the first row, then the Small checkbox will be disabled in all other rows.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted, and the field has not been completed according to the field settings you have configured. For example if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Checkboxes
Each checkbox is configured in this tab. Checkboxes are added using the data grid feature of WS Form. Data grids make entering lists of information quick and easy.
Using the data grid, you can mark a checkbox as selected, required, disabled, or hidden. You can also wrap checkboxes in a fieldset which groups the checkboxes together. That fieldset can then be disabled.
For more information about using WS Form data grids, click here.
### Column Mapping
#### Label
Choose the column in your data grid that contains the labels to be shown to the user when they are viewing your form.
#### Value
Choose the column in your data grid that contains unique values to used. This is the value that is saved to the submission.
#### Action Variables
Choose the column in your data grid that is used when you use variables such as #field or #email_submission when used in actions (e.g. Send Email).
### Cascading
Cascading allows you to filter the checkboxes shown by using the value of another field on your form. An example application of this feature would be to filter a list of checkboxes for vehicle models by another field containing vehicle makes.
#### Cascade
Check this setting to enable the cascading feature on this field.
#### Filter Column
The filter column setting allows you to choose which column of your data grid you want your checkboxes to be filtered by. In most cases you will want to create a new column that contains values you want to filter by.
#### Filter Value
The filter value setting allows you to choose which field on your form to filter your checkboxes by in the filter column.
The following field types can be used for the filter value:
Text
Number
Range Slider
Rating
Select
Checkbox
Radio
Price Select
Price Checkbox
Price Radio
Price Range
WS Form uses the Value column mapping of select, checkbox and radio fields for the filter value.
You should ensure that the value(s) returned by the Filter Value field match the values in your Filter Column exactly (Case sensitive).
#### Show All If No Results
Enable this setting if you want WS Form to show all available results if no matching results are found.
## Clear Button
URL: https://wsform.com/knowledgebase/clear/
The clear button allows a website visitor to clear all of the fields on the form. In contrast to the reset button, all fields are cleared regardless of their d…
The Clear button allows a website visitor to clear all of the fields on the form.
## Demo
## Adding a Clear Button
To learn how to add, edit, clone, move, resize, offset, or delete a clear button, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This label is used to identify the clear button in the WS Form form builder.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the clear button.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
#### Type
The type option allows you to choose how this button is styled. The options are:
Default
Primary
Secondary
Success
Information
Warning
Danger
#### Remove Full Width Class
Checking this option will no-longer render the button as 100% width.
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
Field restrictions enable you to define what can or cannot be entered into the field.
#### Disabled
If checked the field will be disabled, and it cannot be interacted with. You can re-enable a field dynamically by using conditional logic.
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Clearing the Session Hash Using Conditional Logic
URL: https://wsform.com/knowledgebase/clearing-the-session-hash-using-conditional-logic/
This article explains how to clear a form’s session hash using conditional logic so users can start with a fresh form.
When a form is saved a session hash is generated. The session hash is used to later retrieve the contents of the form so that the user can continue completing the form where they left off. A session hash is also generated if an error occurs during form testing to prevent you from having to re-enter the data on the form.
Session hashes are made up of 32 characters and look like this: 9d7a83fd82c5ddf1d832cad2593c5845
If you want to delete the session hash and start with a fresh form, you can do so using conditional logic. For example:
IF [Button] [Clicked] THEN [Form] [Clear Session Hash]
Older versions of WS Form may use "Clear Session ID".
## Clearing the Session Hash Using the Debug Console
URL: https://wsform.com/knowledgebase/clearing-the-session-hash-using-the-debug-console/
This article explains how to clear a form’s session hash using the debug console.
When a form is saved a session hash is generated. The session hash is used to later retrieve the contents of the form so that the user can continue completing the form where they left off. A session hash is also generated if an error occurs during form testing to prevent you from having to re-enter the data on the form.
Session hashes are made up of 32 characters and look like this: 9d7a83fd82c5ddf1d832cad2593c5845
If you want to delete the session hash and start with a fresh form, you can do so from the debug console.
Ensure the debug console is open. Learn more.
In the debug console, click the Tools tab.
Click the Clear Session Hash icon.
## CleverReach Integration
URL: https://wsform.com/knowledgebase/cleverreach/
The CleverReach integration lets you push new subscribers using an action, pull subscriber data using the WS Form autocomplete feature, and create new forms fr…
The CleverReach integration lets you push new subscribers using an action, pull subscriber data using the WS Form autocomplete feature, and create new forms from your lists in a single click on the add form page.
## Installation
The CleverReach plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the CleverReach plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the CleverReach tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to CleverReach
In order to use the integration, you need to connect it to CleverReach. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the CleverReach tab at the top of the page.
Click Connect and follow the onscreen prompts
If you do not have a CleverReach account, you can create a new account here.
## Creating a Form for CleverReach
### Automatically
WS Form can create a form for any of our CleverReach lists in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a CleverReach form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the CleverReach tab at the top of the page.
Click on any of your CleverReach lists to create a form.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the CleverReach tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to CleverReach when a user saves or submits their form.
To add a CleverReach action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a CleverReach List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The CleverReach action settings are as follows:
#### When Should This Action Run?
You can choose to run the CleverReach action when the form is saved, submitted, or both.
#### CleverReach List
Choose the CleverReach List you would like subscribers to be added, updated or removed from. If you have created a new list since viewing this screen, you can click the refresh icon to retrieve the new list.
#### Method
Select the CleverReach method you would like to call when the action runs. Choose from:
Subscribe
Blacklist
Delete
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Double Opt-In
When checked, a double opt-in email will be sent to the recipient to confirm their subscriptions. This is useful for confirming a users email address as well as adhering to GDPR requirements.
You will also need to enter a CleverReach form ID to associate with the double opt-in with. Enter this in the Form ID setting, see below.
The following data will be sent to CleverReach as part of the double opt-in request:
Remote IP
Referrer
Agent
We recommend informing your website users that this information will be shared with CleverReach as part of your privacy policy.
#### Form ID
If you choose double opt-in you will be required to enter a form ID to associate it with. Learn how to find your form ID.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in CleverReach. For example you would want to map your Email field to the Email field in CleverReach.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding CleverReach field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Mapping
Custom mapping allows you to set a CleverReach field to any value you wish, including the use of WS Form variables. For example you might want to map a lead source (e.g. #blog_name) to the source field in CleverReach.
To add a custom mapping:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, enter a value or a WS Form variable.
In the right-hand column, select the corresponding CleverReach attribute.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
## Populate Forms Using CleverReach
As well as pushing form data with this integration, you can also retrieve subscriber data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a subscriber in CleverReach.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose CleverReach from the Action To Populate From pull-down menu.
Select the list you wish to populate data from in the List To Populate From pull-down menu.
Map the CleverReach fields to your form fields.
Select any choice fields you wish to map tags to (e.g. Select, Checkbox or Radio fields)
Click Save at the bottom.
Note that if you created your form using a CleverReach template the field mappings will automatically be created for you.
## Cloudflare Turnstile Field
URL: https://wsform.com/knowledgebase/turnstile/
This field is used to add a Cloudflare Turnstile Widget to your form.
This field is used to add a Cloudflare Turnstile widget to your WordPress form. Cloudflare Turnstile detects whether the user of a site is human using a privacy focussed, accessible widget that requires no interaction. Use the Cloudflare Turnstile widget to protect your form from unwanted spam.
## Demo
[ws_form id="13708"]
## Register Your WordPress Website with Cloudflare Turnstile
In order to use the Cloudflare Turnstile, you first need to create an Cloudflare account.
Sign up for a Cloudflare account
Once you have signed up, you need to create a turnstile widget for your WordPress website hostname.
Create a Cloudflare Turnstile Widget
Once you have created a widget, you will be provided with two keys:
Site key
Secret key
You can add these keys to the Global Settings under the Spam Protection tab. You can then add Cloudflare Turnstile fields to any form and only have to enter your keys once.
## Adding a Cloudflare Turnstile Field
To learn how to add, edit, clone, move, resize, offset, or delete a Turnstile field, please click here.
### Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, First Name or Email.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Site Key
Enter the site key provided when you registered your website. You can also enter a global site key to use for all you Turnstile fields in global settings.
### Secret Key
Enter the secret key provided when you registered your website. You can also enter a global secret key to use for all you Turnstile fields in global settings.
### Theme
Visible Turnstile widgets are available in Auto, Dark or Light themes. Choose a theme that suits your website design.
Cloudflare Turnstile Configurations
### Size
Visible Turnstile widgets are available in Normal and Compact sizes. Choose a size that suits your website design.
Cloudflare Turnstile Widge Size
### Appearance
Visible Turnstile widgets are available in Always, Execute and Interactive Only appearance modes. Choose a mode that suits your website requirements.
Cloudflare Turnstile Appearance Modes
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
## Advanced
The advanced tab contains additional settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the text field.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
### Restrictions
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted, and the field has not been completed according to the field settings you have configured. For example, if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Color Field
URL: https://wsform.com/knowledgebase/color/
The Color Picker field type lets a website visitor specify a color using a visual color-picker interface.
The Color field type lets a website visitor specify a color, either by using a visual color-picker interface or by entering the color into a text field in "#rrggbb" hexadecimal format.
## Demo
## Adding a Color Field
To learn how to add, edit, clone, move, resize, offset, or delete a color field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, First Name or Email.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Required
If checked this field will be required when the website visitor completes your form. Failure to complete the field if this is checked will result in a validation message appearing under the field prompting the user to complete the field correctly.
Required fields are indicated on your website with the word Required being adding to the label of the field. This can be changed in the form settings advanced tab.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Default Color
The default color setting is used to set an initial color for the field on your form.
In basic mode simply click this setting and pick a default color.
In advanced mode you should enter a hex color reference, for example, #ff8800. WS Form variables can be entered into this field.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### Auto Complete
Web browsers sometimes have features for helping users fill forms in, for example pre-filling the user's address based on earlier user input. The autocomplete content attribute can be used to hint to the web browser how to, or indeed whether to, provide such a feature.
Use this setting if you would like to specify the value of the autocomplete attribute. Use the off option to prevent auto complete on the field.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
### Exclusions
#### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
### Hidden Behavior
#### Always Include in Actions
This setting allows you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
The normal behavior for a field that has been hidden is that it will not be included if an action has a Clear Hidden Fields setting enabled. For example, if you have a Send Email action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the color field.
#### Label Position
There are five positions you can choose from for your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the form settings advanced tab. For new forms this will be the Top positioning.
Note that when using some frameworks some label positions may not be available.
#### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to Default Label Width and change the setting. 4. Click Save at the bottom.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
Field restrictions enable you to define what can or cannot be entered into the field.
#### Disabled
If checked the field will be disabled, and it cannot be interacted with. You can re-enable a field dynamically by using conditional logic.
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Transform
#### Transform
The transform setting can be used to force the case of the characters that are entered in the field. For example, choosing Uppercase will convert any lowercase characters entered into the field to uppercase. There are four transform options:
Uppercase
Lowercase
Capitalize
Sentence
To see examples of how the transform options work, you can learn more by reading our Transform Strings knowledge base article.
### Duplication
#### No Submission Duplicates
When checked, WS Form will check to see if a duplicate submission exists containing the same value for this field. If found, the submission will not be allowed and a message shown to the user completing the form.
#### Within
This setting lets you specify how recently WS Form should check for duplicates. The available options are:
Setting
Description
All Time
Check all submissions
Past Hour
Check submissions in the past hour
Past Day
Check submissions in the past 24 hours
Current Day
Check submissions since midnight
Past Week
Check submissions in the past 7 days (168 hours)
Past Month
Check submissions in the past month
Past Year
Check submissions in the past year
### Duplication Message
If a duplicate is found, this message will show.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Datalist
Many field types have a datalist option. When a website visitor starts to type in a field, the browser will display options that it believes match what the website visitor is typing in. The website visitor can then click on the datalist option to speed up their data entry. Datalist is also used to provide hints to the website visitor as to the available options that can be entered for a field.
Tip: In some browsers you may need to activate a datalist function for this to work, while some older browsers may not support this feature.
To create datalist suggestions for the field, add rows to the datalist data grid. Data grids make entering lists of information quick and easy. You can also use the data grid to import a CSV file of data into the datalist field, which makes adding large suggestion lists easier than entering them one by one.
For more information about using WS Form data grids, click here.
Hex color references should be entered as color suggestions.
## Combine First and Last Name Fields into a Full Name Field
URL: https://wsform.com/knowledgebase/combine-first-and-last-name-fields-into-a-full-name-field/
Using WS Form PRO variables or conditional logic you can easily create a full name field that is automatically updated when a user enters their first or last n…
Using WS Form PRO variables or conditional logic you can easily create a full name field that is automatically updated when a user enters their first or last name. This is useful if, for example, you have a third party system you need to push a full name field to but you still want to keep the first and last name fields separate for other purposes such as personalizing an email.
## Using Variables
Add text fields for the first and last name.
Add a text field for the full name (you can also make this at hidden field if you wish).
In the Default Value setting of the full name field, enter #text(#field(1)) #text(#field(2)) where 1 is the ID of the first name field and 2 is the ID of the last name field.
Click Save & Close.
## Using Conditional Logic
Add text fields for the first and last name.
Add a text field for the full name (you can also make this at hidden field if you wish).
Click the Conditional Logic icon at the top of the layout editor. The Conditional Logic sidebar will open.
Click the Add icon.
Add the conditional logic as shown in the screenshot below, choosing the first, last and full name fields from your form.
Click Save & Close.
## CommandUI
URL: https://wsform.com/knowledgebase/commandui/
CommandUI is deeply integrated with WS Form, providing users with a seamless way to access and manage forms directly from the WordPress admin interface.
CommandUI is a powerful productivity tool for WordPress that allows you to quickly perform common administrative tasks using a simple command palette. It brings lightning-fast navigation, plugin management, content editing, and more to your fingertips without ever leaving your keyboard. Perfect for developers, power users, and anyone looking to streamline their workflow in WordPress.
CommandUI is deeply integrated with WS Form, providing users with a seamless way to access and manage forms directly from the WordPress admin interface. By pressing a simple keyboard shortcut, users can instantly open CommandUI and perform tasks like creating a new form, editing existing ones, duplicating, previewing, or even accessing WS Form settings.
## Installing CommandUI
You can download CommandUI from their website: https://commandui.com/
## Accessing WS Form Commands
When installed, typing ⌘+K (Mac) or Ctrl+K (Windows/Linux) will open CommandUI and using simple key combinations you can quickly access some of the most popular features of WS Form.
To access the WS Form specific commands, simply type:
ws
You can then filter the list by the form label. You can partially enter the form label so, for example, to filter commands for a form called Contact Us, you could simply type:
ws cont
To edit that form, type:
ws cont edit
## Available Commands
CommandUI allows you to quickly access features such as:
Forms
Add
Edit
Preview
Style
View submissions
Copy shortcode
Styles
Add
Edit
Debug Console
Enable
Disable
Settings
Basic
Advanced
Styling
E-Commerce
License
System
Data
Spam Protection
Reporting
Variables
## Comment Management Integration
URL: https://wsform.com/knowledgebase/comment-management/
The Comment Management integration allows you to add comments to WordPress posts.
Post comments in WordPress allow visitors to engage with content by leaving feedback, asking questions, or sharing their thoughts directly on a post. Comments enhance user interaction, build community, and can contribute to SEO by keeping content fresh and engaging. Each comment typically includes the author’s name, email, and message, and can be moderated by administrators to prevent spam or inappropriate content.
The Comment Management integration allows you to add comments to posts. The integration comes with sample form templates to get you started.
## Installation
The Comment Management plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Comment Management plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Comment Management tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Creating a Form for Comment Management
### Automatically
To automatically create a Comment Management form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Comment Management tab at the top of the page.
Click on a form template.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
You should add forms that include the Comment Management action to pages on your website that contain a post, such as a blog article.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted as a post comment.
To add a Comment Management action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Comment Management from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click on the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Comment Management action settings are as follows:
#### When Should This Action Run?
You can choose to run the Comment Management action when the form is saved, submitted, or both.
#### Post ID
If this field is left blank, the form will use the post ID of the page it’s on. Alternatively, you can enter a specific post ID here if needed. WS Form variables can be used in this field.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in Comment Management. For example you would want to map the Comment field on your form to the WordPress Comment field.
Tip: At minimum, you should map the Comment field. If a user is logged in, the Name and Email field mappings are not required. WS Form will automatically set those to the currently logged in user.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your Form Field.
In the right-hand column, select the corresponding Comment Field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Approved
If this setting is checked, new comments will automatically set as Approved and will appear on your website immediately.
If this setting is not checked, new comments will be set as Pending. The comment will need to be moderated prior to it being shown on your website.
#### Meta
WordPress comment metadata allows developers to store additional information about comments using the commentmeta table. Each comment can have multiple meta fields that store structured data beyond the default fields like author, email, and content.
To add a meta mapping:
Click the Add icon at the bottom right of the meta section.
In the left-hand column, enter the Meta Key.
In the right-hand column, enter the Meta Value. WS Form variables can be used in this setting.
Repeat this process for each meta mapping.
Click the Save button at the bottom of the sidebar to save your changes.
#### Type
Optionally enter a comment type. Leave this blank for normal post comments.
## Remote IP and Agent Tracking
WordPress comments support storing the user's remote IP and agent.
To enable this feature you first need to enable remote IP and/or agent tracking.
Click the Form Settings icon at the top of the layout editor.
Click on the Tracking tab.
Check the Remote IP and/or Agent settings.
Click Save & Close.
## Conditional Logic
URL: https://wsform.com/knowledgebase/conditional-logic/
Conditional Logic provides a way for you to create dynamic forms that change according to the way a user interacts with your form.
Conditional Logic provides a way for you to create dynamic forms that change according to the way a user interacts with your form.
https://www.youtube.com/watch?v=TcvYmjMTbDQ
## Demo
An example of conditional logic might be that you might want to show a particular field or block of text if a checkbox field is checked. Or you might want to show a warning if a range slider is greater than 50%. The possibilities are endless.
## Other examples:
Automatically save the form progress when a Next tab button is clicked
Show shipping address fields is a Use separate shipping address checkbox is checked
Make the form turn green all required fields are complete and the form validates
Show an Almost there! message when a progress bar is equal to or great than 75%
Fire an email action if a user clicks a button
Push partial form completions to an email marketing connector such as Constant Contact or MailChimp
Show additional form fields if the hue of a color field exceeds a certain value
Fire JavaScript when a field is clicked on or changed
## Adding Conditional Logic
To add conditional logic to your form:
Click the Conditional Logic icon at the top of the layout editor. The Conditional Logic sidebar will open.
Click the Add icon.
## Conditional Logic and the Debug Console
The debug console logs all conditional logic activity in the Log tab.
## Conditional Logic Based on Day of the Week
URL: https://wsform.com/knowledgebase/conditional-logic-based-on-day-of-the-week/
This tutorial shows how to create conditional logic that checks the day of a week from a date field.
In this tutorial we will build a WordPress form that shows a message if a date chosen is on a Saturday or Sunday. This same methodology can be used to create any conditional logic that is based on the day of a week.
## Demo
## Tutorial
### Adding Fields
First we add three fields to the form. They are as follows:
Date / Time field
Number field (This could also be a hidden field)
Message field
The Date / Time field is used to select a date. The Number field will contain the day of the week. The Message field will contain the message shown if the day of the week is Saturday or Sunday.
## Setting the Number Field Default Value
The following is added to the Default Value setting of the Number field.
#text(#field_date_format(123, "N"))
This syntax is used to insert the day of a date field:
Breaking this down:
#text keeps the value updated dynamically. If the Date / Time field is changed, WS Form will update this value.
#field_date_format returns a formatted date for a particular field ID. In this tutorial the Date / Time field has an ID of 123 and "N" returns the day of the week from 1 (Monday) through 7 (Sunday).
## Creating the Conditional Logic
The following is an example of the conditional logic that will show the Message field if the chosen Date / Time is a Saturday or Sunday.
## Confirmation Fields
URL: https://wsform.com/knowledgebase/confirmation-fields/
Confirmation fields require users to verify an email address, password, or other text information that has been typed into a form.
Confirmation fields require users to verify an email address, password, or other text information that has been typed into a form. You can add as many confirmation fields as you need on your form using some simple conditional logic.
The tutorial below shows how to build a confirmation field.
## Demo
## Add Fields
First add two text based fields to you form. Fields you can use include:
Text
Email
Password
Tip: The Section Library has a password confirmation fields ready to use.
Simply add the two fields to your form using any layout you wish:
## Add Conditional Logic
Conditional logic is used to compare Field A with Field B. To add conditional logic to your form:
Click the Conditional Logic icon at the top of the layout editor. The Conditional Logic sidebar will open.
Click the Add icon to add a new row.
Enter a label for the row, for example: Compare Fields.
### The IF Statement
To compare Field A with Field B, you add the following for the IF statement:
The IF statement will be true if Field A and Field B do not match.
Below this you will then add the THEN and ELSE statements.
### The THEN and ELSE Statements
In this example we're going to do two things if the fields do not match:
Invalidate the field by setting the invalid feedback message on field B. We'll set the message to say Fields do not match.
Show the invalid feedback on field B.
When the fields do match, we'll do the following:
Remove the invalid feedback message on the field B.
Hide the invalid feedback on field B.
Invalid feedback on a fields is usually only shown on the form when the form is submitted. We can force a field to be invalid by using the Set custom validity method on a field and by adding a class of wsft-validated to the field wrapper.
The resulting THEN and ELSE statements in your conditional logic will therefore look as follows:
The completed conditional logic looks as follows:
You can use this same method to do anything else you wish when two fields do not match, for example instead of showing invalid feedback you should show a message field.
An advantage of using the method above is that it will invalidate fields so that other form functionality reliant on field validation will work correctly such as tab validation.
## Constant Contact Integration
URL: https://wsform.com/knowledgebase/constant-contact/
The Constant Contact integration lets you push new contacts, pull contact data, and create new forms from your lists in a single click on the add form page.
The Constant Contact integration lets you push new contacts using an action, pull contact data using the WS Form autocomplete feature, and create new forms from your lists in a single click on the add form page.
This knowledge base article relates to the Constant Contact V3 integration which uses version 3 of the Constant Contact API.
## Installation
The plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Constant Contact tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Constant Contact
In order to use the integration, you need to connect it to Constant Contact. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Constant Contact tab at the top of the page.
Click Connect and follow the onscreen prompts
If you do not have a Constant Contact account, you can create a new account here.
## Creating a Form for Constant Contact
### Automatically
WS Form can create a form for any of your Constant Contact lists in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a Constant Contact form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Constant Contact tab at the top of the page.
Click on any of your Constant Contact lists to create a form.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the Constant Contact tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to Constant Contact when a user saves or submits their form.
To add the action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a Constant Contact List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The action settings are as follows:
#### When Should This Action Run?
You can choose to run the action when the form is saved, submitted, or both.
#### Constant Contact List
Choose which list to assign the contact to.
Additional List Memberships
Constant Contact supports assigning contacts to more than one list. You can assign a contact to additional lists by using this setting.
To add a list to assign the contact to:
Click the Add icon at the bottom right of the Additional List Memberships setting.
Choose an additional list.
Repeat this process for each list you want the contact to be assigned to.
Click the Save button at the bottom of the sidebar to save your changes.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in Constant Contact. For example you would want to map your Email field to the Email field in Constant Contact.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Constant Contact field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Mapping
Custom mapping allows you to set a Constant Contact field to any value you wish, including the use of WS Form variables. For example you might want to map a lead source hidden field to a custom field in Constant Contact.
To add a custom mapping:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, enter a value or a WS Form variable.
In the right-hand column, select the corresponding Constant Contact field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tags are labels you create to help organize your contacts. You can add any number of tags to a contact.
Tags are identified by a unique ID. The easiest way to obtain those IDs is to create a form using the Constant Contact form template under Add New.
Tags are set by mapping a select, checkbox or radio field containing tag values. To map a tag field:
Click the Add icon at the bottom right of the tags section.
Choose the field on your form to map.
Repeat this process for each field.
Click the Save button at the bottom of the sidebar to save your changes.
#### If Duplicate Found
When a duplicate contact is found with a matching email address you can determine how WS Form should deal with that condition:
Do nothing
Update
Halt (Stops further actions from running)
#### Merge Lists
If Update is chosen under If Duplicate Found, you can check this setting to merge the lists assigned to the contact if an update occurs. If unchecked, the lists assigned to the contact will be replaced.
#### Merge Tags
If Update is chosen under If Duplicate Found, you can check this setting to merge the tags assigned to the contact if an update occurs. If unchecked, the tags assigned to the contact will be replaced.
## Populate Forms Using Constant Contact
As well as pushing form data with this integration, you can also retrieve contact data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a contact in Constant Contact.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose Constant Contact from the Action To Populate From pull-down menu.
Select the list you wish to populate data from in the List To Populate From pull-down menu.
Map the Constant Contact fields to your form fields.
Click Save at the bottom.
Note that if you created your form using a Constant Contact template the field mappings will automatically be created for you.
## Control Actions With Conditional Logic
URL: https://wsform.com/knowledgebase/control-actions-with-conditional-logic/
It is possible to control when WS Form PRO actions run by using conditional logic.
By default an action will run when a form is submitted or saved. It is also possible to control when actions run by using conditional logic. This enables you to do the following when a condition is true (or not true):
Run an action when the form is submitted or saved
Do not run an action when the form is submitted or save
Run an action immediately
You can choose any action you wish for these scenarios, such as sending an email, pushing data to an email marketing service, pushing a message to a Slack channel or even running a WordPress hook. The possibilities are endless!
## Demo
Choose a tab below to see how to set up each of these scenarios:
## Run on Submit / Save
In this example we will show you how to run an action when a condition is met and the form is submitted.
Click the Conditional Logic icon at the top of the layout editor.
Create an IF condition that, when true, will enable the action. In this example, we'll enable the action when a radio with the label Radio 1 is checked:
In the THEN statement, select the action you want to run when the form is submitted. In this example we choose an action called Send Email (Option 1) to be enabled when the form is submitted. You can also choose to enable the action when the form is saved.
In the ELSE statement select the same action and set it to Do not run when form submitted. This will disable the action when the IF condition is false.
Click Save & Close.
## Do Not Run on Submit / Save
In this example we will show you how to not run an action when a condition is met and the form is submitted.
Click the Conditional Logic icon at the top of the layout editor.
Create an IF condition that, when true, will disable the action. In this example, we'll disable the action when a radio with the label Radio 1 is checked:
In the THEN statement, select the action you want to disable when the form is submitted. In this example we choose an action called Send Email (Option 1) to be disabled when the form is submitted. You can also choose to disable the action when the form is saved.
In the ELSE statement select the same action and set it to Run when form submitted. This will enable the action when the IF condition is false.
Click Save & Close.
## Run Immediately
In this example we will show you how to immediately run an action when a condition is met.
Click the Conditional Logic icon at the top of the layout editor.
Create an IF condition that, when true, will immediately run the action. In this example, we'll run the action when a radio with the label Radio 1 is checked:
In the THEN statement, select the action you want to run immediately. In this example we choose an action called Send Email (Option 1) to be run. You can also choose to run the action when the form is saved.
Click Save & Close.
## Conversational Forms
URL: https://wsform.com/knowledgebase/conversational-forms/
Conversational forms present each form section to the user in turn instead of showing the entire form at once.
Conversational forms present questions one-by-one instead of showing the entire form at once. This makes completing the form easier, improving conversion rates and user satisfaction. They are presented as a full screen form on a dedicated page, allowing for larger, easier to read fields.
## Demo
To view a demo of a conversational form, visit: https://wsform.com/conversational/
## Features
Conversational forms have the following features:
Add unlimited sections and fields to your form.
No integrations or coding required.
Fully customizable colors, fonts and layouts.
Enqueue your own CSS for advanced styling.
Compatible with conditional logic, calculated fields and variables.
Fully integrated with WS Form actions.
Fully mobile responsive.
## A Few Rules
Conversational forms require forms to be developed in a certain way to work correctly.
The WS Form framework must be used. Conversational forms are not compatible with Bootstrap or Foundation frameworks.
Sections should be 100% width.
Tabs should not be used.
For date fields, we recommend using the Inline setting.
Conversational forms cannot be embedded onto other pages. The form is located on a dedicated URL to allow for a full page format.
## How It Works
Each section of your form becomes a step in your conversational form and each section can contain any number of fields. We recommend keeping each section to one or two fields for an optimum user experience.
Conversational forms reside on a full website page at a permalink determined by you.
## Getting Started
To help you get started we have created a Conversational form template. You can find it here:
Click on WS Form in the WordPress administration menu.
Click Add New.
Click on the Survey tab, then choose the Conversational template.
This will create form that contains an introductory section and a selection of section examples that you can customize to your own preference.
## Enabling Conversational on an Existing Form
The conversational form feature is disabled by default. To enable it:
Click the form settings icon at the top of the layout editor when editing a form.
Click the Conversational tab.
Check the Enable setting.
Click Save.
## Previewing the Form
You can preview the conversational form by clicking the Preview button in the conversation tab. If you have Live Preview enabled in Global Settings, the preview will automatically update as you edit your form.
## Permalink
Once enabled, WS Form will create a permalink for your conversational form. By default, the permalink is:
https://yourwebsite.com/wsft-conversational-form-123/
... where 123 is the ID of your form.
You can customize the permalink as follows:
Click the form settings icon at the top of the layout editor.
Click the Conversational tab.
Enter any slug you wish into the URL Slug setting.
Click Save.
Be sure not to enter an existing slug used by another page or post.
Your form must be published in order to be seen at the permalink.
## Setting Section Heights
You can set any sections of the conversational form to have a height of 100% so that it fills the screen completely. This is useful for an introductory section such as is found in the Conversational form template (see Getting Started above) or for providing an effect where you only ever see one section at a time.
To set a section height:
Hover your mouse over a section.
Click the section settings icon.
Click the Advanced tab.
Check the Full Height (Conversational) checkbox.
Click Save.
## Customizing Appearance
To customize the appearance of your conversational form you can either use the WordPress customizer, or enqueue your own CSS file.
### Customizer
To access the customizer feature:
Click the form settings icon at the top of the layout editor.
Click the Conversational tab.
Click Customize.
Use the WordPress customize feature to change colors, fonts and layout settings.
Click Publish to save your changes.
### Enqueue Your Own CSS
To enqueue your own CSS, you can use the wsf_conversational_enqueue_styles action.
Sample code this can be found below:
// Callback function for the wsf_conversational_enqueue_styles action hook
function my_hook_function() {
// CSS file URL
$css_file_url = sprintf( '%s/conversational-form.css', get_bloginfo( 'template_directory' ) );
// Enqueue CSS file
wp_enqueue_style( 'conversational-form', $css_file_url );
}
// Add a callback function for the wsf_conversational_enqueue_styles action hook
add_action( 'wsf_conversational_enqueue_styles', 'my_hook_function', 10, 0 );
## Navigation
By default, conversational forms have a navigation bar shown at the bottom of the page. It includes a progress bar and navigation icons for moving up and down the sections. The progress is determined by the number of required fields that have been completed.
The Conversational tab in Form Settings has the following settings for the navigation bar:
### Enable
Uncheck this option if you wish to remove the navigation bar from the conversational form.
### Progress Help
This setting enables you to add smaller text under the progress bar. By default it shows he progress as a percentage, e.g. 25%.
The following variables can be inserted into this field:
Progress
#progress
The form progress represented as a number from 0 to 100.
#progress_percent
The form progress represented as a percentage from 0% to 100%.
#progress_remaining
The remaining form progress represented as a number from 100 to 0.
#progress_remaining_percent
The remaining form progress represented as a percentage from 100% to 0%.
Other WS Form variables can also be entered into this field.
### Scroll Duration (ms)
Use this setting to configure the time it takes to vertically scroll between sections. This value defaults to 300ms.
## Conversion Bridge
URL: https://wsform.com/knowledgebase/conversion-bridge/
Learn how to track WS Form submissions as conversions using Conversion Bridge with a simple, no-code setup.
Conversion Bridge is a WordPress plugin that enables conversion tracking without the need for manual scripts, tags, or complex configuration. It connects your website, including WS Form, directly to analytics and advertising platforms such as Google Analytics, Google Ads, Meta Ads, and more.
By automatically sending form submissions and other user actions as conversion events, Conversion Bridge provides accurate, real-time tracking while simplifying setup and ongoing maintenance.
This guide explains how to track WS Form submissions as conversions using Conversion Bridge.
## Prerequisites
Before configuring your form, you must install and activate the Conversion Bridge plugin.
Download the Conversion Bridge plugin from: https://conversionbridgewp.com
Install and activate the plugin in WordPress
Configure your desired integrations, such as Google Analytics, Google Ads, or Meta Ads, in Conversion Bridge settings
## Adding Conversion Tracking to a WS Form
Follow these steps to track form submissions as conversions:
### 1. Edit Your Form
Open your form in WS Form.
### 2. Open the Actions Panel
Click the Actions icon at the top of the form layout editor.
### 3. Add the Conversion Bridge Action
Click the Add Action icon.
Select Conversion Bridge.
### 4. Configure the Action (Optional)
You can optionally configure the following fields:
Label
A name for the conversion event
Value
A numeric value associated with the conversion
Conversion Data
Key/value pairs to send additional data
### 5. Save & Publish the Form
Save and publish your form to apply the changes.
Form submissions will now be sent to Conversion Bridge as conversion events.
## Sending Custom Data
You can pass additional data using the Conversion Data setting.
Use key/value pairs
WS Form variables can be used for dynamic values
Example:
plan = #field(123)
source = contact_form
## Enhanced Conversion Data
Conversion Bridge supports enhanced conversion data.
You can include fields such as:
_email
_first_name
_last_name
_phone
Ensure compliance with applicable privacy regulations when sending personal data.
## Conversion Tracking Action
URL: https://wsform.com/knowledgebase/conversion-tracking/
The Conversion Tracking action allows you to fire conversion tags for Google Analytics and other analytics events.
The Conversion Tracking action allows you to fire conversion tags for:
Google Tag Manager (Data Layer)
Google Analytics
Fathom Analytics
Facebook (Standard)
Facebook (Custom)
LinkedIn (Insight Tag)
## Adding a Conversion Tracking Action
To add a Conversion Tracking action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the side of the page.
Click the Add icon to add a new action.
Select Conversion Tracking from the Action pulldown. A series of settings will appear.
The Conversion Tracking action settings are as follows:
### When Should This Action Run?
You can choose to run the WordPress hook when the form is saved, submitted, or both.
### Type
Select the type of hook you would like to run:
Google Tag Manager (Data Layer)
Google Analytics
Fathom Analytics
Facebook (Standard)
Facebook (Custom)
LinkedIn (Insight Tag)
#### Google Tag Manager (Data Layer)
In order to fire a Google Tag Manager event, you need to install a GTM tag on your site.
The Google Tag Manager settings for the Conversion Tracking action are as follows:
SettingDescription
Data Layer VariablesYou can add any number of variables to the data layer for the event. You can enter straight text or use a WS Form variable in the value. For more information about WS Form variables, click here.
#### Google Analytics (gtag, ga or _gaq)
In order to fire a Google Analytics event, you need to install a Google Analytics tag on your website.
The Google Analytics settings for the Conversion Tracking action are as follows:
SettingDescription
Event Category
A category is a name that you supply as a way to group objects that you want to track. Typically you will use the same category name multiple times over related UI elements that you want to group under a given category.
For example: Form - #form_label
Event Action (Optional)
Typically you will use the action parameter to name the type of event or interaction you want to track for a particular web object.
For example: Submitted
Event Label (Optional)
With labels you can provide additional information for events that you want to track.
For example: Contact Us
Event Value (Optional)(Numeric)
Value differs from the other components in that it is an integer rather than string, so use it to assign a numerical value to a tracked page object.
For example: the perceived value of a lead in dollars, such as 123.
Data Layer VariablesYou can add any number of variables to the data layer for the event. You can enter straight text or use a WS Form variable in the value. For more information about WS Form variables, click here.
You can enter straight text or use a WS Form variable in these settings. For more information about WS Form variables, click here.
#### Fathom Analytics
SettingDescription
Event NameEnter a Fathom event name. Event names can be anything, but most importantly, they need to be something you (and your team) can easily and instantly recognize so you know what each event conversion means. Learn more
CentsOptionally enter a value in cents. 100 = $1.
Site IDOptionally enter a site ID to attribute the event to that specific site.
You can enter straight text or use a WS Form variable in these settings. For more information about WS Form variables, click here.
#### Facebook (Standard)
In order to fire a Facebook Tracking Pixel event, you need to install a Facebook Tracking Pixel on your website.
The Facebook (Standard) settings for the Conversion Tracking action are as follows:
SettingDescription
Event NameSelect the event name you want to fire. For more information on these events, click here.
Object Properties (Optional)You can add any number of object properties to the event. For more information on these object properties, click here.
You can enter straight text or use a WS Form variable in these settings. For more information about WS Form variables, click here.
#### Facebook (Custom)
In order to fire a Facebook Tracking Pixel event, you need to install a Facebook Tracking Pixel on your website.
The custom Facebook option allows you to manually type in the event name and specify each object property yourself as key value pairs.
The Facebook (Custom) settings for the Conversion Tracking action are as follows:
SettingDescription
Event NameEnter the event name you want to fire. For more information, click here.
Object Properties (Optional)You can add any number of object properties to the event. For more information, click here.
You can enter straight text or use a WS Form variable in these settings. For more information about WS Form variables, click here.
#### LinkedIn (Insight Tag)
In order to fire a LinkedIn conversion event, you need to install a LinkedIn InSight Tag on your website.
The LinkedIn (InSight Tag) settings for the Conversion Tracking action are as follows:
SettingDescription
Conversion IDEnter the conversion ID want to fire.
## ConvertKit Integration
URL: https://wsform.com/knowledgebase/convertkit/
The ConvertKit integration lets you add subscribers to forms, sequences and tags.
The ConvertKit integration lets you add subscribers to forms, sequences and tags. Create new forms the automatically include your custom fields and tags in a single click.
## Installation
The ConvertKit plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the ConvertKit plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the ConvertKit tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to ConvertKit
In order to use the integration, you need to connect it to ConvertKit. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the ConvertKit tab at the top of the page.
Enter your API key which can be found on your ConvertKit Account Info page.
Click Save Settings,
If you do not have a ConvertKit account, you can create a new account here.
## Creating a Form for ConvertKit
### Automatically
WS Form can create a form for any of your ConvertKit forms in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a ConvertKit form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the ConvertKit tab at the top of the page.
Click on any of your ConvertKit forms.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your form does not appear, click the refresh icon in the ConvertKit tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to ConvertKit when a user saves or submits their form.
To add an ConvertKit action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to ConvertKit from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The ConvertKit action settings are as follows:
#### When Should This Action Run?
You can choose to run the ConvertKit action when the form is saved, submitted, or both.
#### ConvertKit Form
Choose the ConvertKit Form you would like the subscriber to be added to. If you have created a new form since viewing this screen, you can click the refresh icon to retrieve the new list.
#### ConvertKit Sequence (Optional)
Choose the ConvertKit Sequence you would like the subscriber to be added to. If you have created a new sequence since viewing this screen, you can click the refresh icon to retrieve the new list.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked, opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in ConvertKit. For example, you would want to map your Email field to the Email field in ConvertKit.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding ConvertKit field. If you added any custom fields they will be shown here too.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Mapping
Custom mapping allows you to push custom values (including WS Form variables) to ConvertKit fields.
To create a custom mapping:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, enter the value you would like to map to a ConvertKit field.
In the right-hand column, select the corresponding ConvertKit field. If you added any custom fields they will be shown here too.
Repeat this process for each ConvertKit field.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tag mapping tells WS Form which of your form fields relate to tags in ConvertKit.
To map a field:
Click the Add icon at the bottom right of the tag mapping setting.
Select your form field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Tag mapping fields need to be a choice field, such as Select, Checkbox, or Radio fields. The values should be the corresponding tag IDs found in ConvertKit.
If you use the automatic method above, WS Form PRO will automatically build interest mapping options for you.
#### Tag Assignment
You can also choose which tag to assign the subscriber to using this setting.
To assign a tag:
Click the Add icon at the bottom right of the tag assignments setting.
Choose a tag.
Repeat this process for each tag you want to assign to the subscriber.
Click the Save button at the bottom of the sidebar to save your changes.
## ConvesioPay Integration
URL: https://wsform.com/knowledgebase/convesiopay/
The ConvesioPay integration allows you to accept credit card payments from your forms.
Note: You must serve the page containing the payment form over HTTPS. In short, the address of the page containing ConvesioPay must start with https:// rather than just http://. For more information, click here.
The ConvesioPay integration allows you to accept credit card payments from your forms. You can either charge a fixed amount using the button in isolation, or you can use the WS Form E-Commerce fields to produce more advanced cart options.
## How it Works
The ConvesioPay payment process works as follows:
Customer enters their credit card details on the form.
The credit card details are sent to ConvesioPay client-side and are securely tokenized.
If tokenization is successful (e.g. the card number is correct), the form is submitted.
A payment is created server-side using the token.
If the card payment is successful, the rest of the action configured on the form are run.
If the card payment is not successful, an error is shown on the form.
New payments will have a transaction status of Pending.
When the payment clears the transaction status will update to Succeeded.
## Register For ConvesioPay
If you do not yet have a ConvesioPay account, register for a new account.
## Installation
The WS Form ConvesioPay plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the ConvesioPay integration, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the ConvesioPay tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Configuring ConvesioPay
### Obtaining ConvesioPay API Keys
In order to use the ConvesioPay fields on your form, you first need to enter your ConvesioPay keys.
To obtain your API keys:
Log in to your ConvesioPay account.
From your Dashboard, click Advanced Settings.
Under Checkout API Settings, there are three keys you will need to obtain:
API Key (Click: Get Your API Key).
Secret Key (Click: Generate a Secret Key).
Client Key (Click: Generate Client Keys).
Each account in ConvesioPay is either a test or live environment. Ensure you set the Environment setting to match the environment you currently want to use when submitting your form.
### Entering Your API Keys
To enter your publishable keys:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the ConvesioPay tab at the top of the page.
Enter your test or live keys.
Click the Save button.
### Configuring the Webhook
The webhook accepts requests from ConvesioPay to update transaction information such as the status (e.g. if a Pending transaction is changed to Succeeded). Status updates will not occur unless the webhook is configured.
To set up the webhook:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the ConvesioPay tab at the top of the page.
You will see four webhook values:
Webhook Name
Webhook Integration Name
Webhook Signature (A signature is automatically generated for you, but you can change it prior to setting up the webhook if you wish)
Webhook URL
Keeping the WS Form settings page open, open a new tab and go to your ConvesioPay dashboard.
Click on Advanced Settings.
Under Checkout API Settings, click on Register Webhooks.
Copy and paste the four settings above into the Register Webhooks fields.
Click Register Webhook.
## Form Templates
WS Form provides two form templates that you can use to get started. To use one of the templates:
Click on Add New from the WS Form admin menu.
Click on the ConvesioPay tab.
Choose the Basic or Advanced ConvesioPay template.
You can add any other fields you wish to these templates.
## ConvesioPay Fields
The ConvesioPay fields appear under the E-Commerce section of the Build when editing a form. Two fields types are added:
ConvesioPay - The user enters their credit card details here.
ConvesioPay Submit - The user clicks this to submit their credit card details.
You can place the ConvesioPay and ConvesioPay Submit fields anywhere you like on the form.
## Form Suggestions
If you are manually adding the ConvesioPay fields to your form, here are a few suggestions:
Enable the Loader. This will ensure users are aware their transaction is processing.
Ensure you use the ConvesioPay Submit field instead of the regular Submit button.
You can use the #convesiopay_transaction_id WS Form variable in the Show Message action or other integrations.
## Settings
The majority of the settings are found in the ConvesioPay field settings. To access the settings sidebar, click the settings icon on the ConvesioPay field.
The ConvesioPay Submit field acts like a regular custom button field type. Please refer to that field type for more information about the settings.
The ConvesioPay field settings are split into Basic and Advanced tabs in the sidebar as are detailed below:
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown above the credit card entry field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, Credit or Debit Card.
### Render Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Label Position
There are five options you can choose from for positioning your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the Form Settings advanced tab. For new forms this will be the Top positioning.
Note that when using some frameworks, some label positions may not be available.
### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to Default Label Width and change the setting. 4. Click Save at the bottom.
### Hidden
If checked, the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### Transaction
#### Amount To Charge
By default this field is blank, and the ConvesioPay button will charge the amount calculated by the e-commerce fields on your form (the same as entering #ecommerce_cart_total). For example, you might have a single price field for making a donation, or a more elaborate form with prices, quantities, and subtotals.
You can also enter a fixed amount into this field.
WS Form variables can be entered into this field.
#### Currency
ConvesioPay currently supports US Dollars.
#### Payment Reference
Enter a payment reference for the transaction. This defaults to WSF-#submit_id.
WS Form variables can be entered into this field.
#### Description
Enter the description of the transaction in this field. For example: Payment To My Blog.
WS Form variables can be entered into this field.
The description is shown in a single line item for the transaction.
### Customer
#### Name
Use this field to specify the name of the payer. If you have text fields for first and last names, you would enter something such as:
#field(1) #field(2)
WS Form variables can be entered into this field.
#### Email
Choose an email field from your form to use for the payer's email address.
#### Pass User to Component
If checked, WS Form will use the currently logged in users email address to identify the custom completing the payment form. This allows ConvesioPay to show stored payment methods on the form.
#### Billing Address Mapping
Use the billing address mapping option to specify which fields on your form relate to the different parts of the billing address.
To map your form fields to ConvesioPay billing address fields:
Click the Add icon at the bottom right of the billing address mapping section.
In the left-hand column, select a field from your form.
In the right-hand column, select the corresponding ConvesioPay billing address field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Shipping Address Mapping
Use the shipping address mapping option to specify which fields on your form relate to the different parts of the shipping address.
To map your form fields to ConvesioPay shipping address fields:
Click the Add icon at the bottom right of the shipping address mapping section.
In the left-hand column, select a field from your form.
In the right-hand column, select the corresponding ConvesioPay shipping address field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Language
Choose a language to display the credit card form in. Choose Auto Detect to use the browser locale.
## Advanced
### Styles
Use the Styles settings to change the design of the credit card entry field.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Transaction
#### Zero Amount
You can configure how WS Form should handle zero amounts for ConvesioPay buttons. In some cases you may wish to show an error message (e.g., a donation amount is set to zero). In other cases you may wish to still submit the form (e.g., if something is determined to be free). Select the appropriate action from the pull-down list.
#### Zero Amount Message
If you opt to show an error message, enter the error message you would like be shown here.
### Messages
#### Error Messages
WS Form PRO processes any error messages as standard WS Form messages. The error message settings match those of the Show Message action. You can configure these options to change how the error messages are displayed to users.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when the credit card information entered is not valid, or if a transaction fails. If this setting is checked, invalid feedback is shown under the field.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Variables
The ConvesioPay integration introduces additional variables that you can use in actions such as messages and emails.
## Cookies
URL: https://wsform.com/knowledgebase/cookies/
Cookies are small text files stored in a web user's browser.
Cookies are small text files stored in a web user's browser. The cookies used by WS Form contain no identifiable information and are used to personalize a users experience when completing forms.
## Cookie Settings
To access the cookie settings:
Click on WS Form from the WordPress admin menu.
Click on Settings.
Click on the Advanced tab.
The cookie settings are as follows:
### Cookie Timeout (Seconds)
This setting determines how long a cookie will stay valid (session duration). The default value is 28 days (2419200 seconds).
### Cookie Prefix
This setting determines what the prefix of the cookies will be. This defaults to ws_form.
## Filter Hook
If you want to set the cookie expiry dynamically, you can use this PHP filter hook: wsf_cookie_expiry
## Cookie Descriptions
All cookies are session based and are not persistent.
The following cookies are created and used by WS Form.
### Save Form Hash
[cookie_prefix]_[form_id]_hash
Example: ws_form_1_hash
This preference cookie is used to anonymously recall form data if the form Save feature is used.
This cookie is only set if the Enable Save Cookie setting is enabled in Settings. This setting is enabled by default.
This cookie is cleared when the form is submitted or it expires.
### Tab Index
[cookie_prefix]_[form_id]_tab_index
Example: ws_form_1_tab_index
This preference cookie is used to anonymously remember the last tab someone accessed for a particular form.
This cookie is only set if the Remember Last Tab Clicked setting is enabled in Form Setting. This setting is enabled by default.
This cookie is cleared when it expires.
### Duration
[cookie_prefix]_[form_id]_date_start
Example: ws_form_1_date_start
This statistics cookie is used to anonymously determine how long it has taken for a user to complete the form. It stores the date of when the form was first shown. The duration is shown when a submission is view on the Submissions page.
This cookie is only set if the Duration tracking setting is enabled in Form Setting. This setting is enabled by default.
The cookie is cleared when the form is submitted or it expires.
## Create a Contact Form in WordPress
URL: https://wsform.com/knowledgebase/how-to-create-a-contact-form-in-wordpress/
In this tutorial, we’ll show you how to create a contact us form for WordPress using WS Form.
In this tutorial, we’ll show you how to create a contact us form in WordPress using WS Form. You'll learn how to create, preview and publish your form.
https://www.youtube.com/watch?v=yALv5Ssb5NM
To get started, we’re going to install a form builder plugin for WordPress. I’m going to be using WS Form in this tutorial.
To install the plugin, we need to login to the WordPress admin. To do this, we go to our website address with wp-admin added to the end.
Next we enter our username and password and then click Log In.
Once the WordPress Dashboard is shown, click on Plugins and then click Add New.
Next, let’s search for WS Form.
Click Install Now to install the plugin and then click Activate.
You’ll now see WS Form in the WordPress admin menu. To create our first form, lets click on Add New. You can either do this from the WordPress Administration menu, or you can use the toolbar menu at the top of the page.
The first time we use WS Form, it’s going to ask you a few questions to personalize your experience. In this tutorial, we’ll choose the Keep It Simple option.
WS Form shows a brief introductory video that explains how to build your first form. It’s a helpful video that shows you how to use the layout editor and preview forms.
Next, we click Get Started.
WS Form comes with various templates to help get you started.
You can also install integrations for third party integrations such as MailChimp, Salesforce and Slack. When you do that, additional templates are made available.
For this tutorial, we’re going to use the Contact Us template. Let’s click that template to build our form.
So, as you can see, WS Form has built a form for us in the layout editor. It has added the normal fields you would expect to see on a contact form plus a GDPR compliance checkbox for requesting consent.
To preview the form, let’s click on the Preview button at the top of the layout editor.
WS Form shows us the form in your website theme so that you can test it. Let’s complete the form and submit it.
If we go back to the layout editor tab, we can click Submissions to view the form we just submitted. The nice thing about the free version of WS Form is that the ability to see your form submissions within WordPress is included.
Now, you might want to change the email address that your form submissions are sent to. To do this, we’ll click on the Edit button at the top of the page to get back to the layout editor.
Then we’ll click the Actions icon . It’s the icon with a lightning bolt on it.
So, what are actions? Well, actions run whenever a form is submitted and you can add as many of them as you like. For example, you could can show a thank you message or redirect to different web page. As you can see, WS Form has already added a Send Email action, so let’s edit that.
Click the settings icon . Then, under the To section we can change the address that the email notification is sent to.
Then click the Save & Close button.
Let’s also add another field to the form to request a company name. To do this you simply drag and drop a text field from the Build to the form.
Once you have added it you can immediately rename the field then type Return to save it.
Because we made a change to the form, our preview tab has been automatically updated and we can immediately test the form again.
Now that we’ve created a form, we need to add it to a page on our website.
Before adding the form, we need to click the Publish button in the layout editor. This makes any changes we have made to the form public.
Now that the form is ready, let’s create a new Contact Us page for our form. To do this, click on Add New under Pages in the WordPress menu.
Give the page a title, and then click on the Add icon to add a block to our page. Search for WS Form and click on the icon to add the block.
Now we need to choose the form we just created from the side menu. You’ll notice that a preview of the form is shown in the WordPress editor.
The last step is to click Publish on the page itself and then we can click View Page to view our new web page.
In addition to adding forms using a block, you can also use a WordPress shortcode, Widget or you can use the WS Form module in visual editors such as Beaver Builder, Divi and Elementor.
And that’s how easy it is to create a contact form in WordPress using WS Form!
## Create a Copy to Clipboard Button
URL: https://wsform.com/knowledgebase/create-a-copy-to-clipboard-button/
With WS Form's powerful conditional logic, you can easily create a Copy to Clipboard button that allows users to copy the value of any text-based field on your…
With WS Form's powerful conditional logic, you can easily create a Copy to Clipboard button that allows users to copy the value of any text-based field on your form.
## Demo
## Compatible Field Types
You can copy text from the following field types:
Text
Text Area
Number
Phone
Email
URL
Date/Time
Color
## The Conditional Logic
Here is an example of the conditional logic used to create the above demo.
IF [Button] [Clicked]
THEN [Text Field] [Copy to Clipboard]
Optional to show successful copy: THEN [Button] [Set Label] "Copied!"
## Create a Custom Integration with WS Form
URL: https://wsform.com/knowledgebase/create-a-custom-integration-with-ws-form/
Learn how to create custom integrations with WS Form using webhooks, WordPress hooks, automation platforms like Make and Zapier, and custom validation hooks.
WS Form includes over [ws_form_total_integrations] integrations with popular third-party services, including email marketing platforms, CRMs, automation tools, payment gateways, spreadsheets, cloud storage platforms, and more.
If the service you want to connect to is not natively supported, you can still create a custom integration using the extensibility features built into WS Form.
This article explains the best ways to create a custom integration with WS Form, including webhooks, WordPress hooks, automation platforms, integration integrations, and custom validation hooks.
## Custom Integration Options
The main options for creating a custom integration are:
Webhook action
Run WordPress Hook action
Make integration
Zapier integration
For validation integrations, you can also use:
wsf_submit_field_validate
wsf_submit_validate
## Option 1: Use the Webhook Action
The Webhook action is often the best place to start when you want to send WS Form submission data to an unsupported third-party service.
A webhook allows WS Form to push form submission data to a URL endpoint using HTTP request methods such as POST, GET, PUT, DELETE, or PATCH.
### When to Use a Webhook
Use the Webhook action when the service you want to connect to provides an endpoint that can receive data.
Common use cases include:
Push a form submission to a custom endpoint
Push a form submission to a third-party service that WS Form does not natively integrate with
Make a request to an API and use returned data to populate form fields
Pre-load a form with statistical data from an endpoint
Create lookup functionality, such as a vehicle VIN lookup
Send leads, enquiries, orders, or registrations to an external system
### Webhook Configuration
When configuring the Webhook action, you can choose when the action should run, enter the endpoint URL, choose the request method, and select the content type.
Supported request methods include:
POST
GET
PUT
DELETE
PATCH
Supported content types include:
JSON
URL encoded
### Field Mapping
The Webhook action uses Field Mapping to control which form fields are sent to the endpoint.
For each field mapping, you select a field from your form and enter the key name that should be used in the request data.
Example field mappings might include:
Name field mapped to name
Email field mapped to email
Phone field mapped to phone
Company field mapped to company
You can use simple key names, such as first_name, or more advanced key names using dot notation, such as person[0].name.first.
### Custom Mapping
Custom Mapping lets you send additional key and value pairs to the endpoint.
This is useful if you need to send static values, WS Form variables, tracking values, hidden values, or other data that is not directly mapped from a single form field.
### Header Mapping
Header Mapping lets you add HTTP headers to the request.
This is commonly used for:
API keys
Authorization headers
Content negotiation
Custom headers required by the endpoint
### Processing the Webhook Response
The Webhook action can process the response returned by the endpoint.
If Process Response is enabled, WS Form can use Response Code Mapping and Response Field Mapping.
Response Code Mapping lets you decide how different HTTP status codes should be handled. For example, a response code can be ignored, used to process response field mapping, used to throw an error, or used to halt action processing.
Response Field Mapping lets you map JSON data returned from the endpoint back into form fields.
This is useful for integrations that return:
A customer ID
A quote value
A status message
A reference number
A validation result
Data that should be used by later actions
### Testing Webhooks
When building a webhook integration, it can be useful to test the request using a service such as Webhook.site.
You can enter the test URL as the webhook endpoint, submit your form, and inspect the request that WS Form sends.
## Option 2: Use the Run WordPress Hook Action
The Run WordPress Hook action lets developers run a WordPress action or filter when a user saves or submits a form.
This is a powerful option when you need to run custom PHP code as part of the form submission process.
### When to Use Run WordPress Hook
Use Run WordPress Hook when you need more control than a webhook or automation platform provides.
Common use cases include:
Run custom PHP code when a form is submitted
Modify submission data before other actions run
Connect to a proprietary system
Write data to a custom database table
Call one or more APIs
Set a spam level
Return a custom message
Redirect the user
Halt action processing
### Hook Types
The Run WordPress Hook action can run either:
A filter using apply_filters
An action using do_action
When configuring the action, you enter the hook tag that you want WS Form to run.
### Action Priority
You can choose when the hook should run:
Before submission created
Before other actions
After other actions
Use Before submission created or Before other actions if you need to manipulate field values before other actions run.
Use After other actions if you need to use data created by another action.
### Example WordPress Filter
The following example shows the general pattern for using a filter with the Run WordPress Hook action.
add_filter('wsf_filter_tag', 'wsf_filter_function', 10, 2);
function wsf_filter_function($form, $submit) {
$meta_key = 'field_123';
$field_value_old = $submit->meta[$meta_key]['value'];
$field_value_new = str_replace('replace_this', 'with_this', $field_value_old);
$submit->meta[$meta_key]['value'] = $field_value_new;
return $submit;
}
In this example, field_123 should be changed to match the ID of the field you want to work with.
## Option 3: Use an Automation Platform
Automation platforms are a good option if you want to connect WS Form to another app without writing custom code.
WS Form provides integrations for automation platforms such as Make and Zapier.
### Make Integration
The Make integration allows you to integrate WS Form submissions with thousands of apps using Make scenarios.
Make was formerly called Integromat.
To use the Make integration, you create a scenario in Make, choose the WS Form submission trigger, connect Make to WS Form using the API URL and API key from the WS Form Make settings, and choose the published form you want to use.
Make can then use your form fields and submission fields in filters and mappings.
### Zapier Integration
The Zapier integration allows you to send WS Form submissions to Zapier.
To use the Zapier integration, you create a Zap, choose the WS Form New Submission trigger, connect Zapier to WS Form using the API URL and API key from the WS Form Zapier settings, and choose the published form that should trigger the Zap.
Zapier can then pass WS Form submission data to other apps.
### Important Notes About Make and Zapier
For Make and Zapier integrations:
You need WS Form PRO.
The integration must be installed and licensed.
You need at least one published form.
You need at least one submission to help configure the scenario or Zap.
The WordPress REST API must be enabled and accessible so Make or Zapier can retrieve submission data from your site.
### Example Automation Workflows
Automation platforms are useful for workflows such as:
Create a CRM contact
Add a subscriber to an email marketing list
Create a task in a project management system
Add a row to a spreadsheet
Send a notification to a team communication tool
Pass form submission data to another app in a multi-step workflow
## Custom Validation Integrations
Some integrations need to validate data before the form submission is accepted.
For example, you might need to check an email address, verify a membership number, perform a fraud check, or validate data against an external system.
WS Form provides validation hooks that allow developers to add custom server-side validation.
### Field-Level Validation
Use wsf_submit_field_validate when you need to validate each field as a form is submitted.
This filter hook receives information such as the field ID, submitted field value, repeatable section index, post mode, and partial submit object.
Use field-level validation for:
Email address validation
Phone number validation
Disposable email blocking
Username availability checks
Membership number validation
Field-specific API checks
If validation fails, your hook function adds one or more errors to the error action array and returns it to WS Form.
Errors can be shown as field invalid feedback, form messages, or redirects.
### Field Validation Example
add_filter('wsf_submit_field_validate', 'my_field_validation', 10, 6);
function my_field_validation($field_error_action_array, $field_id, $field_value, $section_repeatable_index, $post_mode, $submit) {
if($post_mode !== 'submit') {
return $field_error_action_array;
}
if($field_id === 123 && empty($field_value)) {
$field_error_action_array[] = 'Please enter a value for this field.';
}
return $field_error_action_array;
}
### Submission-Level Validation
Use wsf_submit_validate when you need to validate the full form submission.
This filter hook is useful for validation that depends on more than one field or on business rules that apply to the submission as a whole.
Use submission-level validation for:
Cross-field validation
Duplicate submission checks
Customer record validation
Fraud checks
Eligibility checks
Custom business rules
If validation fails, your hook function adds one or more errors to the error action array and returns it to WS Form.
### Submission Validation Example
add_filter('wsf_submit_validate', 'my_submit_validation', 10, 3);
function my_submit_validation($field_error_action_array, $post_mode, $submit) {
if($post_mode !== 'submit') {
return $field_error_action_array;
}
$validation = false;
if(false === $validation) {
$field_error_action_array[] = array(
'action' => 'message',
'message' => 'The submission could not be validated.'
);
}
return $field_error_action_array;
}
## Which Custom Integration Method Should You Use?
RequirementRecommended option
Send submission data to an external endpointWebhook action
Map returned JSON data back into form fieldsWebhook action
Build a no-code workflow with thousands of appsMake or Zapier
Use an existing WS Form integrationConnector integrations
Run custom PHP during form processingRun WordPress Hook action
Validate an individual fieldwsf_submit_field_validate
Validate the whole submissionwsf_submit_validate
## Recommended Approach
For most custom integrations, start with the simplest option first.
Check whether WS Form already has a native integration integration for the service.
Use the Webhook action if the service provides an endpoint that can receive data.
Use webhook response mapping if the endpoint returns JSON data that should be added back to the form.
Use Make or Zapier if you want a no-code workflow that connects WS Form to other apps.
Use the Run WordPress Hook action if you need custom PHP logic during form processing.
Use wsf_submit_field_validate or wsf_submit_validate if your integration needs to validate data before the submission is accepted.
## Conclusion
WS Form is designed to be extensible, so you are not limited to the integrations that are available out of the box.
For many custom integrations, the Webhook action is the best starting point because it can push submission data to an endpoint, map selected fields to request keys, add custom mappings and headers, and process returned JSON data.
For no-code workflows, use the Make integration, the Zapier integration, or another WS Form integration integration.
For developer-led integrations, use the Run WordPress Hook action or the WS Form validation hooks to build custom PHP processing and server-side validation.
## Create a Customizable T-Shirt Product
URL: https://wsform.com/knowledgebase/creating-customizable-t-shirt/
This tutorial explains how we created the customizable t-shirt product demo.
This tutorial explains how we created the customizable t-shirt product demo. In this demo, the color of the t-shirt changes when a color field on the form is changed. This is achieved by changing the color of an element in an SVG file.
## Demo
[ws_form id="13568"]
The tutorial requires:
WS Form PRO WordPress plugin.
WS Form PRO Product Integrations WooCommerce extension.
tshirt.svg SVG file.
tshirt.json form file.
Our WooCommerce demo site also feature text editing (not included in this tutorial). You can download the full t-shirt form file here: tshirt-full.json
## The SVG File
If you would like to learn more about the SVG format, click here. You can create SVG files using popular vector software such as Adobe Illustrator or Sketch.
The tshirt.svg file has several layers that make the coloring effect possible.
A JPEG image layer. This is an image of a solid white t-shirt.
A SCREEN layer. This is the layer that the color is applied to that makes the t-shirt appear to be a different color. (Class: wsft-tshirt-screen).
A LOGO layer (This later is optional).
## Enable SVGs in WordPress
To enable SVG's in WordPress we recommend using the plugin SVG Support. This enables you to use SVG's as featured images in posts, pages and products.
You will need to force inline SVG. This will ensure the SVG is not output as an img tag and allows JavaScript to manipulate elements of the SVG.
To do this:
Click on Settings then SVG Support in the WordPress admin menu.
Check the Enable Advanced Mode? setting.
Click Save.
Check the Force Inline SVG? setting.
Click Save.
## Create The Form
Click Add New under the WS Form menu.
Click Blank to create a blank form.
Drag the tshirt.json file into the layout editor to import it. Click Ok when prompted. (You can also use the Import icon at the top of the layout editor).
Click Publish.
## Creating The Product
To create the product:
Add a product in WooCommerce.
Enter a product name (e.g. T-Shirt Tutorial).
Add a regular price of zero or greater (e.g. 10).
Click on Set product image.
Upload the tshirt.svg file.
Click Set product image.
Click Publish to create the product.
## Assigning The Form To The Product
The next step is to assign your form to the product to customize it. While still editing the product...
Click on the WS Form tab in the Product data section.
Click choose an existing form.
Select the Customizable T-Shirt Product Tutorial form you imported above.
Click Update to save the changes.
Click on the product URL to preview the product.
## Test The Product
Click the product link to view the product. You should now find the SVG screen layer is updated when a color is selected.
## How It Works - Conditional Logic
In order to change the SVG screen layer color, we use conditional logic in WS Form. Conditional logic lets you create interactive forms.
To view the conditional logic for the T-Shirt form:
Edit the form.
Click the Conditional Logic icon at the top of the layout editor. The Conditional Logic sidebar will open.
Click the gear icon next to the Color Picker row.
### Color Picker
The conditional logic for the color picker checks for On input (when a user clicks or drags the color picker) and Changed (when the color is changed by the user or another conditional logic THEN/ELSE statement) events on the Color Picker field.
The THEN statement runs whenever the color picker is changed. When a change occurs, the following JavaScript is executed:
$('.wsft-tshirt-screen').css({fill: '#field(612)', 'mix-blend-mode': 'multiply'});
This is a combination of regular JQuery and WS Form variables. The value of the color picker #field(612) (612 will be different in your form and is the field ID of the color picker) is used to set the CSS file property of the wsft-tshirt-screen class.
### Commerce Color
The conditional logic for the Commerce text on the t-shirt checks the lightness of the Color Picker field.
If the lightness is less than 50 (dark), the text is set to white using the following JavaScript:
$('.wsft-tshirt-logo-commerce').css({fill: '#fff'});
If the lightness is greater than or equal to 50 (light), the test is set to white using the following JavaScript:
$('.wsft-tshirt-logo-commerce').css({fill: '#000'});
## Create a Field Prefix or Suffix
URL: https://wsform.com/knowledgebase/create-a-field-prefix-or-suffix/
Using WS Form you can easily add prefixes and suffixes to your WordPress form fields.
You can use WS Form to quickly and easily add prefixes and suffixes to your WordPress form fields.
No additional plugin is required for this feature.
Full Bootstrap and Foundation framework support.
## Demo
## How To
To add a prefix or suffix to a field:
Click the field settings icon.
In the Basic tab enter a value in the Prefix or Suffix setting.
Click Save & Close.
WS Form Variables and HTML are supported in these fields. The demo above shows an example of using Font Awesome icons.
## Supported Fields
Prefixes and suffixes are supported in the following field types:
Text
Text Area
Number
Phone
Email
URL
Select (including Select2)
Date/Time
Password
Search
Price
Price Select
Quantity
Price Subtotal
Cart Detail
Cart Total
## Create a File Upload Progress Bar
URL: https://wsform.com/knowledgebase/create-a-file-upload-progress-bar/
Show the progress of a file upload by using a combination of file upload and progress fields.
Using a combination of file upload and progress fields, you can show your website users the progress of a file upload. WS Form enables you to put the progress bar anywhere on your form for complete layout flexibility. The progress bar works when the form is submitted or saved.
## Demo
## Tutorial
WS Form comes with a File Upload template on the Add New page. To add a progress bar to an existing form with a file upload field:
Drag or click a Progress field anywhere on your form. You can add as many progress bars on your form as you wish (for example, on every tab).
Click the settings icon on the Progress field.
Under Source select Upload Progress.
Click Save and then click Preview to test your form.
## Hiding The File Upload Field
For a more seamless effect, you can also hide the file upload field when the form is submitted using conditional logic. An example of the conditional logic to achieve this is shown below:
## Create a Fixed Discount Code Field
URL: https://wsform.com/knowledgebase/create-a-fixed-discount-code-field/
Add a coupon code field to your WS Form that applies a fixed discount amount to the cart total when a valid code is entered.
This tutorial shows how to add a discount code field to a WS Form that applies a fixed discount amount to the cart total.
Example used in this guide
Coupon code: 50OFF
Discount: 50.00
You can change these values to match your own coupon setup.
## Demo
## How it works
The demo form includes these main fields:
Price
Determines the cart subtotal.
Cart Detail (Discount)
Applies the fixed discount when a valid coupon is entered.
Cart Total
Shows the final total after the discount.
## Step 1 – Add a Discount Field
In WS Form, discounts are created using a Cart Detail field set to type Discount.
Configure the field as follows:
Type: Discount
Allow negative values: Checked
Default value: 0
Read only: Optional
The discount field starts at zero so no discount is applied until the coupon is validated.
## Step 2 – Add Coupon Input and Button
Add two fields to your form:
Text field
Label: “Discount Code”
Custom Button
Label: “Apply”
The user enters the coupon and clicks Apply.
## Step 3 – Add Conditional Logic
We only want the discount applied when:
The correct code is entered (50OFF)
The Apply button is clicked
Open Conditional Logic:
Click the Conditional Logic icon in the layout editor.
Click Add.
Condition
Discount Code field = 50OFF
Apply button = clicked
Action
Set Discount field value → -50
When this value is applied, WS Form includes it in the cart calculation and the discount is deducted from the total.
You can disable Case Sensitive so the coupon also works if users enter 50off.
## Adding more coupon codes
You can repeat this method to support multiple coupons:
Change the code value
Change the discount amount
Add another conditional rule
Example
25 off → value -25
Code: 25OFF
## Summary
To create a fixed discount coupon in WS Form:
Add a Cart Detail field set to Discount
Allow negative values and set default to 0
Add a coupon text field and Apply button
Use conditional logic to set the discount value when the correct code is entered
This approach works for any number of coupon codes or discount amounts.
## Create a Forgot and Reset Password Form
URL: https://wsform.com/knowledgebase/create-a-forgot-and-reset-password-form/
Learn how to create a custom forgot and reset password page.
The WS Form PRO User Management Integration allows you to create a custom forgot password page which in turn sends an email to the user and leads them to a reset password page. The user can then enter their new password.
There are three steps to the forgot password process.
The forgot password form is presented to the user. They enter their username or email address into the form and then click the submit button. A confirmation message is shown indicating that an email has been sent to them.
An email is sent to the email address associated with the user identified by the username or email that was entered. The email contains a clickable link to a page containing the reset password form. The link contains a unique key which identifies the user and validates the reset password request. This is done by using a Send Email action on the forgot password form.
The reset password form is presented to the user. They enter a new password twice for confirmation and then click the submit button. WordPress then resets their password and a confirmation message is shown.
This tutorial describes how to build these steps.
## Prerequisites
In order to build a custom forgot password process, you will require:
WS Form PRO
User Management Integration
The user management provides the interface between your forms and the WordPress user management functionality.
## Creating Forms
You need to create two forms for this process. WS Form PRO has two ready made form templates you can use. To do this:
Click on WS Form in the WordPress administration menu.
Click Add New.
Click on the User Management tab.
Click on the Forgot Password template.
In the layout editor, click the Publish button to publish the form so that it is ready for adding to a page.
Repeat this process and create a Reset Password form.
## Creating Pages
You need to create two pages on your website:
Forgot Password
Reset Password
To do this:
Click on Pages in the WordPress administration menu.
Click Add New.
Add a title to the page: Forgot Password.
Use your preferred page builder (e.g. WordPress blocks) to add the corresponding form you created to the page. Learn more.
Publish the page.
Repeat this process for the Reset Password page.
Copy the permalink (URL) of the Reset Password page to your clipboard.
## Configuring the Email Link
When the forgot password email link is clicked, we want to ensure the user is linked to the Reset Password page that you created above.
To do this:
Click on WS Form in the WordPress administration menu.
Edit your Forgot Password form.
Click the Actions icon at the top of the page. The Actions sidebar will open on the side of the page.
Click the Settings icon next to the Send Email action.
In the settings for the email, scroll down to the Message setting.
Change: #user_lost_password_url to #user_lost_password_url("/reset-password-path/"). Replace /reset-password-path/ with the reset password permalink you copied earlier. You do not need to enter the hostname, WS Form PRO will automatically add that for you.
Click Save & Close.
Click Publish
Your Forgot Password form will now send an email containing a link to the Reset Password page you created earlier.
## Create a Form Recipient Selector Using Conditional Logic
URL: https://wsform.com/knowledgebase/create-a-form-recipient-selector-using-conditional-logic/
In this tutorial we'll show you how to allow a user to select a recipient by enabling and disabling 'Send Email' actions using conditional logic.
In this tutorial we'll show you how to allow a user to select a recipient by enabling and disabling Send Email actions using conditional logic.
## 1. Create Form
For the purpose of this tutorial, we'll create multiple recipients for a Contact Us form. To create a quick Contact Us form:
Click on Add New from the WS Form administration menu.
Click the Contact Us template.
## 2. Add Radio Field
Once you are in the layout editor, we are going to add a radio field to the form that will be used to select the recipient. You could also use a select field if you wish. To do that, we simply click or drag and drop the Radio field from the Build sidebar. We'll give that field a label of Select Department, but you can label it anything you wish.
## 3. Configure Radio Field
Next we need to configure the radio field with the departments we want to allow the user to choose from.
Click on the settings (gear) icon for the Select Department field.
In the sidebar, click the Radios tab.
Remove the sample rows and then add as many rows as you need for each intended recipient. We'll add Sales and Support in this tutorial.
Click the checkmark on the first row to ensure the first row is checked by default. We need to do this to ensure at least radio is selected. Another option is that you could check the Required checkbox in the Basic tab to ensure at least radio is checked when the form is submitted.
Click Save at the bottom of the sidebar to save your changes.
If you preview the form, it will now display two radio fields that allow the user to select which recipient they would like their inquiry to go to.
Next we need to set up two send email actions, one for each recipient. The advantage of using this method is you can set up different email for each recipient if you wish, for example you could change the subject line and/or content of each email.
## 4. Set Up Email Actions
To access the email actions, click the Actions icon at the top of the page. This will open the Actions sidebar:
Because this is a new form, we already have a Send Email action. Let's rename that to say Send Email to Sales, and then add a new Send Email action that we'll call Send Email to Support. You would create as many Send Email actions as you have recipients and name them appropriately. To do this:
Click just after the word Email in the actions list and type to Sales to rename the first action.
Click the add icon below the action list to add a new action.
Select Send Email from the Action pulldown list.
Click just after the word Email in the actions list again, and type to Support to rename the section.
You should then end up with two email actions, one called Send Email to Sales and one called Send Email to Support (or whatever department names you have chosen).
For each email action, configure the recipient email address and any other settings required for that email. For more information about configuring the Send Email action, click here.
## 5. Conditional Logic
The last step is to create the Conditional Logic. WS Form conditional logic enables you to enable and disable actions based upon the output of an IF condition.
In this tutorial, we want to enable the Send Email to Sales if the Sales radio is checked. Likewise if the Support radio is checked instead, we will want the Send Email to Support action to be enabled.
The pseudo logic for the sales condition would be:
IF Select Department ROW CHECKED IS Sales THEN RUN ACTION ON SUBMIT Send Email to Sales ELSE DO NOT RUN ACTION ON SUBMIT Send Email to Sales
To create this conditional logic:
Click the Conditional Logic icon at the top of the layout editor. The Conditional Logic sidebar will open.
Click the add icon below the conditional logic list.
Enter a label for the conditional logic, e.g. Send Email to Sales
Create the conditional logic (see below).
Click Save at the bottom of the sidebar.
An example of how to set up the above pseudo logic is shown below:
Create conditions for each of your recipients. And that's it!
WS Form will now enable the appropriate Send Email action depending on which radio has been checked. Click Preview to try it or click Publish and add the form to your web site.
## Create a Form Recipient Selector Using PHP
URL: https://wsform.com/knowledgebase/create-a-form-recipient-selector-using-php/
In this tutorial we'll show you how to allow a user to select a recipient using the wsf_action_email_to filter hook.
WS Form has a number of WordPress filter hooks that can be used to dynamically change the settings of the Send Email action.
In this tutorial we'll show you how to allow a user to select a recipient using the wsf_action_email_to filter hook.
## 1. Create Form
For the purpose of this tutorial, we'll create multiple recipients for a Contact Us form. To create a quick Contact Us form:
Click on Add New from the WS Form administration menu.
Click the Contact Us template.
## 2. Add Radio Field
Once you are in the layout editor, we are going to add a radio field to the form that will be used to select the recipient. You could also use a select field if you wish. To do that, we simply click or drag and drop the Radio field from the Build sidebar. We'll give that field a label of Select Department, but you can label it anything you wish.
## 3. Configure Radio Field
Next we need to configure the radio field with the departments we want to allow the user to choose from.
Click on the settings (gear) icon for the Select Department field.
In the sidebar, click the Radios tab.
Remove the sample rows and then add as many rows as you need for each intended recipient. We'll add Sales and Support in this tutorial.
Click the checkmark on the first row to ensure the first row is checked by default. We need to do this to ensure at least radio is selected. Another option is that you could check the Required checkbox in the Basic tab to ensure at least radio is checked when the form is submitted.
Click Save at the bottom of the sidebar to save your changes.
If you preview the form, it will now display two radio fields that allow the user to select which recipient they would like their inquiry to go to.
Next we need to ensure we have a Send Email action set up for the form.
## 4. Set Up Send Email Action
To access the form actions, click the Actions icon at the top of the page. This will open the Actions sidebar:
Because this is a new form, we should already have a Send Email action. If a Send Email action does not exists, you can add one as follows:
Click the add icon below the action list to add a new action.
Select Send Email from the Action pulldown list.
Set up your Send Email action with your desired From address Subject Line and Message. You can set the To address to #blog_admin_email, this will ultimately be changed by the WordPress filter hook.
## 5. WordPress Filter Hook PHP
The last step is to create the WordPress Filter Hook function in PHP. This would typically go in your themes functions.php file or code snippet plugin.
An example code snippet can be found below:
// Callback function for the wsf_action_email_to filter hook
function wsf_action_email_to_hook_function( $to, $form, $submit, $action ) {
// ID of form this filter hook applies to
$form_id = 123;
// ID of field
$field_id = 123;
// Check form ID
if( $form_id != $form->id ) { return $to; }
// Build meta key containing the field value
$meta_key = sprintf( 'field_%u', $field_id );
// Get field value (Will be an array of values for a select, checkbox or radio field)
$values = wsf_submit_get_value( $submit, $meta_key );
// Check field value
if( empty( $values ) || !is_array( $values ) ) { return $to; }
// Field value to email address lookup table (Build this data using your own code)
$to_lookups = array(
'Sales' => 'Sales ',
'Support' => 'Support '
);
// Return array
$to_array = array();
// Process values
foreach( $values as $value ) {
// Check if lookup exists
if( isset( $to_lookups[$value] ) ) {
// If it does exist, add this email address to the return array
$to_array[] = $to_lookups[$value];
}
}
// Return value
return count( $to_array ) ? $to_array : $to;
}
// Add a callback function for the wsf_action_email_to filter hook
add_filter( 'wsf_action_email_to', 'wsf_action_email_to_hook_function', 10, 4 );
In this code example you would change the value for the $form_id variable to match the ID of the form you created. You also need to change the $field_id variable to match the ID of the field containing the recipient options.
## Create a Form Summary
URL: https://wsform.com/knowledgebase/create-a-form-summary/
On a long form you may wish to add a summary of the fields the user has completed.
On a long form you may wish to add a summary / review of the fields the user has completed. There are two ways to create a summary in WS Form.
Automatically create a summary by using the Summary field type.
Custom code a summary using your own markup in an HTML field.
In this tutorial, we explain how to create a summary using both of these methods.
## Demo
## Automatically Create a Summary
To create a summary automatically, you can use the Summary field. Simply drag and drop (or click) the Summary field onto your form. The Summary field can be configured to:
Show and hide form, tab and section labels.
Create multi-column layouts.
Exclude certain fields.
Create tables for repeatable sections.
## Custom Code a Summary
You can also use an HTML field to insert a summary into your form. To make this process easier, you can automatically create some base markup to work with by clicking the Insert Form Summary HTML button.
The #field variable is used to insert the value of a field. This is wrapped in the #text variable which tells WS Form to keep the field value updated in the HTML field whenever the value changes.
An example of this syntax is: #text(#field(123))
An example of this added to an HTML field is shown below:
A working example of this is shown below:
The #text field can also be used in text editor, message or even the default value of fields such as text, phone or email.
You can combine these variables with regular HTML code to style and format the output as you wish.
## Conditionally Showing Field Values
Sometimes you may only wish to show a field value if it contains a value. To do this, you can use the #if(condition) and #endif variables.
### Example
#if(#field(1))
#field_label(1)
#text(#field(1))
#endif
#if(#field(2))
#field_label(2)
#text(#field(2))
#endif
In this example, WS Form checks to see if the field with ID 1 has content. If it does, it shows the content between the #if(#field(1)) and #endif variables. This functionality is then repeated for the field with ID 2.
Please note that the classes in these examples are optional and intended for use with the WS Form Styler for the purpose of styling a summary field.
## Repeatable Sections
You can also create a summary of fields contained within a repeatable section.
Example code to do this is shown below:
My Repeatable Section
#
#field_label(1)
#field_label(2)
#section_rows_start(10)
#section_row_number
#text(#field(1))
#text(#field(2))
#section_rows_end
In this example, we are outputting a simple HTML table. The rows in the table are wrapped in #section_rows_start(section_id) and #section_rows_end. WS Form then repeats the HTML contained within for each row in the repeatable section that has an ID of 10. The variable #section_row_number outputs the row number.
## Styling Summaries
To style a summary that uses the WS Form markup and classes:
Click Style at the top of the layout editor.
Click on Field Types.
Click on Summary.
Edit the style.
Click the Save icon at the top of the Styler.
Keyword: preview
## Create a Link in a Checkbox or Radio Label
URL: https://wsform.com/knowledgebase/create-a-link-in-a-checkbox-or-radio-label/
WS Form allows you to add HTML to checkbox and radio labels.
Occasionally, you may find the need to incorporate a hyperlink within a checkbox or radio button label. For instance, you might want to include a link directing users to a privacy policy or terms and conditions page in association with an opt-in checkbox.
WS Form allows you to add HTML to checkbox and radio labels.
An example of doing this with a checkbox field is shown below and the same method applies for radio fields too.
Edit the Checkbox field by clicking the settings icon.
Click the Checkboxes tab.
Optionally click the expand icon at the top to make the label setting easier to edit.
In the label of the checkbox, enter the HTML for adding a link.
Click Save & Close
## Example HTML
I agree to the Privacy Policy.
## Create a Percentage Discount Code Field
URL: https://wsform.com/knowledgebase/create-a-percentage-discount-code-field/
Add a coupon code field to your WS Form that reveals a hidden discount and applies a percentage reduction to the cart total when a valid code is entered.
This tutorial shows how to add a discount code field to a WS Form that applies a percentage discount to the cart total.
Example used in this guide
Coupon code: 50OFF
Discount: 50%
You can change these values to match your own coupon setup.
## Demo
## How it works
The demo form includes these main fields:
Price
Determines the cart subtotal amount.
Cart Detail (Subtotal)
Shows the subtotal of the e-commerce fields.
Cart Detail (Discount)
Applies the percentage discount when visible.
Cart Total
Shows the final total after the discount.
## Step 1 – Add a Discount Field
In WS Form, discounts are created using a Cart Detail field set to type Discount.
Configure the field as follows:
Hidden: Checked
Type: Discount
Allow negative values: Checked
Hidden e-commerce fields are excluded from totals until they are shown. This prevents the discount from applying before the coupon is entered.
## Step 2 – Add the Discount Calculation
In the Default Value of the Discount field, add this WS Form calculation:
#calc(#field(123) * -0.5)
What this does
#field(123) = Gets the cart subtotal (where 123 is the ID of the subtotal field)
* -0.5 = 50% discount (negative so it reduces the total)
Example
Sub-total = 150
Discount = −75
Cart total = 75
## Step 3 – Add Coupon Input and Button
Add two fields to your form:
Text field
Label: “Discount Code”
Custom Button
Label: “Apply”
The user will enter the coupon and click Apply.
## Step 4 – Add Conditional Logic
We only want the discount applied when:
The correct code is entered (50OFF)
The Apply button is clicked
Open Conditional Logic:
Click the Conditional Logic icon in the layout editor.
Click Add.
Condition
Discount Code field = 50OFF
Apply button = clicked
Action
Set Discount field → Visible
When the field becomes visible, WS Form includes it in the cart calculation and the discount is applied.
## Adding more coupon codes
You can repeat this method to support multiple coupons:
Change the code value
Change the percentage in the calculation
Add another conditional rule
Example
25% off → #calc(#field(123) * -0.25)
Code: 25OFF
## Summary
To create a percentage discount coupon in WS Form:
Add a hidden Cart Detail field set to Discount
Add a negative percentage calculation
Add a coupon text field and Apply button
Use conditional logic to show the discount when the correct code is entered
This approach works for any number of coupon codes or discount amounts.
## Create a Redirect Selector Using Conditional Logic
URL: https://wsform.com/knowledgebase/create-a-redirect-selector-using-conditional-logic/
In this tutorial we'll show you how to set up form redirects using conditional logic.
In this tutorial we'll show you how to set up form redirects using conditional logic. This enables you to redirect to different web addresses depending on the choice a user makes on your form.
## 1. Create Form
For the purpose of this tutorial, we'll create two different redirects for a Contact Us form. When the form us submitted it will redirect to either a Sales or Support page depending on the selection made by the user completing the form.
To create a quick Contact Us form:
Click on Add New from the WS Form administration menu.
Click the Contact Us template.
## 2. Add Radio Field
Once you are in the layout editor, we are going to add a radio field to the form that will be used to select a department. You could also use a select field if you wish. To do that, we simply click or drag and drop the Radio field from the Build sidebar. We'll give that field a label of Select Department, but you can label it anything you wish. Of course, the input criteria could be anything you wish but for the purpose of this tutorial we'll use a radio field as our conditional logic criteria.
## 3. Configure Radio Field
Next we need to configure the radio field with the departments we want to allow the user to choose from.
Click on the settings (gear) icon for the Select Department field.
In the sidebar, click the Radios tab.
Remove the sample rows and then add as many rows as you need for each intended recipient. We'll add Sales and Support in this tutorial.
Click the checkmark on the first row to ensure the first row is checked by default. We need to do this to ensure at least radio is selected. Another option is that you could check the Required checkbox in the Basic tab to ensure at least radio is checked when the form is submitted.
Click Save at the bottom of the sidebar to save your changes.
If you preview the form, it will now display two radio fields that allow the user to select which recipient they would like their inquiry to go to.
Next we need to set up two redirect actions, one for each department.
## 4. Set Up Redirect Actions
To access the redirect actions, click the Actions icon at the top of the page. This will open the Actions sidebar:
Because this is a new form, we'll need to add two new Redirect actions. You would create as many Redirect actions as you need. To do this:
Click the add icon below the action list to add a new action.
Select Redirect from the Action pulldown list.
We'll rename that action by clicking on it and then enter Redirect to Sales.
In the URL setting, enter the URL you want to redirect to. In this example we'll use /sales/ as the path. This can be any URL you wish, including external websites, e.g. https://wordpress.org
Repeat the above and call it Redirect to Support
You should then end up with two actions, one called Redirect to Sales and one called Redirect to Support (or whatever department names you have chosen).
For each redirect action, configure the URL. For more information about configuring the Redirect action, click here.
## 5. Conditional Logic
The last step is to create the Conditional Logic. WS Form conditional logic enables you to enable and disable actions based upon the output of an IF condition.
In this tutorial, we want to enable the Redirect to Sales if the Sales radio is checked. Likewise if the Support radio is checked instead, we will want the Redirect to Support action to be enabled.
The pseudo logic for the sales condition would be:
IF Select Department ROW CHECKED IS Sales THEN RUN ACTION ON SUBMIT Redirect to Sales ELSE DO NOT RUN ACTION ON SUBMIT Redirect to Sales
To create this conditional logic:
Click the Conditional Logic icon at the top of the layout editor. The Conditional Logic sidebar will open.
Click the add icon below the conditional logic list.
Enter a label for the conditional logic, e.g. Redirect to Sales
Create the conditional logic (see below).
Click Save at the bottom of the sidebar.
An example of how to set up the above pseudo logic is shown below:
Create conditions for each of your redirects. And that's it!
WS Form will now enable the appropriate Redirect action depending on which radio has been checked. Click Preview to try it or click Publish and add the form to your web site.
## Create a State / Province by Country Selector
URL: https://wsform.com/knowledgebase/create-a-state-province-by-country-selector/
Download a demo form showing how to create a simple state / province selector filtered by country.
This demo shows how to create a state / province select field that is filtered by a country select field. Cascading fields are use to achieve this.
## Create a UK Postcode Lookup
URL: https://wsform.com/knowledgebase/create-a-uk-postcode-lookup/
The WS Form Google Address field can be used to create a UK postcode lookup feature for your form.
The WS Form Google Address field can be used to create a UK postcode/postal code lookup feature for your WordPress form. The Google Address field can also be used to lookup full addresses.
## Demo
## Google Address Field Settings
The following Google Address components were mapped to create this demo:
To limit the search to the United Kingdom, use the Country Restrictions setting in the Advanced tab when editing the Google Address field.
## Create an 'Other' Option Using Conditional Logic
URL: https://wsform.com/knowledgebase/create-an-other-option-using-conditional-logic/
A common scenario on a form is the case of an 'Other' option as part of a list of options in a select, checkbox or radio field.
A common scenario on a form is the case of an Other option as part of a list of options in a select, checkbox or radio field, giving the user the possibility to enter a missing option. WS Form PRO allows you to do this while retaining full control of the positioning and style of the Other option.
## Demo
## Tutorial
Conditional logic and a supplemental text field is used to create an Other option in WS Form PRO. This allows you to place and style the Other text field in any position on the form per your requirement.
To create an Other option (Example given for a select field):
Click the settings icon on your select, checkbox or radio field.
Click on the Options tab and add a new row. Enter Other into the row.
Click Save & Close.
Add a text field to your form underneath the select, checkbox or radio field by clicking Text in the Build or by dragging and dropping a text field. Label the field Other.
Click the Conditional Logic icon at the top of the layout editor. The Conditional Logic sidebar will open.
Click the add icon to add a new conditional logic row.
Add the logic shown below, selecting the fields on your form.
Click Save & Close.
The conditional logic checks to see if the Other row has been selected. If that condition is true, the Other text field is made visible, otherwise it is hidden.
## Create an Email Notification
URL: https://wsform.com/knowledgebase/create-an-acknowledgement-email/
You can add any number of additional 'Send Email' actions to your form.
WS Form includes a Send Email action in most form templates that sends an email notification to the blog admin email address to inform them that a submission has occurred.
You can add any number of additional Send Email actions to your form. This tutorial shows you the best settings to use if you want to send an email notification / acknowledgement to the person completing the form.
In this tutorial, we'll use a simple Contact Us form template, but you could use any form you wish.
To create the acknowledgement email, first click on the Actions icon at the top of the layout editor.
Next, to add a new action, we click on the add + icon.
We can then immediately name the action. Lets call it Send Email to User.
Now we choose the type of action from the dropdown. We're going to choose the Send Email action.
Once the type is chosen, the settings for that action type are shown.
For an email sent to the person completing the form, we recommend using the following settings:
From Email Address: #blog_admin_email
From Display Name: #blog_name
To Email Address: #field(3)
To Display Name: #field(1) #field(2)
You would change the IDs in the #field variables above to match the IDs of your email, first and last name fields. You are welcome to change these to anything you wish.
Using these settings we are telling WS Form to send the email from the blog, to the user details that were completed on the form.
Make any necessary changes you would like to the email content or other settings and then click Save & Close.
Add as many additional email notifications / acknowledgements as you wish, there are no limits on the number of actions you can run.
## Create Floating Inside Field Labels With CSS
URL: https://wsform.com/knowledgebase/create-floating-inside-field-labels-with-css/
Floating field labels appear inside a field when it is empty and move outside the field when it contains content.
Floating field labels appear inside a field it is empty and move outside the field when it contains content. This makes fields appear to have a placeholder, but when you enter text into the field the label moves out of the way. The advantage of this method is that your forms occupy a smaller amount of screen real estate.
There are various ways of achieving this effect. WS Form PRO uses a pure CSS method that doesn't require JavaScript or third party libraries.
## Enabling Inside Label Positioning
You can enable inside label positioning in WS Form PRO by setting Label Position to Inside either on all fields or a specific field.
### Setting All Fields
To set the label position to Inside for all fields:
Click the settings icon at the top of the layout editor.
Click the Styling tab.
Change the Default Label Position setting to Inside.
Click Save & Close.
This sets all fields that are set to label position Default to Inside.
### Setting Individual Fields
Click the settings icon on a field.
Click the Advanced tab.
Change the Label Position setting to Inside.
Click Save & Close.
You can use this method to override the Default (Form setting) label position on individual fields.
## Change Inside Label Positioning Parameters
It is possible to use the Styler to adjust how the label appears when it is populated with content.
To do this:
Click on Styles in the WS Form admin menu.
Edit a Style.
Search for: inside
Change Inside Label settings to suit your preference:
Behavior: Move or Hide
Vertical Offset: Defaults to -20px (Applies to Move only)
Scale: Defaults to 0.9 (Applies to Move only)
Click the Save icon to save your changes.
When the hidden behavior is chosen, the class wsft-label-position-inside-hide will be added to the form element.
### CSS Class
The CSS class applied to fields that support this feature is: wsft-label-position-inside.
## Create from AI Template
URL: https://wsform.com/knowledgebase/create-from-ai-template/
The Create from AI template lets you generate an entire form from a single prompt, automatically building fields, settings, and layouts based on your descripti…
The WS Form Create from AI template can be used to create a form using AI from a prompt.
### Configuring Connectors
In order to use the Create from AI template you will need to configure at least one AI connector in WordPress such as Anthropic, Google or OpenAI.
To do this:
Click on Settings > Connectors from the WordPress administration menu.
Click the Install button for Anthropic, Google and/or OpenAI and enter your API keys.
Click Save.
WordPress will show Connected when the provider is successfully connected.
## Using the Template
Once you have completed the step above a new Create from AI template will appear in the WS Form Add Form admin page.
Simply hover over the template and click Use Template. Describe the form you would like to create in the Create with AI modal and then click the Create button.
## Example Prompts
## Create Random Values
URL: https://wsform.com/knowledgebase/create-random-values/
WS Form has two functions that can be used to create random numbers and string.
WS Form has two functions that can be used to create random numbers and string.
Note: These functions use standard PHP and JavaScript random number generators, do not generate cryptographically secure values, and therefore should not be used for cryptographic purposes.
## Random Numbers
The parse variable used to create a random number is:
#random_number(min, max)
## Demo
## Random Strings
The parse variable used to create a random string is:
#random_string(length, characters)
Examples:
## Create Select, Checkbox, and Radio Cascading Lookups
URL: https://wsform.com/knowledgebase/cascade-select-and-radio-fields/
Cascading select and radio fields allows you to create choices that change based on a previous selection.
Cascading select, checkbox and radio fields allow you to create dynamic lookups that change based upon the value of another field on your WordPress form. For example, you could create a vehicle make and model lookup using this feature.
In the example below, you can see how the selection of a vehicle make filters the vehicle model options. Likewise selecting a vehicle model filters the vehicle year options.
## Demo
[ws_form id="13607"]
Select, checkbox and radio fields are configured using a data grid. Data grids are much like a spreadsheet and allow you to easily manage select options, checkboxes or radios. You can even use data sources to rapidly build data grids.
The diagram below illustrates how the example above works for the Make and Model fields.
Cascading works as follows:
Choose a Filter Value. This is the field on your form that WS Form will use to filter your options by. In the example above we choose the Make radio field as the filter value. This will have the value Toyota, Ford or Honda.
Choose a Filter Column. This is the column you want to filter values by in your data grid. So, if Toyota was selected in the Make radio field, then this data grid would be filtered to only show the rows where the Make column is equal to Toyota. The values in this field should precisely match the values in your Filter Column.
If your filter column contains comma separated values, you can check the Filter Column - Comma Separate setting. This will tell WS Form that you wish to treat each comma separated value as individual values to check against.
WS Form automatically renders the select field using the filtered options.
You can also daisy chain cascaded select and radio fields as in the example above.
## Enabling Cascade
To enable cascading on a field:
Click the settings icon on a select, checkbox or radio field to open the settings sidebar.
Click the Options, Checkboxes or Radios tab to view the data grid for that field.
Check the Cascade checkbox.
Select the Filter Column. This is the column in your data grid you want to filter.
Select the Filter Value. This is a select or radio field on your form you want to filter by.
For larger datasets using select fields, you may wish to enable the Use AJAX option to improve form performance.
Click Save & Close.
## Creating a Form
URL: https://wsform.com/knowledgebase/creating-a-form/
How to create a new form using WS Form. Create forms from a template or start from scratch with a blank form.
To create a form:
Click on WS Form in the WordPress administration menu.
Click Add New.
You will then have the option of creating a blank form or starting with one of the built-in templates.
The template forms enable you to build a form in a single click! You can edit any of the template forms as much as you like using the layout editor.
If you have installed an integration that comes with templates, you can click on the tab for that integration and select a template. For example the User Management template lets you create, register, login, and change password templates. Integrations that integrate with third-party systems, such as MailChimp, enable you to create forms from a mailing list in a single click that are fully integrated and ready to go.
## Creating a Light / Dark Form Theme
URL: https://wsform.com/knowledgebase/creating-a-light-dark-form-theme/
The WS Form Styler can create alternative color schemes for your WordPress forms such as a light / dark theme.
The WS Form Styler can create alternative color schemes for your WordPress forms. The most popular application for alternative color schemes is to build a light / dark theme.
Dark and light themes can improve accessibility by enhancing readability, reducing visual strain, accommodating diverse visual needs, and aligning with user preferences for a more inclusive and customizable experience. Of course, the effectiveness of alternative themes depends on the colors you choose. We encourage you to choose high contrast colors throughout to improve accessibility.
The WS Form alternative color scheme could, however, be used to switch to any other color scheme you wish. For example you could offer a monochromatic, higher contrast or larger font scheme.
This tutorial focusses on providing a light / dark theme for your website.
## Specifying Your Site Color Scheme
In order for WS Form to deliver the correct color scheme you should configure whether your website has a light or dark color scheme. To do this:
Click on Settings from the WS Form admin menu.
Click on the Styler tab.
Choose Light or Dark for the Color Scheme setting.
Click Save at the bottom of the settings page.
By choosing Light, WS Form will show the Base style if the users preferred color scheme is Light.
By choose Dark, WS Form will show the Base style if the users preferred color scheme is Dark.
If the alternative color scheme is not enable on a style, it will always use the Base style.
If you would like WS Form to attempt to automatically detect the preferred color scheme of your website visitors, check the Auto Color Scheme setting. You will need this to be enabled for testing your alternative color scheme.
## Enabling Alternative Color Themes
Each style can have a single or dual color scheme. By default all new styles have a single color scheme. To enable the alternative color scheme on a style:
Edit the style from the Styles admin page, or click Style at the top of the layout editor.
Click the Settings icon at the top of the Styler sidebar.
Check Enable Alt Color Scheme.
Click the Save icon at the top of the Styler.
## Modifying Alternative Colors
When the alternative color scheme is enabled, a scheme selector will appear at the top of the Styler sidebar.
There are three buttons:
Base - This is the base scheme that loads by default. Clicking this will show only Base colors in the settings hierarchy.
Alt - This is the alternative scheme that loads if WS Form determines it should be shown. Clicking this will show only Alternative colors in the settings hierarchy.
Both - This will show both Base and Alternative colors in the settings hierarchy.
## Picking Alternative Colors
When editing style colors in Alt or Both scheme mode, WS Form provides two helpers for picking alternative colors.
### Suggest an Alternative Color
WS Form can automatically suggest an alternative color. To do this, click the Magic Wand icon.
### Use an Alternative Color Shade
WS Form will also suggest various shades of your base color in the color picker in the swatches. Simply click a swatch to use that color.
## Testing Alternative Color Schemes
To test your alternative color scheme:
Mac: Go to Apple menu → System Settings → Appearance → Choose Light, Dark, or Auto.
Windows: Open Settings (Windows + I) → Personalization → Colors → Choose Light, Dark, or Custom.
## How WS Form Renders Alternative Schemes
When WS Form is using an alternative color scheme, the following class is added to the HTML element:
wsft-styler-scheme-alt
## CSS Variables Reference
URL: https://wsform.com/knowledgebase/css-variables-reference/
A full browsable reference of all of the WS Form CSS variables.
## Browse
Below is a comprehensive, browsable reference of all WS Form CSS variables. Simply click the copy icon to copy any variable name or default value. Additionally, you can copy variable names directly from the Styler by clicking its copy icon.
## Download
Download a CSV or JSON file of the WS Form CSS variables:
CSV (Base Only)
CSV (Full)
JSON (Base Only)
JSON (Full)
## Custom Button
URL: https://wsform.com/knowledgebase/custom/
Custom buttons enable you to add any additional to the buttons to the form for use with conditional logic or any custom javascript you add to your web page.
The Custom button enables you to add any additional buttons to the form for use with conditional logic or any custom javascript you add to your web page.
## Demo
## Adding a Custom Button
To learn how to add, edit, clone, move, resize, offset, or delete a custom button, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This label is used to identify the custom button in the WS Form form builder.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the custom button.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
#### Type
The type option allows you to choose how this button is styled. The options are:
Default
Primary
Secondary
Success
Information
Warning
Danger
#### Remove Full Width Class
Checking this option will no-longer render the button as 100% width.
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
Field restrictions enable you to define what can or cannot be entered into the field.
#### Disabled
If checked the field will be disabled, and it cannot be interacted with. You can re-enable a field dynamically by using conditional logic.
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Custom Project Development
URL: https://wsform.com/knowledgebase/custom-project-development/
If you require help with a more complex project involving WS Form you may want to work with an experienced web developer to assist you.
If you require help with a more complex project involving WS Form you may want to work with an experienced web developer to assist you.
We've teamed up with Codeable who can provide with you a broad range of web development related service.
## What is Codeable?
Simply put, Codeable is a platform that connects you with vetted WordPress freelance developers who can complete projects of all sizes with guaranteed quality. They have a thorough application process to ensure that you are matched with experts specifically qualified for your project.
## Starting a Project with Codeable
To start a project with Codeable:
Go to Codeable
Click Start a Project
Click Submit a Project
Complete the project details
Codeable charge between $80 - $120 per hour depending on the services provided.
## Custom Server-Side Form Validation
URL: https://wsform.com/knowledgebase/custom-server-side-form-validation/
WS Form allows you to perform your own server-side validation of submitted fields values.
WS Form allows you to perform your own server-side validation of submitted fields values.
Please refer to the wsf_submit_field_validate WordPress filter hook knowledge base article for a full description and examples of how to do this.
## Customize Submission CSV Exports
URL: https://wsform.com/knowledgebase/customize-submission-csv-exports/
Choose which columns to include when exporting submissions to CSV and arrange them in the order you need.
When exporting submissions to CSV, WS Form enables you to choose which columns are included and arrange them in the order you need.
Your column selection and order are saved for each form and WordPress user, so they are automatically restored the next time you export submissions from that form.
## Export Submissions To CSV
To export submissions:
Go to WS Form → Submissions.
Choose one of the following export methods:
Click Export CSV at the top of the submissions page to export submissions matching your current filters.
Click Export on an individual submission row to export that submission.
Select submissions, choose Export CSV from Bulk Actions, and apply the bulk action to export the selected submissions.
Choose the columns you want to include in the Export CSV modal.
Arrange the selected columns in the order you want them to appear in the CSV.
Click Export CSV.
## Choosing Columns
The Export CSV modal enables you to choose which columns to include in the CSV export.
Columns are divided between two lists:
Available – Columns that are not currently included in the export.
Selected – Columns that will be included in the export, shown in their export order.
To add or remove columns, click one or more items to highlight them, then use the arrow buttons between the lists. You can also use the add all and remove all buttons to move all columns at once.
Double-click a column to quickly move it between Available and Selected.
At least one column must be selected. If the Selected list is empty, an inline message is shown and the export will not begin.
## Reordering Columns
The order of columns in the Selected list determines their order in the downloaded CSV.
Drag columns up or down using the drag handle to change their order. This can be useful when preparing CSV files for reporting or importing into another application that expects columns in a particular order.
Selected columns also show a category label, such as Submission or Form Fields, to help identify where each column originates.
## Searching For Columns
Use Search available… or Search selected… to quickly find columns. This is particularly useful for forms with a large number of fields.
A count is shown for each list so you can see how many columns are available and selected.
## Column Groups
Columns in the Available list are organized into groups to make them easier to find. Depending on the form and your WS Form edition, these can include:
Submission – Submission information such as the submission ID, date, and status.
Form Fields – Fields included on the form.
E-Commerce – E-commerce submission data available with WS Form PRO.
Tracking – Tracking information available with WS Form PRO.
Custom – Additional columns added through filters or other customizations.
Form field columns show the field label followed by the Field ID, for example Email (ID: 123). This makes it easier to distinguish between fields with similar labels.
Click a group heading to select all columns in that group. Double-click a group heading to move the entire group between Available and Selected.
The Selected list is displayed as a flat list, allowing columns from different groups to be arranged in any order.
## Export Filters
Choosing CSV columns does not change which submissions are exported. The export continues to respect the submissions currently being viewed or selected.
This includes filters such as date range, keyword searches, submission status such as spam or trash, and selected submission IDs when using a bulk export.
Column selection controls the information included for each exported submission, while your submission filters control which submissions are included.
## Saving Column Preferences
When you click Export CSV, your selected columns and their order are saved automatically.
Preferences are saved separately for each WordPress user and each form. This allows different users to maintain their own export configuration, while also allowing different column configurations for different forms.
If fields or other columns are added later, they become available in the Available list. Your existing saved selection and column order are retained, and the new columns can be added when needed.
## Downloading The CSV
When you are ready to export, click Export CSV. The CSV contains the selected columns in the order shown in the Selected list.
For larger exports, WS Form builds the CSV in steps and displays a progress indicator while the export is being prepared. The CSV is downloaded when the export is complete.
Click Cancel to close the modal without exporting.
## Developer Notes
The wsf_submit_export_csv_header and wsf_submit_export_csv_row filter hooks receive the full CSV header and row data.
Column selection is applied after these hooks have run. Custom columns added through filters can therefore be made available for selection alongside standard WS Form columns.
## Customize the Visual Editor Toolbar
URL: https://wsform.com/knowledgebase/customize-the-visual-editor-toolbar/
Learn how to customize the visual editor toolbar in WS Form on Text Area fields.
The Text Area field can be configured to use the TinyMCE visual editor by changing the Type setting to Visual Editor. Two versions of the visual editor can then be chosen:
Full
Compact
## Default Toolbars
The Full toolbar looks as follows:
The Compact toolbar looks as follows:
## Filter Hooks
Both the Full and Compact toolbars can be customized using WordPress filter hooks.
Each toolbar is configured using a string containing the name of each button. The pipe | character is used to create separators in the toolbar. A complete list of the available buttons can be found on the TinyMCE website.
Some buttons and features require plugins which can also be configured using hooks.
The filter hooks are as follows:
### Full Toolbar
Hook Name
Default Value
wsf_tinymce_toolbar1_full
formatselect bold italic underline strikethrough | bullist numlist | alignleft aligncenter alignright alignjustify | link unlink | wp_adv
wsf_tinymce_toolbar2_full
forecolor | pastetext | hr | removeformat charmap | outdent indent blockquote | wp_more | undo redo | fullscreen
wsf_tinymce_toolbar3_full
Blank
wsf_tinymce_toolbar4_full
Blank
wsf_tinymce_plugins_full
charmap colorpicker hr lists media paste tabfocus textcolor fullscreen wordpress wpautoresize wpdialogs wpeditimage wpemoji wpgallery wplink wptextpattern wpview
### Compact Toolbar
Hook Name
Default Value
wsf_tinymce_toolbar1_compact
bold italic underline strikethrough | bullist numlist | alignleft aligncenter alignright alignjustify | link unlink | pastetext | undo redo | fullscreen
wsf_tinymce_toolbar2_compact
Blank
wsf_tinymce_toolbar3_compact
Blank
wsf_tinymce_toolbar4_compact
Blank
wsf_tinymce_plugins_compact
lists media tabfocus fullscreen paste wordpress wpautoresize wpdialogs wpeditimage wpemoji wpgallery wplink wptextpattern wpview
### Sample Code
An example for the Full toolbar, implementing a change to the second toolbar that removes the fullscreen button is given below.
// Add filter
add_filter( 'wsf_tinymce_toolbar2_full', 'wsf_tinymce_toolbar2_full_function' );
// Filter function
function wsf_tinymce_toolbar2_full_function( $toolbar ) {
// Create a toolbar string
$toolbar = 'forecolor | pastetext | hr | removeformat charmap | outdent indent blockquote | wp_more | undo redo';
// Return the toolbar string
return $toolbar;
}
## Daily, Weekly or Monthly Form Statistics Reports
URL: https://wsform.com/knowledgebase/report-form-statistics/
The form statistics report sends a daily, weekly or monthly email containing your form views, saves, submits and conversion rates.
The form statistics report sends a daily, weekly or monthly email containing your form views, saves, submits and conversion analytics.
To use this features, statistics gathering must be enabled. Learn more about enabling statistics.
The report has the following columns:
Form
The label of the form.
Views
How many times the form was shown on your website.
Saves
How many times the form was saved (This column is hidden if no saves occurred on your website).
Submits
How many times the form was submitted.
Conv.
The conversion rate (Percentage of submits to views).
## How to Enable the Form Statistics Report
To enable this email report:
Click on WS Form > Settings in the WordPress admin menu to view the Global Settings.
Click the Reporting tab.
Click the Enable checkbox setting.
Click Save.
## Settings
The report can be configured using the settings described below.
### Enable
If checked, WS Form will schedule the report according your chosen settings. Uncheck this to stop reports from being sent.
### Published Form
If checked, WS Form will only include published forms in the report.
### Frequency
Choose how often you would like to receive the report. The options are:
Daily (You can also choose the day of the week for this option)
Weekly
Monthy
### Email To
Reports will be sent to the Administration Email Address configured in the General WordPress Settings admin page. You can override this by entering an alternative email address in this field. If you want to send the report to multiple recipients you can separate email addresses by spaces in this setting.
The Send Test button can be used to send a sample report to the configured email addresses. Be sure to click Save before clicking the Send Test button to ensure your latest settings are used.
### Email Subject
The default subject line is: WS Form - Form Statistics
You can use this setting to change the subject line of the email.
## Data Encryption
URL: https://wsform.com/knowledgebase/data-encryption/
WS Form PRO can encrypt your form submissions. Submission meta data is encrypted and decrypted seamlessly without any need for additional coding.
Disclaimer: We accept no responsibility for any data loss occurring as a result of using this feature. Losing, changing or deleting the encryption key will result in your submission data being permanently unreadable. Please refer to our Terms of Use for further information.
WS Form PRO can encrypt your form submissions. It features:
HKDF-SHA256 keys
AES-256-CTR encryption
Submission meta data is encrypted and decrypted seamlessly without any need for additional coding. Files uploaded to server (File upload and signature fields) are not encrypted.
## Requirements
PHP 5.6+
OpenSSL (Enabled by default in PHP 5.6+)
## Enabling Data Encryption
To enable data encryption:
Ensure your website is secured using SSL. Read more.
Click Settings from the WordPress administration menu.
Click on the Data tab.
Add the provided code to your wp-config.php file. We recommend adding this code just below the Authentication Unique Keys and Salts section of the file. Always ensure the file permissions of your wp-config.php file are secure. If you are unfamiliar with this file we recommend that you read Editing wp-config.php first. The key provided on the data tab will change each time it is loaded, but you can copy it at any point for use in your wp-config.php file. You must use the provided key as it is specifically formatted to be used with the php-encryption library.
Once you have installed the code, refresh the settings page and WS Form PRO will show that the key has been correctly installed. Note that WS Form will NOT show this same key again if you remove the key from wp-config.php so you may wish to keep a copy of this key in a separate secure location.
Enable data encryption by checking the Enable Data Encryption setting.
Click Save to save the settings.
Only submissions made after the point at which data encryption is enabled will be encrypted.
DO NOT CHANGE OR REMOVE THE KEY ONCE YOU HAVE INSTALLED IT. DOING SO WILL RENDER ENCRYPTED SUBMISSIONS UNREADABLE.
THE KEY PROVIDED BY WS FORM IN THE SETTINGS PAGE IS ONLY GENERATED ONCE. PLEASE ENSURE YOU DO NOT LOSE THIS KEY AND KEEP IT IN A SECURE PLACE. ENCRYPTED DATA AND KEYS CANNOT BE RECOVERED IF THE KEY IS LOST.
FILE UPLOADS AND SIGNATURES ARE NOT ENCRYPTED.
## Data Considerations
Data exported from WS Form PRO to a CSV file is not encrypted.
Action such as Webhook or any other third party integration will not send encrypted data.
Emails sent from WS Form PRO are sent using the standard wp_mail function and the data is therefore unencrypted. It is your responsibility to secure your email communication if you plan on sending email acknowledgements.
Files uploaded to server (File upload and signature fields) are not encrypted.
## Performance Considerations
Additional CPU time is required for encrypting and decrypting form submissions.
Additional database storage space is required for each encrypted submitted field.
Duplicate field value lookups cannot be used with encryption enabled.
The encryption system uses the popular php-encryption library developed by Taylor Hornby and Scott Arciszewski as well as numerous open-source contributors.
## Data Erasure Request Action
URL: https://wsform.com/knowledgebase/data-erasure-request/
WordPress has a Data Erasure Request feature that is seamlessly integrated with WS Form.
GDPR requires you provide users with a method of deleting their data from your records. WordPress has a Data Erasure Request feature that is seamlessly integrated with WS Form.
To create a data erasure request form:
Click Add New from the WS Form administration menu.
Click the GDPR tab at the top.
Click the Data Erasure Request template.
Click Publish when the form is created.
Add the form to your website.
For more information about GDPR, click here.
## Manually Creating a Data Erasure Request Form
You can also manually create a Data Erasure Request form. You will need a form that has an Email field on it. To do this:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Data Erasure Request from the Action pulldown.
Select the Email field on your form for the Email Field setting.
Click Save at the bottom.
## Data Export Request Action
URL: https://wsform.com/knowledgebase/data-export-request/
WordPress has a Data Export Request feature that is seamlessly integrated with WS Form.
GDPR requires you provide users with a method of requesting their data from your records. WordPress has a Data Export Request feature that is seamlessly integrated with WS Form.
To create a data export request form:
Click Add New from the WS Form administration menu.
Click the GDPR tab at the top.
Click the Data Export Request template.
Click Publish when the form is created.
Add the form to your website.
For more information about GDPR, click here.
## Manually Creating a Data Export Request Form
You can also manually create a Data Export Request form. You will need a form that has an Email field on it. To do this:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Data Export Request from the Action pulldown.
Select the Email field on your form for the Email Field setting.
Click Save at the bottom.
## Data Grid Column Mapping
URL: https://wsform.com/knowledgebase/data-grid-column-mapping/
Column mapping allows you to map different columns of your data grid to different parts of your field.
Data grids allow you to set up the options shown in Select, Checkbox and Radio fields.
To access the data grid, field click the settings icon on a field.
On a select field you access the data grid by clicking the Options tab. On a checkbox field it is called Checkboxes and on a radio field the tab is called Radios.
An example of a data grid would be a list of countries or states. A more advanced data grid might be a table containing country abbreviations, full names, and ISO codes.
## What is Column Mapping?
Column mapping allows you to map different columns of your data grid to different parts of your field.
Let's take a Select field for example:
Select fields contain options. Each option has a Value that is saved when the form is submitted and a Label that is shown to the user when viewing the form.
To determine which column of the data grid is mapped to the Value of an option and which column is used for the Label of an option, you use the Column Mapping settings. These settings are found in the Options tab when editing the field, immediately below the data grid, as shown in the screenshot below:
In its simplest form, a data grid can contain a single column and you would map that single column to all of the column mapping settings.
In a more advanced data grid you can use additional columns and map those columns to different column mapping settings. For example, you could add a Value column and map that to the value column mapping as is shown in the example above.
## Column Mapping Settings
The column mapping settings are described below:
### Labels Mapping
The Labels mapping setting determines which column of your data grid is used for the label of each option, i.e. what the user sees when choosing an option.
### Values Mapping
The Values mapping setting determines which column of your data grid is used for the value of each option, i.e. what value is saved when the form is submitted.
Values should be unique for each option.
### Action Variables Mapping
The Action Variables mapping determines which column to use if you reference a field in an action. For example, you might put:
#field(1)
... in a Send Email action. In the screenshot above we have mapped the Label column to Action Variables so the label of the option chosen by the user would appear in the email.
### Price Mapping
E-Commerce fields have an addition price mapping setting. This is used to determine which column in your data grid contains the price for that option.
Enter values without a currency symbol, e.g.
123.45
### WooCommerce Cart Mapping
The WooCommerce Cart mapping will only show if you have the WooCommerce Product Integrations extension installed. It determines which column to use when a field is shown in the WooCommerce cart.
## Adding Additional Columns to Your Data Grid
To add an additional column to your data grid, click the + icon at the top:
Once the column is added you can immediately name it and start to enter data.
## Other Data Grid Features
WS Form offers the most comprehensive tools for configuring your Select, Checkbox and Radio fields using data grids.
Other features of data grids include:
Data Sources - Load data from a variety of sources including Presets and data from Post and User data.
Import / Export CSV files - Bulk import and export CSV files to/from your data grid.
Checked, Disabled, Visibility toggling.
Auto Optgroup - Create optgroups automatically by choosing a column in your data grid.
## Using #field With Delimiter and Column Parameters
The #field variable allows you to extract the value of a field and place it elsewhere on your form or in an action.
#field can be used to dynamically access other columns of your data grid by providing additional parameters.
Learn more: Using #field With Delimiter and Column Parameters
## Data Grid CSV Import and Export
URL: https://wsform.com/knowledgebase/data-grid-csv-import-and-export/
Learn how to import and export WS Form data grids using CSV files, including multi-column layouts, grouped options, and system column settings.
In WS Form, Select, Checkbox, and Radio fields use a Data Grid to define choices. You can export that grid to a CSV file, edit it in a spreadsheet, and import it again, or build a CSV from scratch and import it.
### Where Import and Export Appear
Export CSV downloads a file with the current grid (all groups in one file).
Import CSV replaces the data grid using the file you choose.
You can also drag and drop a .csv file onto the data grid area to import it.
## Simple list of values (one column)
The minimum useful CSV is a header row naming your column, then one row per option.
Example:
Label
Apple
Banana
Cherry
After import, the grid has one column and three rows. You do not have to include system columns (below) unless you need them.
## Multi-Column Grids
Add more header names for each column you need (for example label, stored value, price). Each data row must have the same number of cells as your headers (aside from optional system columns—see below).
Example:
Label,Value,Price
Apple,apple,1.00
Banana,banana,1.50
Column names in the first row become the column labels in the builder. Your field’s settings (masks, value column, etc.) still control how those columns are used on the form.
Learn more: Data Grid Column Mapping
## System Columns (optional)
WS Form recognizes special column names (usually case-insensitive). They are not added as normal data columns; they set row behavior.
Column
Purpose
wsf_id
Numeric row ID. If omitted or duplicate, new IDs are assigned on import.
wsf_default
Use on to select this row by default.
wsf_required
Use on to mark the row as required where applicable.
wsf_disabled
Use on to disable the row.
wsf_hidden
Use on to hide the row.
wsf_group
Text label for the group/tab this row belongs to. See “Multiple groups” below.
A typical export puts system columns first, then your custom columns, for example:
wsf_id,wsf_default,wsf_required,wsf_disabled,wsf_hidden,wsf_group,Label,Value
1,on,,,Fruits,Apple,apple
2,,,on,,Fruits,Banana,banana
3,,,,on,Fruits,Cherry,cherry
4,,on,,,Fruits,Orange,orange
5,,,,,Fruits,Grape,grape
6,on,,,,Vegetables,Carrot,carrot
7,,,,,Vegetables,Broccoli,broccoli
8,,,on,,Vegetables,Spinach,spinach
9,,,,on,Vegetables,Onion,onion
10,,on,,,Vegetables,Potato,potato
## Multiple Groups
Data grids can have more than one group. Exports include every group in a single CSV.
The wsf_group column holds the group label for each row.
On import, each distinct wsf_group value becomes a group; first time a label appears in the file sets its order among tabs.
If wsf_group is missing from the file, the whole file imports as one group. The group label is derived from the file name (unless the import supplies a group label another way).
If the column exists but a cell is empty, that row is placed in a shared default group (labeled for translation as “Default” in the interface).
Workflow: export once, edit all tabs in one spreadsheet, save as CSV, import (or drag the file onto the grid) to restore multiple tabs in one step.
Learn more: How to Create Select Optgroups Using Data Grids
## Export File Name
CSV downloads use a fixed, generic file name: ws-form-data-grid-export.csv so exports are easy to spot and do not depend on which group was active.
## Tips
Prefer UTF-8 when saving from Excel or Google Sheets.
Keep the header row; the importer uses it to map columns and detect wsf_* fields.
After import, check the builder: column mappings and field-specific options may still need to match your columns.
Back up or export before large imports so you can revert by re-importing an earlier file.
After importing ensure your column mapping settings are correct.
## Data Grid Presets
URL: https://wsform.com/knowledgebase/data-grid-presets/
Quickly populate field data grids using built-in WS Form presets for countries, currencies, colors, industries, languages, and many other commonly used dataset…
WS Form includes a powerful collection of Data Grid Presets that enable you to quickly populate Select, Checkbox, Radio, and other choice-based form fields with pre-built option lists.
These presets help you build forms faster by eliminating the need to manually enter common datasets into a data grid. Popular presets include countries, currencies, credit card types, industries, languages, priorities, yes/no options, and many other commonly used form choices.
Data Grid Presets are ideal for contact forms, surveys, applications, registrations, payment forms, and any workflow that requires standardized dropdown, checkbox, or radio button options.
All presets are available through the Preset data source option within supported WS Form data grids.
## How to Use a Data Grid Preset in WS Form
Edit a Select, Checkbox, or Radio field in the WS Form form editor.
Open the appropriate data grid tab:
Options for Select fields
Checkboxes for Checkbox fields
Radios for Radio fields
Locate the Data Source setting at the top of the data grid.
Select Preset as the data source.
Choose a preset from the available list.
Click Get Data to automatically import the preset data.
Review the imported rows and configure column mapping if required.
Click Save & Close.
## Available Data Grid Presets
The following Data Grid Presets are included with WS Form:
## Data Grids
URL: https://wsform.com/knowledgebase/data-grids/
WS Form data grids make entering a list of information quick and easy. Data grids work in much the same way as a spreadsheet and provide a powerful way of mana…
Data grids allow you to set up the options shown in Select, Checkbox and Radio fields.
To access the data grid, field click the settings icon on a field.
On a select field you access the data grid by clicking the Options tab. On a checkbox field it is called Checkboxes and on a radio field the tab is called Radios.
An example of a data grid would be a list of countries or states. A more advanced data grid might be a table containing country abbreviations, full names, and ISO codes.
A data grid for a checkbox and the corresponding output is shown below:
Data grids can be easily populated by:
Manually entering data in a spreadsheet like interface.
Using one of our many presets (e.g. Country and state lists).
Pulling data from external data sources such as Posts, Users, Terms or even Advanced Custom Fields.
## Editing a Data Grid
To access the data grid, first click the settings icon on a Select, Checkbox or Radio field. You'll then find the data grid under:
Options tab for Select fields
Checkboxes tab for Checkbox fields
Radios tab for Radio fields
Tip: Click the expand icon (top right) to make the data grid editor the full width of the page.
The data grid editor is made up of the following components:
### Data Source
At the top of the data grid is the Data Source setting. When this is set to Off you can manually edit the data grid much like you would a spreadsheet.
Data sources allow you to pull data into your data grid automatically. You can import preset lists such as country or state names. You can also import data from Post, User, Term and from third party plugins such as Advanced Custom Fields.
### Groups
Data grids can have one or many groups. Groups are much like a sheet in a spreadsheet. Groups are used, for example, to group pulldown options into logical sets.
If your data grid only needs one logical list of data, e.g. a list of states or countries, you can stick to just one group. Note that some types of data grids are restricted to one group.
To add a group, click the add icon.
To delete a group, click the delete icon, while hovering over the group tab.
To rename a group, click on the settings icon, then enter a new label for the group.
You can also reorder groups by clicking and dragging them.
All groups have the same columns.
### Columns
Data grid columns in a data grid enable you to introduce new dimensions to your data. For example if you needed to store a state abbreviation in your form submission but display the full state name in your form to the website visitor, you would use two columns: State Abbreviation and State Full Name. You would then select the State Abbreviation as the value and the State Full Name as the label.
To add a column, click the add icon at the top right of the data grid table.
To delete a column, click the delete icon while hovering over the column name.
To rename a column, double click on the column heading, then enter a new label for the column.
## Rows
Each data grid record is represented as a row in the data grid table.
To add a row, click the add icon at the bottom right of the data grid table.
To delete a row, click the delete icon in the rightmost column of the row you wish to delete.
## Data
To edit the data in a data grid, simply click on a cell in a particular column and row and edit the value, much like you would in a spreadsheet. Pressing Return or clicking away from the cell will save it.
You can add HTML to cells too.
## Inserting Images
When you hover over a cell, the Insert Image icon will appear. Click on the icon to open the WordPress Select image modal. Select an image and then click Use this image. WS Form will then insert the HTML for that image in your cell.
## Row Settings
Each row will have various settings you can enable or disable. These settings are shown on the rightmost side of the data grid row.
Hover over the squares to see the available options. Different types of field will offer one of the four settings.
Selected This is the default selected row for the field type. For example this might be the default option that is shown in a select pulldown. If no rows are selected, the top row will be selected by default. Some field types allow you to select multiple selected rows by default.
Required Checkboxes and radios only. This will set the row to required. This means that the website visitor must check or select that row in order for the field to be valid. This is useful, for example, when you want to have a privacy policy or terms of use checkbox.
Disabled This will disable a row. For a select pulldown, this will typically show the row in light gray. For checkboxes and radio buttons, the input will be grayed out. Website visitors will be unable to select that row if the disabled setting is enabled.
Hidden This setting lets you hide a row completely from the form. This is useful if you want to temporarily hide a row and then show it at a later date.
## Bulk Actions
As well as deleting and changing settings at a row level, you can also bulk change or delete rows using the bulk action tool.
Select the rows you want to affect by checking the boxes in the leftmost column of the data grid. This will activate the bulk actions pulldown from which you can choose:
Set default
Set not default
Set required (Checkboxes and radios only)
Set not required (Checkboxes and radios only)
Set disabled
Set not disabled
Set hidden
Set not hidden
Delete
Click Apply to apply the bulk action.
## Rows Per Page
You can select how many rows are shown per page using this option. Select a number from the pulldown, then click the Apply button.
## Settings
The settings icon opens up further settings for the current group you are on.
### Label
Use this to edit the label of the group you are currently editing.
### Wrap in Optgroup (Select Fields)
For select fields you can wrap the options created from your data grid in an optgroup. An optgroup enables you to add groups of options in a pulldown. An example of using this might be to split countries into continents. If this is enabled, you have the option of disabling an entire optgroup much like you could an individual row.
### Auto Group By
This powerful feature enables you to automatically create data grid groups by selecting a particular column of your data grid.
Below we use the example of counties and continents to demonstrate this:
Assume you had two columns. The first column is called Continents. The second column is Countries. The first column would contain repetitions of the continents for each row containing a country in that continent.
By selecting Continents under the Auto Group By pulldown, WS Form will split up the rows into separate groups. Each group will contain the countries for each continent. You can then enable the Wrap in Optgroup feature to create an easy-to-use select pulldown that is logically grouped into continents.
## Export
You can export any of the groups by clicking the Export icon. This will download the current group in CSV format. The CSV file also contains columns for the row settings (see above).
## Import
You can import any CSV file into a data grid. This is useful for importing data such as a country or state list.
To import a CSV file, either click the Import icon or drag a CSV file into the data grid area. When you drag the file into the data grid area a blue box will appear with a dashed outline. Release the file into that area and the CSV import will being.
Note that when you import a file, all data in that data grid will be replaced with the CSV you import.
For sample CSV files that can be imported into a data grid, click here.
## Column Mapping
Depending on the field type you are editing, you will typically find a series of pulldowns below the data grid editor that enable you to select which column to use for a particular element of that field.
For example select pulldowns have a label and value. The label is what is shown to the website visitor. The value is what is ultimately stored in the form submission. You can set the label and value to the same column if you wish, or choose two different columns for the value and label.
Learn more: Data Grid Column Mapping
## Data Sources
URL: https://wsform.com/knowledgebase/data-sources/
WS Form data sources allow you to pull data from elsewhere into data grids for select, checkbox and radio fields.
Data sources are used to automatically populate Select, Checkbox and Radio fields as well as any other fields that support data lists (e.g. text fields).
### Demo
Examples of using data sources include:
Populating a select field with U.S. states.
Populating checkboxes that represent post tags or categories.
Populating radio buttons for selecting a user.
Populating a select field with options from an ACF, Meta Box, Pods or Toolset choice field.
Populating a select field with data returned from a PHP filter hook.
You'll find the data source option at top of all field data grids.
By default, the data source will be Off. The Off setting allows you to manually edit the data grid to control which items appear in your field.
Here's how to use a data source:
## 1. Select Data Source
Click the settings icon of the field you want to use a data source with.
Click on the right most tab in the sidebar (e.g. for a Select field this is called Options)
Use the Data Source setting to select a data source.
The following data sources can be selected:
Preset
Choose from over 25 categorized data sources such as a list of countries or US states.
Posts
List posts, pages or any other custom post types.
Terms
List terms from any taxonomy, also referred to as categories and tags in WordPress.
Users
List users filtered by role.
WordPress Filter Hook (Learn More)
Populate data grids using your own custom PHP code.
ACF Field Options (Advanced Custom Fields plugin)
Pull choices from ACF fields such as select and checkbox fields.
Meta Box Field Options (Meta Box plugin)
Pull choices from Meta Box fields such as select and checkbox fields.
Pods Field Options (Pods plugin)
Pull choices from Pods relation fields.
Toolset Field Options (Toolset plugin)
Pull choices from Tools relation fields.
Once you have selected a data source, the settings for that data source will be displayed.
## 2. Configure The Data Source
Each data source has its own settings. The Preset data source simply requires that you choose a preset. Other data sources such as Post have many more options that allow you to control and filter the data retrieved.
## 3. Get Data
Once you have configured the data source, you need to retrieve the data. To do this simply click on the Get Data button.
Once the data is retrieved it will be displayed in a preview data grid:
In the above example, we retrieved a list of countries using the Preset data source. Because this data is static, WS Form will change the Data Source dropdown to Off and then allows you to edit the data grid. Other data sources such as Post or Term are not editable because they update dynamically according to the posts or terms you have created in WordPress.
WS Form updates data sources in real-time. This means that if you create a select field that lists all users, it will keep that list up to date with all the users you have in your WordPress admin. Likewise if you create a field that lists all of your posts, it will keep that list up to date with all the posts you create.
It is possible to make any data source static and no-longer update automatically by choosing Off as the Data Source . Note that when Off is selected, the data grid will not update automatically if the original source data is changed.
## 4. Column Mapping (Optional)
Once you are happy with the data you have retrieved you should ensure your column mapping is correct. The column mapping settings are shown underneath the data grid.
There are three column mappings to consider:
Labels
Choose which column is used as the label shown to the user on the form.
Values
Choose which column is used as the value stored when a choice is made by the user.
Action Variables
Choose which column is used for displaying a users choice in email notifications and other integrations or actions.
By default, WS Form will use the first column for each of these settings.
Each time you retrieve new data you should ensure the column mappings are correct.
## 5. Save
Click Save & Close (or Save if you wish to make further edits) to save your data source settings.
## 6. Preview
Click the Preview button at the top of the layout editor to preview the form and test the field contain your data source settings.
## Data Sources: Google Sheets
URL: https://wsform.com/knowledgebase/data-sources-google-sheets/
The Google Sheets integration includes a data source that can be used to feed sheet data into Select, Checkbox and Radio fields.
The Google Sheets integration includes a data source that can be used to feed sheet data into Select, Checkbox and Radio fields.
An example use case for this feature would be populating the options shown in a select field from a sheet in Google Sheets. When the sheet rows are changed, the options in your field will also change automatically and are kept synchronized on you WordPress form.
## Creating a Google Sheet
The setup of a Google Sheet for use with a WS Form data source is very simple. The first row contains the column headings and the rest of the rows below that contain the data. An example sheet would look as follows:
Value
Label
option1
Option 1
option2
Option 2
option3
Option 3
option4
Option 4
option5
Option 5
option6
Option 6
There is no strict layout requirement other than the first row being headings. The WS Form column mapping system allows you to use virtually any sheet layout.
## Creating a Google Sheets Data Source
To create a Google Sheets data source for a Select, Checkbox or Radio field:
Edit the field.
For a Select field, click the Options tab. For a Checkbox field, click the Checkboxes tab. For a Radio field, click the Radios tab.
Choose Google Sheets from the Data Source setting.
Choose the file you want to load data from in the File setting.
Choose the sheet you want to load data from in the Sheet setting.
The update frequency determines how often WS Form should retrieve the data from the source. This defaults to Once Hourly but you can change this to Real-Time or a different increment of time. When previewing a form, real-time data is always used.
Click Get Data to do a test retrieval of the data from the sheet. The data will then appear below in a data grid.
## Column Mapping
Column mapping allows you to map different columns of your data grid to different parts of your field.
In the example above we would want to map the Value column to the Values mapping and the Label column to the Labels and Action Variables mapping.
## Setting Row Attributes
Depending on the field type, the following heading labels can be used to set row attributes:
Heading
Attribute
Field Types
Example
wsf_default
Default
Select, Checkbox, Radio
For a Select field, the option would be selected
wsf_required
Required
Checkbox, Radio
For a Checkbox field, the checkbox would be required
wsf_disabled
Disabled
Select, Checkbox, Radio
For a Select field, the option would disabled
wsf_hidden
Hidden
Select, Checkbox, Radio
For a Select field, the option would be excluded
An example Google Sheet using these headings for a Select field would be:
Value
Label
wsf_default
wsf_disabled
option1
Option 1
Yes
option2
Option 2
option3
Option 3
Yes
option4
Option 4
option5
Option 5
option6
Option 6
To enable an attribute you can use any of these cell values:
Yes / yes
On / on
True / true
1
## Data Sources: WordPress Filter Hook
URL: https://wsform.com/knowledgebase/data-source-wordpress-filter-hook/
The WordPress Filter Hook data source allows you to dynamically populate a data grids with your own data for fields such as Select, Checkboxes and Radios.
The WordPress Filter Hook data source allows you to dynamically populate data grids with your own data for fields such as Select, Checkboxes and Radios. It can also be used to populate data lists for fields such a Text, Email and URL. This done by writing custom PHP code.
Examples of ways in which you could populate a data grid using this data source include:
Querying a MySQL database
Dynamically reading data from a CSV or XML file
Complex WP_Query calls
The possibilities are endless!
## What are WordPress Filter Hooks?
WordPress Filter Hooks give you the ability to change data during the execution of WordPress Core, plugins, and themes. Callback functions for Filter Hooks accept a variable, modify it, and return it. Filters Hooks expect to have something returned back to them.
## Adding the Data Source to a Field
To add a data source to a field:
Click the settings icon of the field you want to use a data source with.
Click on the right most tab in the sidebar (e.g. for a Select field this is called Options)
Use the Data Source setting to select the WordPress Filter Hook data source.
Enter the name of our filter hook.
## Creating The Filter
First we are going to use the following function to create a new filter in WordPress:
add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )
You can learn more about this function by clicking here.
The tag we will use is a WS Form filter called:
wsf_test_data_source_hook
The second parameter provides WordPress with the callback function through which the form validation parameters will flow.
The third parameter determines the priority, we can just leave that with a number of 10.
The fourth parameter defines how many parameters are passed to the callback function. In the case of the WordPress Filter Hook, 3 parameters are passed.
The complete statement looks something like this:
add_filter( 'wsf_test_data_source_hook', 'wsf_test_data_source_hook_callback', 10, 3 );
You would typically add this code to your WordPress themes functions.php, and preferably in a child theme to avoid it getting deleted if you update your theme.
## Creating The Callback Function
This callback function is called automatically by WS Form when the data grid is populated.
Three parameters are passed to the callback function:
$data_grid - This array contains the data grid itself. It defines the columns, groups and rows of data for the data grid.
$field_id - This is the field ID on your form that is being populated. You can use this to ensure the data grid you are populating relates to the appropriate field.
$form_object - This is the entire form object should you need to reference it.
Here is an example of the callback function:
// My callback function for tag wsf_test_data_source_hook
function wsf_test_data_source_hook_callback( $data_grid, $field_id, $form_object ) {
// Check field ID
if( $field_id !== 123 ) { return $data_grid; }
// Build new data grid here
// ...
// Return the data grid back to the filter
return $data_grid;
}
This example does the following:
Checks that the field ID equals 123. You would replace this with the field ID you wish to populate.
A new data grid array is built.
The data grid is returned to the filter.
## A Full Example
A full example showing the format of the $data_grid array is shown below:
// Add a filter for WordPress Filter Hook data source to use
add_filter( 'wsf_test_data_source_hook', 'wsf_test_data_source_hook_callback', 10, 3 );
// My callback function for tag wsf_test_data_source_hook
function wsf_test_data_source_hook_callback( $data_grid, $field_id, $form_object ) {
// Check field ID
if( $field_id !== 48136) { return $data_grid; }
// Build new data grid
// Define columns
$data_grid[ 'columns' ] = array(
// Column 1
array( 'label' => __( 'Value' ) ),
// Column 2
array( 'label' => __( 'Label' ) )
// Other columns ...
);
// Define first group
$data_grid[ 'groups' ] = array(
// Group 1
array(
// Label for first group
'label' => __('My First Group'),
// Setting mask_group to 'on' will do the following:
// Select fields: Wraps the rows in an optgroup tag
// Checkbox and Radio fields: Wraps the rows in a fieldset tag
'mask_group' => '',
// Define rows in first group
'rows' => array(
// Row 1
array(
// Set as default row
'default' => true,
// Set required (Checkbox fields only)
'required' => false,
// Set disabled
'disabled' => false,
// Set hidden
'hidden' => false,
// Column data
'data' => array(
// Column 1
'value_1',
// Column 2
__( 'Label 1' )
)
),
// Row 2
array(
// Column data
'data' => array(
// Column 1
'value_2',
// Column 2
__( 'Label 2' )
)
),
// Row 3
array(
// Column data
'data' => array(
// Column 1
'value_3',
// Column 2
__( 'Label 3' )
)
)
// Other rows ...
)
)
// Other groups ...
);
return $data_grid;
}
You can use any PHP code you wish to populate the data grid.
## Retrieving Your Data
To test your PHP script, click the Get Data button. If an error occurs, WS Form will show an alert in the layout editor. If the data is successfully retrieved it will be shown in a data grid. This allows you to proceed to column mapping.
The Get Data button is only required for retrieving data to test your PHP script output and/or column mapping. Data is automatically retrieved when the select field is shown on your website.
If your PHP code relies on the $post global variable, note that when the Get Data button is clicked, $post won't be available. This is because the request is coming from a WordPress admin page rather than a page or post on your website. If your code relies on obtaining a post ID, then you should check if the $post global variable is available, and if not perhaps set the post ID to a test ID you can use for the purpose of testing your code.
// Test post ID for "Get Data" requests from the admin sidebar
$post_id_test = 123;
// Set post ID
$post_id = ( empty( $post->ID ) ? $post_id_test : $post->ID );
## Column Mapping
If your returned data contains multiple columns of data, you can use column mapping to determine which columns are used for the value and labels of Select, Checkbox and Radio fields. The column mapping settings are shown underneath the data grid.
There are three column mappings to consider:
Labels
Choose which column is used as the label shown to the user on the form.
Values
Choose which column is used as the value stored when a choice is made by the user.
Action Variables
Choose which column is used for displaying a users choice in email notifications and other integrations or actions.
By default, WS Form will use the first column for each of these settings.
Each time you retrieve new data you should ensure the column mappings are correct.
## Database Tables
URL: https://wsform.com/knowledgebase/ws-form-database-tables/
This article lists the database tables used by WS Form LITE and PRO.
Modifying database records yourself using MySQL is done at your own risk.
We are unable to provide support for any changes or imports made to these tables.
Always create a backup of your database before making changes.
WS Form LITE and PRO use the following database tables.
Table Name
Description
[table prefix]wsf_form
Forms
[table prefix]wsf_form_meta
Form Metadata
[table prefix]wsf_form_stat
Form Statistics
[table prefix]wsf_group
Tabs
[table prefix]wsf_group_meta
Tab Metadata
[table prefix]wsf_section
Sections
[table prefix]wsf_section_meta
Section Metadata
[table prefix]wsf_field
Fields
[table prefix]wsf_field_meta
Field Metadata
[table prefix]wsf_style
Styles
[table prefix]wsf_style_meta
Style Metadata
[table prefix]wsf_submit
Submissions
[table prefix]wsf_submit_meta
Submission Metadata
[table prefix]wsf_submit_note
Submission Notes
The default WordPress table prefix is wp_.
Settings data is saved in the wp_options table using the meta key ws_form.
## Date Formats
URL: https://wsform.com/knowledgebase/date-formats/
Date formatting in WS Form follows the same conventions used when formatting PHP dates.
Date formatting in WS Form follows the same conventions used when formatting PHP dates. For a list of available formatting string options, see the PHP date manual page.
Variables that use date formatting strings are as follows:
#field_date_format(field_id, "formatting string")
#post_date_custom("formatting string")
#server_date_custom("formatting string")
#blog_date_custom("formatting string")
#client_date_custom("formatting string")
For example:
#server_date_custom("m/d/Y H:i:s")
## Date/Time Field
URL: https://wsform.com/knowledgebase/datetime/
The Date/Time picker field creates a date and time selection popup. This field is useful for setting specific dates and times such as an event's start-and-end…
The Date/Time field creates an input that lets the website visitor choose one of the following types:
Date
Time
Date/Time
Week
Month
## Demo
## Adding a Date/Time Field
To learn how to add, edit, clone, move, resize, offset, or delete a date/time field, please click here.
For a cheat sheet on some of the most popular ways of configuring the date/time field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, First Name or Email.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Type
Choose from one of the follow types for the date/time field:
Date
Date/Time
Month
Time
Week
See demo above for examples of each of these types.
### Date Format
Select the date format that will be used by the jQuery date picker when a date is selected. The available formats are:
Format
Example Output
Default
Uses the WordPress date format
F, j Y
January 20, 2030
Y-m-d
2030-01-20
m/d/Y
01/20/2030
d/m/Y
20/01/2030
If you have the jQuery date picker disabled in Settings, the date format will be ignored.
### Time Format
Select the time format that will be used by the jQuery date picker when a time is selected. The available formats are:
Format
Example Output
Default
Uses the WordPress time format
g:i a
10:20 pm
g:i A
10:20 PM
H:i
22:20
If you have the jQuery date picker disabled in Settings, the time format will be ignored.
### Required
If checked this field will be required when the website visitor completes your form. Failure to complete the field if this is checked will result in a validation message appearing under the field prompting the user to complete the field correctly.
Required fields are indicated on your website with the word Required being adding to the label of the field. This can be changed in the form settings advanced tab.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Inline
If checked, the date / time picker will always be shown without the need of clicking on an associated input field. See demo above.
### Default Value
The default value setting is used to populate the field with some default content. Unlike the placeholder text, default values are stored when the form is saved or submitted. An example default value could be #server_date_custom("Y-m-d") to insert the current server date.
WS Form variables can be entered into this field.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### Auto Complete
Web browsers sometimes have features for helping users fill forms in, for example pre-filling the user's address based on earlier user input. The autocomplete content attribute can be used to hint to the web browser how to, or indeed whether to, provide such a feature.
Use this setting if you would like to specify the value of the autocomplete attribute. Use the off option to prevent auto complete on the field.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
### Exclusions
#### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
### Hidden Behavior
#### Always Include in Actions
This setting allows you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
The normal behavior for a field that has been hidden is that it will not be included if an action has a Clear Hidden Fields setting enabled. For example, if you have a Send Email action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the date/time field.
#### Label Position
There are five positions you can choose from for your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the form settings advanced tab. For new forms this will be the Top positioning.
Note that when using some frameworks some label positions may not be available.
#### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to Default Label Width and change the setting. 4. Click Save at the bottom.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
Field restrictions enable you to define what can or cannot be entered into the field.
#### Disabled
If checked the field will be disabled, and it cannot be interacted with. You can re-enable a field dynamically by using conditional logic.
#### Read Only
If checked the field will be read only. Read-only forms provide a way of showing a value in a field without giving the website visitor the opportunity to change the value.
#### Minimum
This is the earliest date/time that can entered into the field. You should enter a date in the format: yyyy-mm-dd (where yyyy = 4 digit year, mm = 2 digit month, dd = 2 digit day). For example:
2020-01-01
You can also enter a minimum date which is the current date plus or minus a certain number of days. This is done by using the date 1970-01-01 and then adding days to it. For example:
+1970-01-05
... this would set the minimum date to be the current date plus 4 days.
-1970-01-05
... this would set the minimum date to be the current date minus 4 days.
#### Maximum
This is the latest date/time that can be entered into the field. You should enter a date in the format: yyyy-mm-dd (where yyyy = 4 digit year, mm = 2 digit month, dd = 2 digit day). For example:
2020-01-01
You can also enter a maximum date which is the current date plus or minus a certain number of days. For example:
+1970-01-05
... this would set the maximum date to be the current date plus 4 days.
-1970-01-05
... this would set the maximum date to be the current date minus 4 days.
#### Start Year
Set the start year for the year selector.
#### End Year
Set the end year for the year selector.
#### Disabled Week Days
Select which days to disable.
Click the Add icon to add a new day.
Choose a day.
Repeat this for each day you wish to disable.
Click Save.
#### Disabled Dates
Select which dates to disable.
Click the Add icon to add a new date.
Enter a date in the format: yyyy-mm-dd.
Repeat this for each date you wish to disable.
Click Save.
#### Enabled Dates
Select which dates to enable.
Click the Add icon to add a new date.
Enter a date in the format: yyyy-mm-dd.
Repeat this for each date you wish to enable.
Click Save.
#### Time Step (For Date / Time and Time Types)
If your date / time picker has a time picker, this setting determines the increment of times shown in minutes. This defaults to 15 minutes. Set it 60 to only show hours.
#### Step
The step setting lets you set the interval between the date type chosen that will be valid. For example if the type is Month and the step is 2, every second month in the calendar can be selected.
#### Input Mask
Input masks help the user with the input by ensuring a predefined format. This can be useful for fields such as dates, numerics and phone numbers.
Example input masks can be selected by clicking the hamburger icon .
#### Pattern
This advanced field enables you to set the pattern attribute on a field. The pattern attribute specifies a regular expression that the element's value is checked against. This field is useful in, for example, forcing a website visitor to enter a phone number or date in a particular format that you require.
Example patterns can be selected by clicking the hamburger icon .
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Duplication
#### No Submission Duplicates
When checked, WS Form will check to see if a duplicate submission exists containing the same value for this field. If found, the submission will not be allowed and a message shown to the user completing the form.
#### Within
This setting lets you specify how recently WS Form should check for duplicates. The available options are:
Setting
Description
All Time
Check all submissions
Past Hour
Check submissions in the past hour
Past Day
Check submissions in the past 24 hours
Current Day
Check submissions since midnight
Past Week
Check submissions in the past 7 days (168 hours)
Past Month
Check submissions in the past month
Past Year
Check submissions in the past year
### Duplication Message
If a duplicate is found, this message will show.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted, and the field has not been completed according to the field settings you have configured. For example if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Datalist
Many field types have a datalist option. When a website visitor starts to type in a field, the browser will display options that it believes match what the website visitor is typing in. The website visitor can then click on the datalist option to speed up their data entry. Datalist is also used to provide hints to the website visitor as to the available options that can be entered for a field.
Tip: In some browsers you may need to activate a datalist function for this to work, while some older browsers may not support this feature.
To create datalist suggestions for the field, add rows to the datalist data grid. Data grids make entering lists of information quick and easy. You can also use the data grid to import a CSV file of data into the datalist field, which makes adding large suggestion lists easier than entering them one by one.
For more information about using WS Form data grids, click here.
## Debug Console - Testing and Debugging Forms
URL: https://wsform.com/knowledgebase/debug-console/
Learn how to use the WS Form debug console to rapidly test and debug forms.
The debug console enables rapid testing and debugging of WordPress forms created with WS Form PRO when viewing a form.
It has a populate feature that automatically completes the fields on your form with appropriate data and, in most cases, will enable you to submit a test form in a single click!
The debug console features a wealth of information about your form, including performance data on how quickly it was rendered in the browser and how long a submission took on the server.
It is also the place to find useful logs and error messages about your form.
## Enabling the Debug Console
If you let us know you are a developer when you completed the welcome steps after installing the plugin, the debug tool will already be enabled.
If the debug tool is disabled and you want to enable it:
Click WS Form in the Wordpress administration menu.
Click Settings.
Click the Basic tab at the top of the page.
Look for the Debug Console pull-down menu and select Show always if you always want to show the debug console on the front of your website, or Administrators only if you only want the debug console to appear if you are signed in as an administrator.
Click Save to save your changes.
The Show always option is useful during the development of a website, but remember to switch this off prior to go live of a new website.
The Administrators only option is the best option to use if you want to see the debug tool whenever you are signed into Wordpress as an administrator.
## Features of the Debug Console
### Resizing the Debug Console
The debug console can be resized by clicking and dragging the top bar. Adjust the debug console to your desired height and then release. You can also reset the height by clicking the + icon at the top right of the debug console, as well as minimizing the debug console by clicking the - icon.
### Instances
WS Form allows you to have multiple instances of the same or different forms on the same web page. This is useful if, for example, you want a newsletter form to appear in the header and footer of your website.
The instances of forms on a particular website are shown at the top of the debug console. Simply click an instance name to view information about that particular instance.
Each instance has its own independent set of tools and logs. To access the different features simply click the sub tabs found under the instance tabs. The different features are titled Tools, Log and Errors.
### Tools
The tools tab provides a variety of buttons along the top to help with testing a form instance as well as technical information about the form instance below that.
The tools are as follows:
#### Populate
By clicking the Populate button, WS Form will run through each of the fields on your form and attempt to complete them with random data that would qualify the form as validated. Each time you click the Populate button, the form will be re-populated with different data.
Note that some fields, such as the reCAPTCHA field, cannot be automatically populated and you will be required to complete them manually.
#### Submit
Click Submit to submit your form. WS Form will validate the form and, if validated, will submit your form and run your form actions.
#### Populate & Submit
As the title suggests, this populates the form with sample data and then submits the form in a single click.
#### Save
This performs the same action as the Save button.
#### Reload
This button will reload the form completely and set it up as if the page had just loaded.
#### Reset
This button resets the form fields to their initial state, including any default values.
#### Clear
This button will clear the form fields, regardless of their initial default values.
#### Identify
If you have a page with multiple instances of a form, clicking this will highlight the form on the page so that you can identify which form the debug instance tab relates to.
#### Edit
This will open the form builder for the form instance in a new browser tab.
#### Submissions
This will open the submissions page for the form instance in a new browser tab.
### Logs
The logs tab provides useful information as events occur in your tab. Different types of log are color coded to make identifying certain types of log easier. You can consider anything in the Logs tab a successful event. The following types of event are logged here:
Spam protection (e.g. Honeypot)
Duplicate protection (e.g. Disabling the submit button on submit)
Conditional logic
Actions
Google Analytics
Tracking
JQuery events
Form rendering
### Errors
Any server side errors that occur are captured here. This is useful for debugging errors such as email send issues or API connection issues with third parties such as MailChimp or ConstantContact if your key is incorrect.
## Deduplicating Form Submissions
URL: https://wsform.com/knowledgebase/deduplicating-form-submissions/
If a duplicate value is submitted into a field you can configure it to show a validation error.
WS Form allows you to prevent a form submission if a duplicate value is entered into a field on your form.
If a duplicate value is submitted into a field and the form is submitted, a deduplicate validation error will appear on the field. The message can be fully customized.
## Supported Field Types
The following field types support deduplication of data:
Text
Text Area
Number
Phone
Email
URL
Date/Time
Range Slider
Color
Rating
Search
## Deduplication Time Periods
Deduplication can also be assessed over the following time periods:
All Time
Current Day
Past Hour
Past Day
Past Week
Past Month
Past Year
## Configuring a Field for Deduplication
To configure a field for deduplication:
Click the Settings icon on a field to access the settings sidebar.
Click the Advanced tab.
Scroll down to the Duplication section and check the No Submission Duplicates setting.
Choose a timeframe using the Within setting.
Enter a custom message if you wish. The message will appear on the field as a validation message if a duplicate is found within the timeframe chosen.
Click Save.
## Disable the Virtual Keyboard on Mobile Devices for Date/Time Fields
URL: https://wsform.com/knowledgebase/how-to-disable-the-virtual-keyboard-on-mobile-devices-for-date-time-fields/
When using date/time field on mobile devices, the virtual keyboard can make interacting with the calendar distracting. Learn how to disable the virtual keyboar…
When using date/time field on mobile devices, the virtual keyboard that appears when you tap the date field can make interacting with the calendar distracting.
WS Form includes a Disable Virtual Keyboard setting on the date/time field. When checked, the mobile browser will be instructed to not show a virtual keyboard when the date/time picker is clicked.
## Demo (Mobile Only)
## How to Disable the Virtual Keyboard
To disable the virtual keyboard, first click on the settings icon on the date/time field.
Next check the Disable Virtual Keyboard option, then click Save & Close.
## Compatibility
This feature adds an attribute of inputmode="none" to the date/time input.
Learn more on caniuse.com about the cross browser compatibility of this setting.
## Alternative Method
WS Form also offers an inline date/time picker. Simply check the Inline setting when editing a date/time field.
## Display Checkboxes or Radios in Columns
URL: https://wsform.com/knowledgebase/display-checkboxes-or-radios-in-columns/
It is possible to use the grid orientation setting in checkbox and radio fields to display checkboxes or radios in a grid format.
It is possible to use the grid orientation setting in checkbox and radio fields to display checkboxes or radios in a grid format.
WS Form form layouts typically work with a 12 column grid (Learn more about responsive layouts). In addition to the grid, we also support different layouts for different breakpoints. A breakpoint represents a device screen width such as a mobile device, tablet, laptop or desktop computer.
WS Form supports different checkbox or radio grid configurations for each breakpoint. This means you can have a single column layout on mobile and a multi column layout on larger screen sizes, making the layout fully responsive.
## Demo
If you are on a computer, drag your web browser width to view the following responsive demo.
## Tutorial
To add columns to a checkbox or radio field (this includes e-commerce price checkbox and price radio fields):
Click the field settings icon. This will open up the field settings sidebar.
Under the Layout section of the sidebar is the Orientation setting. Select Grid.
After selecting Grid, the breakpoints for the current framework will be shown. For each breakpoint you can configure a column width. The full width will result in a single column format. The 1/2 with will result in a two column format, and so on. If you choose a column width on the smallest breakpoint, the larger breakpoints will inherit that same width unless you manually override that with a different value. An example configuration is shown below:
The Optimize button will enable if WS Form can help with improving the efficiency of the breakpoint configuration. Simply click on Optimize and WS Form will automatically reconfigure the widths. If you want to reset all of the widths and start over with a new configuration, click Reset.
Click Save and then click Preview to try your grid configuration.
## Display WordPress Form Submissions with DataKit
URL: https://wsform.com/knowledgebase/datakit/
DataKit is a PHP SDK that allows you to easily display WS Form submissions on the front-end of your website.
DataViews is a WordPress component that provides an API to render datasets using different types of layouts (table, grid, list, etc.). DataViews is included with WordPress.
DataKit is a PHP SDK that allows you to easily create DataViews from a variety of data sources, including WS Form.
## Demo
[dataview id="ws-form-datakit-dataview-test"]
## Tutorial
The DataKit plugin includes a WS Form data source which can be used to create DataViews that show WS Form submissions from any of your forms. Registering a DataView is achieved with some simple PHP code that can be added to functions.php or a code snippet plugin.
This tutorial explains how the above demo is achieved.
### Install DataKit
To learn how to install the DataKit plugin, please refer to https://docs.datakit.org/.
### Create Table Data Source
First create an instance of the WSFormDataSource class. In this example we create an instance for form ID 123. Change 123 to match your form ID.
// Create table data source
use DataKitPluginDataWSFormDataSource;
$dk_table_data_source = new WSFormDataSource( 123 );
### Create Table Fields
Next we configure which fields we want to display in the data view. DataKit provides a variety of different field types. In this example we are going to display an image field for a WS Form File Upload field and text fields for the name, email and phone fields.
// Create table fields
use DataKitDataViewsFieldImageField;
use DataKitDataViewsFieldTextField;
$dk_table_fields = array(
// File Upload (ImageField)
ImageField::create( 'field_1', 'Photo' )->not_sortable()->alt( 'My Image' )->size(50),
// First Name (TextField)
TextField::create( 'field_2', 'First Name' )->sortable()->always_visible(),
// Last Name (TextField)
TextField::create( 'field_3', 'Last Name' )->sortable()->always_visible(),
// Email (TextField)
TextField::create( 'field_4', 'Email' )->sortable(),
// Phone (TextField)
TextField::create( 'field_5', 'Phone' )->sortable(),
);
You can also include other submission meta data by changing the first parameter in the create method, for example:
id
date_added
date_updated
status
status_full
duration
tracking_remote_ip (Any tracking enabled is available as a meta key)
For security reasons, user data is not exposed publicly.
### Create Table Data View
Next we create the table data view by using the table method of the DataView class. In this example, we are using the paginate method to set the rows per page to 5.
// Create table data view
use DataKitDataViewsDataViewDataView;
$dk_table_data_view = DataView::table(
// Table ID
'ws-form-dataview',
// Table data source
$dk_table_data_source,
// Table fields
$dk_table_fields,
)->paginate(5);
### Register Table Data View
Next, we register the table data view. This needs to occur when the WordPress init action runs.
// Register table data view
add_action( 'datakit/loaded', function() use ( $dk_table_data_view ) {
do_action( 'datakit/dataview/register', $dk_table_data_view );
} );
### Add Shortcode to Page
Once the table data view has been registered it can then be embedded into any page using the dataview shortcode.
[dataview id="ws-form-dataview"]
## Tips
When using File Upload fields you should choose a public File Handler setting such as Media Library, otherwise the images won't render in the DataView.
## Further Reading
DataKit
DataKit Documentations
DataViews Component
## Divi 4 Visual Builder Module (Legacy)
URL: https://wsform.com/knowledgebase/divi-visual-builder-module/
If you use Divi for your WordPress website, you can use the WS Form PRO module to easily add forms to your website.
This module is maintained for Divi 4 compatibility. Divi 5 users should use the WS Form Divi 5 module instead.
If you use Divi for your WordPress website, you can use the WS Form PRO module to easily add forms to your website. The module is ready to use a soon as you have installed WS Form PRO, no additional plugins are required.
To use the module, simple click + and select the WS Form module when editing a page in Divi.
Then select your form from the pulldown list and that’s it!
For more information about Divi, click here. Divi is a plugin developed by Elegant Themes.
The Divi module was introduced in version 1.4.0 of WS Form PRO.
## Divi 5 Visual Builder Module
URL: https://wsform.com/knowledgebase/divi-5-visual-builder-module/
Add powerful, customizable forms to your Divi 5 website instantly using the native WS Form PRO module, with no additional plugins required.
If you use Divi 5 for your WordPress website, you can use the WS Form PRO module to easily add powerful, fully customizable forms directly within the Divi builder. The module is ready to use as soon as you install WS Form PRO, so there are no additional plugins, integrations, or setup steps required.
This makes WS Form one of the fastest ways to add professional forms to a Divi website. Whether you are creating contact forms, lead generation forms, surveys, registration forms, or multi-step workflows, everything can be managed directly inside Divi while taking advantage of the full WS Form feature set.
The WS Form Divi module is designed to feel completely native inside the Divi 5 builder. Once installed, it behaves just like any other Divi module, allowing you to quickly insert forms anywhere in your layout.
Because WS Form is built with performance and flexibility in mind, it integrates smoothly with Divi’s visual editing experience. You can design complex forms in WS Form and simply drop them into any Divi section, row, or layout without needing to copy shortcodes or manually configure embeds.
To use the module, simply click + and select the WS Form module when editing a page in Divi.
Once the module is added to your layout, you can select your form from the pulldown list and that’s it. The selected form will instantly render within your page layout.
This simple workflow means you can:
Build and manage forms centrally in WS Form
Insert them anywhere in your Divi layouts
Update forms without editing the page layout again
Reuse forms across multiple pages
WS Form also supports advanced capabilities that make it especially useful for Divi websites, including conditional logic, calculations, multi-step forms, integrations, spam protection, and detailed form analytics. These features allow you to go far beyond basic contact forms and create interactive, high-converting form experiences directly inside Divi.
For developers and designers working with Divi 5, this integration keeps your workflow efficient. Forms remain modular and maintainable while still being fully compatible with the visual builder.
For more information about Divi, click here. Divi is a plugin developed by Elegant Themes.
The Divi 5 module was introduced in version 1.10.80 of WS Form PRO.
## Divider Field
URL: https://wsform.com/knowledgebase/divider/
The divider is used to introduce a horizontal rule to your form. It is useful for separating areas of your form to make it easier to read.
The Divider field is used to introduce a horizontal rule to your form. It is useful for separating areas of your form to make it easier to read.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
### Label
The label for a divider is solely used to identify the divider in the administration system. It is unlikely you will change the label. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, First Name or Email.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
## Advanced
### Styles
Use the Styles settings to change the design of the divider.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Breakpoints
This feature is available in WS Form PRO.
The breakpoint settings define the width of a field and also what the offset of (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## dotdigital Integration
URL: https://wsform.com/knowledgebase/dotdigital/
The dotdigital integration lets you add contacts to dotdigital, pull contact data, and create new forms from your address books.
The dotdigital integration lets you push new contacts using an action, pull contact data into WordPress using the WS Form PRO autocomplete feature, and create new forms from your lists in a single click on the add form page.
The dotdigital integration requires WS Form PRO.
Tip: If you require a dotdigital account you can learn more here. Westguard Email is our very own edition of dotdigital.
## Installation
The dotdigital plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the dotdigital plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the dotdigital tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to dotdigital
In order to use the integration, you need to obtain an API email and password from dotdigital. It's a simple process.
### Obtaining an API Email and Password
Click on the User Settings icon on the bottom right of the screen and then click Access.
2. Click on the API Users tab and click New User.
3. Click Create A Key.
4. You will be provided with an API email. Enter a password and then click Save.
### Entering the API Email and Password
Click WS Form in the WordPress administration menu.
Click Settings.
Click the dotdigital tab at the top of the page.
Enter your API email and password.
Click the Save button.
## Creating a Form for dotdigital
### Automatically
WS Form can create a form for any of our dotdigital lists in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a dotdigital form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the dotdigital tab at the top of the page.
Click on any of your dotdigital lists to create a form.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the dotdigital tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to dotdigital when a user saves or submits their form.
To add a dotdigital action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a dotdigital List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The dotdigital action settings are as follows:
#### When Should This Action Run?
You can choose to run the dotdigital action when the form is saved, submitted, or both.
#### dotdigital Address Book
Choose the dotdigital Address Book you would like contacts to be added to. If you have created a new address book since viewing this screen, you can click the refresh icon to retrieve the new list.
#### Status
Select the contact subscriber status you would like new contacts added as. Choose from:
Subscribe to Address Book (API Info)
Unsubscribe from Address Book (API Info)
Resubscribe to Address Book (API Info)
Create (API Info)
Suppress (API Info)
Unsuppress (API Info)
#### Email Type
Select the email type you would like to sign up contacts for. We recommend leaving this as HTML..
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in dotdigital. For example you would want to map your Email field to the Email field in dotdigital.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding dotdigital field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
## Populate Forms Using dotdigital
As well as pushing form data with this integration, you can also retrieve contact data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a contact in dotdigital.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose dotdigital from the Action To Populate From pull down.
Select the list you wish to populate data from in the List To Populate From pull-down menu.
Map the dotdigital fields to your form fields.
Click Save at the bottom.
Note that if you created your form using a dotdigital template the field mappings will automatically be created for you.
## Drip Integration
URL: https://wsform.com/knowledgebase/drip/
The Drip integration lets you add, update, and delete people and subscribers, pull people data, and create new forms from your custom fields and tags.
The Drip integration lets you add, update, and delete people and subscribers using an action, pull people data using the WS Form autocomplete feature, and create new forms from your custom fields and tags in a single click on the add form page.
## Installation
The Drip plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Drip plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Drip tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Drip
In order to use the integration, you need to connect it to Drip. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Drip tab at the top of the page.
Click Connect and follow the onscreen prompts.
If you do not have a Drip account, you can create a new account here.
## Creating a Form for Drip
### Automatically
WS Form can create a form for any of your Drip lists in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a Drip form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Drip tab at the top of the page.
Click on any of your Drip campaigns (or click People to add a person but not subscribe them to a campaign) to create a form.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the Drip tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to Drip when a user saves or submits their form.
To add an Drip action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a Drip List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Drip action settings are as follows:
#### When Should This Action Run?
You can choose to run the Drip action when the form is saved, submitted, or both.
#### Drip Campaign
Choose the Drip Campaign you would like contacts to be added to. If you have created a new campaign since viewing this screen, you can click the refresh icon to retrieve the new list.
If you choose People, the person completing the form will not be subscribed to a campaign and will only be added to your People in Drip.
#### Method
Select the method you would like to process for this action. Choose from:
Create or update
Remove from campaign(s). (If you chose People as your Drip Campaign, the person will be unsubscribed from all campaigns)
Unsubscribe (This will unsubscribe the person from all campaigns)
Delete
#### Double Opt-In
If checked, the person will be required to double opt-in to be added to a campaign.
This only appears if you have chosen a campaign (i.e., you did not choose People).
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked, opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in Drip. For example, you would want to map your Email field to the Email field in Drip.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Drip field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Mapping
Custom mapping allows you to set a Drip field to any value you wish, including the use of WS Form variables. For example you might want to map a lead source to a source attribute in Drip, or perhaps set a transaction attribute ID to the #submit_id variable.
To add a custom mapping:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, enter a value or a WS Form variable.
In the middle column, select the corresponding Drip attribute.
In the right column, select whether you want to update, merge, or ignore duplicates.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tag mapping tells WS Form which of your form fields relate to tags in Drip.
To map a field:
Click the Add icon at the bottom right of the interest mapping section.
Select your form field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Interest mapped fields need to be a choice field, such as Select, Checkbox, or Radio fields.
If you use the automatic method above, WS Form PRO will automatically build interest mapping options for you.
## Populate Forms Using Drip
As well as pushing form data with this integration, you can also retrieve contact data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a contact in Drip.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose Drip from the Action To Populate From pull-down menu.
Select the list you wish to populate data from in the List To Populate From pull-down menu.
Map the Drip fields to your form fields.
Click Save at the bottom.
Note that if you created your form using a Drip template, the field mappings will automatically be created for you. You can also map tags.
## Dropbox Integration
URL: https://wsform.com/knowledgebase/dropbox/
The Dropbox integration allows you to push file uploads directly to a connected Dropbox account.
The Dropbox integration allows you to configure file fields to upload directly to a connected Dropbox account. You can choose which path to upload the files to and can easily access the files from the submissions page.
The integration creates a new file handler to WS Form called Dropbox.
## Installation
The Dropbox integration is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Dropbox integration, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Dropbox tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Dropbox
In order to use the integration, you need to connect it to Dropbox. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Dropbox tab at the top of the page.
Click Connect and follow the onscreen prompts
If you do not have a Dropbox account, you can create a new account here.
## How to Configure File Fields for Dropbox
To configure a file field to push its uploads to Dropbox:
Click the settings icon on the file field.
In the basic tab change the File Handler setting to Dropbox.
Optionally, change the upload path.
The upload path defaults to:
/Apps/WS Form/#form_id/#submit_hash/#field_id/
You can use WS Form variables in this path to make it dynamic. The default value ensures each form, submission and field on the form is given its own folder in Dropbox to minimize the chance of files being overwritten. Bear in mind that each file field can be configured with the Multiple setting to be able to upload more than one file.
Some variables you might find helpful for this path are:
Variable
Description
#field_id
The ID of the file field.
#form_id
Returns the ID of the form.
#submit_hash
The unique hash of the submission.
#submit_id
The unique identifier of the submission.
## Accessing Dropbox Uploads
To access the files that are uploaded to Dropbox, you can click on the file upload icons in submissions as you would any other file upload. The files are, of course, also accessible from within your Dropbox folder.
## Duplicate / Copy Field Values With #text
URL: https://wsform.com/knowledgebase/duplicate-copy-field-values-with-text/
The #text(...) variable is used to duplicate the value of field(s) in real-time.
The #text(...) variable is used to duplicate the value of field(s) in real-time.
## Examples
Example
Output
#text(#field(1))
Field 1 Content
#field_label(1): #text(#field(1))
Field 1 Label: Field 1 Content
#field_label(1): #text(#field(1) #field(2))
Field 1 Label: Field 1 Content Field 2 Content
## Demo
[ws_form id="13642"]
## Usage
#text can be used in the following field settings:
Values (Put #text in the Default Value field setting)
Help Text
Labels
Placeholders
An example of how to configure a text field with ID 2 to duplicate the value of field ID 1 is shown below:
## Dynamic Label, Placeholder and Help Text With #text
URL: https://wsform.com/knowledgebase/dynamic-label-placeholder-and-help-text-with-text/
The #text variable can be used in the 'Label' and 'Help Text' settings of fields to create dynamic labels and help text.
The #text variable in WS Form can be used to dynamically copy text from one field to another in the default value setting. It can also be used in the Label, Placeholder and Help Text settings of a field too to allow for dynamic label, placeholder and help text on a field.
## Demo
## Field Configuration
To achieve this, the following is entered into the Label, Placeholder or Help Text setting:
#text(#field(123))
... where 123 is the source field ID you want to copy the value from. This can be any text based field such as a text or hidden field.
Example field configurations are shown below:
## Dynamically Set a Select Field Value Using a Query Variable
URL: https://wsform.com/knowledgebase/dynamically-set-a-select-field-value-using-a-query-variable/
You can use conditional logic to dynamically set the value of a select field from a query variable.
You can use conditional logic to dynamically set the value of a select field from a query variable.
NOTE: Certain query variables are reserved by WordPress and will cause a redirect or 404 error. Please refer to the list of reserved query variables here.
For example, you might have a select field with the following values and labels:
Note that there are two columns:
Label - Shown to the user completing the form
Value - This is the select option value and is how we will reference that row
An example URL that could be used to set the select field might be:
https://mysite.com/my-form/?option=2
In this URL, we have a query variable with a name of option and a value of 2.
To use this query variable, you can use conditional logic as follows:
Notice the use of the WS Form variable in the THEN action:
#query_var("option")
This sets the selected row with a value that matches the query variable name option.
## E-Commerce
URL: https://wsform.com/knowledgebase/introduction-e-commerce/
WS Form PRO includes a powerful collection of e-commerce field types that enable you to create a variety of forms for selling products or services.
WS Form PRO includes a powerful collection of e-commerce field types that enable you to create a variety of forms for selling products or services.
You can optionally extend your e-commerce form with payment methods such as PayPal, Stripe Elements or Authorize.Net to enable you to take payment online.
Furthermore, you can even integrate e-commerce fields with WooCommerce products to allow for price customization. Learn more.
### Demo
An example e-commerce form is show below:
## E-Commerce Field Types
The following e-commerce field types exist:
Price (Invite a web user to enter a price, or fix the price by making the field read only)
Price Select (The web user selects a single product from a select dropdown)
Price Checkbox (The web user selects one or more products using checkboxes)
Price Radio (The web user selects a single product using radio buttons)
Price Range (The web user selects a price using a range slider)
Quantity (Multiply the value of any of the above price fields by a quantity)
Price Subtotal (Show the price x quantity)
Cart Detail (Add cart level pricing such as the subtotal, shipping or discounts)
Cart Total (Show the overall cart total)
WS Form e-commerce forms are completely flexible, which means you add just a payment button, or combine it with a price field, or a price field and a quantity field---the choice is yours. There is no fixed layout, and you are free to combine any e-commerce fields you wish. WS Form works out the calculations for you.
## Adding Payment Methods
You can add payment methods to your form for the following processors:
Stripe Elements
PayPal
Authorize.Net
## Changing Currency Settings
Currency settings for WS Form are set in Global Settings under the E-Commerce tab.
Keywords: ecommerce
## Elementor Widget
URL: https://wsform.com/knowledgebase/elementor-widget/
If you use Elementor for your WordPress website, you can use the WS Form PRO widget to easily add forms to your website.
If you use Elementor for your WordPress website, you can use the WS Form PRO widget to easily add forms to your website. The widget is ready to use as soon as you have installed WS Form PRO, no additional plugins are required.
To use the widget, drag the WS Form PRO widget from the Elements tab to your page.
Then select your form from the pulldown list and that’s it!
For more information about Elementor, click here.
The Elementor widget was introduced in version 1.4.64 of WS Form PRO.
## Email Address Validation
URL: https://wsform.com/knowledgebase/email-address-validation/
It is possible to validate a users email address by sending them a validation link.
It is possible to verify a users email address by sending them a validation link. When they click the validation link in an email they are returned to the form and the submission is verified. You can then use conditional logic to change the appearance or behavior of the form. This method can also be used as a form of double opt-in.
## Demo
## Template
WS Form comes with a template that can be used to build an email validation form. This can be found as follows:
Click Add New in the WordPress admin menu under WS Form.
Click the Demo tab.
Click the Email Validation template.
## How It Works
This process works as follows:
The user completes, at minimum, an Email field on your form and clicks a Save button to validate. The Validate Before Saving setting is enabled on the Save button to ensure the email field is completed.
WS Form sends the user an email containing a validation link. The link is inserted into the email using the #submit_url variable.
The user clicks the validation link and is returned to the same form. This validates the submission.
The submission is now in a validated state and conditional logic can be used to change the appearance of the form or immediately submit the form, or run any other conditions you wish.
The submission is given a spam value of zero which is indicated by a green dot on the submissions page.
## Conditional Logic
To determine whether or not a form submission has been validated by a user clicking on the link in the email, you can add conditional logic. An example IF condition for this is shown below which shows the form if the submission is not validated, and submits the form immediately if the submission is validated:
Additional keywords: verification, verify, verified
## Email Field
URL: https://wsform.com/knowledgebase/email/
The email field lets your website visitor enter email address(es).
The Email field lets your website visitor enter an email address(es). By using the url field, mobile users will be presented with a keyboard optimized for entering email addresses. This keyboard type prominently features the at ("@"), period (".") and space characters.
## Demo
## Adding an Email Field
To learn how to add, edit, clone, move, resize, offset, or delete an email field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, Email Address.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Required
If checked this field will be required when the website visitor completes your form. Failure to complete the field if this is checked will result in a validation message appearing under the field prompting the user to complete the field correctly.
Required fields are indicated on your website with the word Required being adding to the label of the field. This can be changed in the form settings advanced tab.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Default Value
The default value setting is used to populate the field with some default content. Unlike the placeholder text, default values are stored when the form is saved or submitted. An example default value could be mail@example.com.
WS Form variables can be entered into this field.
### Multiple
The multiple property sets or returns whether an email field should accept multiple values/emails on form submission. When set to true, it specifies that the user is allowed to enter more than one value/email in the email field. Separate each email with a comma in the email field, such as mail@example.com, mail2@example.com, or mail3@example.com.
### Placeholder
Field placeholders are used to place text in a field prior to the website visitor completing the field. The web browser then removes the placeholder text when text is entered into the field. Placeholder text is typically used to provide an example of what should be entered into that field, such as mail@example.com for a email field. If this field is left blank, a placeholder will not be added to the field.
Placeholder text is not stored when the form is saved or submitted.
WS Form variables can be entered into this field.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### Auto Complete
Web browsers sometimes have features for helping users fill forms in, for example pre-filling the user's address based on earlier user input. The autocomplete content attribute can be used to hint to the web browser how to, or indeed whether to, provide such a feature.
Use this setting if you would like to specify the value of the autocomplete attribute. Use the off option to prevent auto complete on the field.
### Prefix / Suffix
The prefix and suffix settings allow you to add a prefix box and/or suffix box to the field.
For example, you could add a unit of measure as a suffix, or an @ symbol as a prefix.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
### Hidden Behavior
#### Always Include in Actions
This setting allows you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
The normal behavior for a field that has been hidden is that it will not be included if an action has a Clear Hidden Fields setting enabled. For example, if you have a Send Email action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the email field.
#### Label Position
There are five positions you can choose from for your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the form settings advanced tab. For new forms this will be the Top positioning.
Note that when using some frameworks some label positions may not be available.
#### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to Default Label Width and change the setting. 4. Click Save at the bottom.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
Field restrictions enable you to define what can or cannot be entered into the field.
#### Disabled
If checked the field will be disabled, and it cannot be interacted with. You can re-enable a field dynamically by using conditional logic.
#### Read Only
If checked the field will be read only. Read-only forms provide a way of showing a value in a field without giving the website visitor the opportunity to change the value.
#### Minimum Character Length
This is the minimum number of characters that need to be entered into the field in order for it to be valid. Leaving this blank will set the minimum character length to zero. If the field is submitted without the minimum character length defined, a validation error will appear under the field.
#### Maximum Character Length
This is the maximum number of characters that can to be entered into the field in order for it to be valid. Leaving this blank will set the maximum character length to infinity. If the field is submitted with more than the maximum character length defined, a validation error will appear under the field. Typing will typically be limited to this number of characters.
#### Pattern
This advanced field enables you to set the pattern attribute on a field. The pattern attribute specifies a regular expression that the element’s value is checked against. This field is useful in, for example, forcing a website visitor to enter an email address in a particular format that you require.
Example patterns can be selected by clicking the hamburger icon .
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Allow or Deny
This feature allows you to allow or deny email addresses. You can enter specific email addresses or enter wildcard addresses to, for example, block all email addresses from a particular domain name.
#### Method
Choose Allow to only allow the email address(es) you enter. Choose Deny to deny any email address(es) you enter.
#### Email Addresses
Click the + icon to add an email address. Use the * character to enter wildcard values. For example:
*@wsform.com
This would allow or deny an email address for the wsform.com domain name.
*.com
This would allow or deny any email address having the .com TLD.
#### Message
If an email address is rejected, this message will be shown as invalid feedback on the field itself. You can change this message by entering your own in this setting.
### Transform
#### Transform
The transform setting can be used to force the case of the characters that are entered in the field. For example, choosing Uppercase will convert any lowercase characters entered into the field to uppercase. There are four transform options:
Uppercase
Lowercase
Capitalize
Sentence
To see examples of how the transform options work, you can learn more by reading our Transform Strings knowledge base article.
### Duplication
#### No Submission Duplicates
When checked, WS Form will check to see if a duplicate submission exists containing the same value for this field. If found, the submission will not be allowed and a message shown to the user completing the form.
#### Within
This setting lets you specify how recently WS Form should check for duplicates. The available options are:
Setting
Description
All Time
Check all submissions
Past Hour
Check submissions in the past hour
Past Day
Check submissions in the past 24 hours
Current Day
Check submissions since midnight
Past Week
Check submissions in the past 7 days (168 hours)
Past Month
Check submissions in the past month
Past Year
Check submissions in the past year
### Duplication Message
If a duplicate is found, this message will show.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted, and the field has not been completed according to the field settings you have configured. For example if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Datalist
Many field types have a datalist option. When a website visitor starts to type in a field, the browser will display options that it believes match what the website visitor is typing in. The website visitor can then click on the datalist option to speed up their data entry. Datalist is also used to provide hints to the website visitor as to the available options that can be entered for a field.
Tip: In some browsers you may need to activate a datalist function for this to work, while some older browsers may not support this feature.
To create datalist suggestions for the field, add rows to the datalist data grid. For more information about using WS Form data grids, click here. Data grids make entering lists of information quick and easy. You can also use the data grid to import a CSV file of data into the datalist field, which makes adding large suggestion lists easier than entering them one by one.
## Email Field Validation
URL: https://wsform.com/knowledgebase/email-field-validation/
Learn how WS Form validates email fields using HTML5 and RFC 5322, and how to require a top-level domain.
WS Form uses HTML5 input types to provide built-in validation for common field types, including email addresses. When you add an Email field to your form, it automatically uses HTML5 email validation based on the official specification: RFC 5322.
## What Is Valid According to RFC 5322?
RFC 5322 allows a wide range of valid email address formats. For example, the following address is considered valid:
user@localhost
someone@somewhere
While these may not be common in everyday use, they are still valid according to the specification.
This format is technically valid and may be used in internal networks, but it is not recommended for most websites.
## How to Require a TLD in an Email Address
If you want to require users to enter a complete email address including a top level domain (TLD), such as test@example.com, you can add a pattern attribute to the field.
.+@.+..{2,}
This pattern ensures that:
The email has valid characters before and after the @ symbol
A period and a valid top-level domain (like .com or .org) are included
The TLD is at least two characters long
## How to Add This Pattern in WS Form
To add this pattern to an Email field:
Click the settings icon on the field.
Click the Advanced tab.
In the Pattern setting enter: .+@.+..{2,}
Click Save & Close.
Publish the form if necessary.
## Demo
## Additional Resources
Preventing Form Spam
How to Block Form Submissions by Domain Name
Spam Check with Clearout
## Email Notifications Not Working
URL: https://wsform.com/knowledgebase/email-notifications-not-working/
WS Form sends emails using a built-in function provided by WordPress called wp_mail. This is the same function used by other WordPress form plugins. Sending em…
WS Form sends emails using a built-in function provided by WordPress called wp_mail. This is the same function used by other WordPress form plugins.
If you are experiencing problems sending email notification, this article suggests ways to correct that problem.
## Error Messages
If you are receiving a specific error message, the following knowledge base articles will help:
"Error sending email" Error
"Could not instantiate mail function" Error
## SMTP Plugins & Services
We recommend using an SMTP plugin and service. These plugins improve email deliverability by sending your emails via an SMTP server as opposed to directly from your server.
The default wp_mail() function in WordPress relies on the PHP mail() function, which sends email directly from your web server. This method is often unreliable because many hosting providers block or limit outgoing mail, and messages sent this way are more likely to be flagged as spam. Additionally, wp_mail() provides limited error handling and logging, making it difficult to troubleshoot failures. Using an SMTP plugin ensures your emails are authenticated, logged, and sent through a trusted mail server, greatly improving reliability and deliverability.
Configuring SMTP for WordPress for Reliable Email Deliverability
## Recommended Send Email Settings
When sending email acknowledgements using the Send Email action, we recommend using the following settings for optimal reliability.
### From Email Address
Default: #blog_admin_email
The From Email Address setting should be a valid email address that is authorized to send emails.
Refer to your hosting or SMTP provider about which email address you should use. For example, Amazon SES users would use a verified email address or domain name.
Do not send emails from the email address entered on the form, e.g. by using #field(123).
If you want to have replies to email acknowledgements go to a different email address, use the Reply To setting (See below).
### From Display Name
Default: #blog_name
This can be anything you wish and should be something that easily identifies the entity sending the email.
If you are using an SMTP plugin that does not support display names then we recommend keeping this blank.
### To Email Address
Default: #blog_admin_email
This is the email address you want the email acknowledgement to go to. It can be any valid email address(es) you wish.
If the email is being sent to the person completing the form you can use the #field(123) variable to insert their email address (where 123 is the ID of the email field on the form). Ensure that the variable in syntactically correct.
### To Display Name
Default: #blog_name
This can be anything you wish and should be something that relates to the identity of the recipient (e.g. their name).
If you are using an SMTP plugin that does not support display names then we recommend keeping this blank.
If the email is being sent to the person completing the form you can use the #field(123) variable to insert their name (where 123 is the ID of the text field on the form containing their full name, first name or last name).
### Reply To (Optional)
Default: Blank
If you want to have replies to emails acknowledgements go to a different email address, use the Reply To setting. For example if you have an email field on your form with an ID of 123, you could enter: #field(123)
## Error Messages
If you are receiving the error message Could not instantiate mail function, please refer to this knowledge base article:
Error Could not instantiate mail function When Sending Emails
## From / To Email Addresses
Sending test emails from and to the same email address will sometimes result in the email not reaching its intended recipient. It will often end up in a spam folder and sometimes the email will be deleted altogether.
## Check Your Spam Folder
Don't forget to check your spam folder when testing. Many email systems are very sensitive and may inadvertently put your email in the spam folder. Consider whitelisting your From Email Address to ensure email notifications are received.
## Publish Your Form
If you have made changes to your Send Email action, ensure you have published your form.
## Submissions
WS Form stores all submissions in a database if you have a Save Submission action on your form. If you have any email deliverability issues you can check the submissions page for a complete list of all forms that have been completed.
## Related Articles
Email Settings
Send Email Action
## Enable and Disable Dates and Times Using PHP
URL: https://wsform.com/knowledgebase/enable-and-disable-dates-and-times-using-php/
This tutorial provides code samples for disabling and enabling dates and times in Date / Time fields.
You can disable and enable dates and times in Date / Time fields using the 'Disabled Dates', 'Enabled Dates' and 'Enabled Times' settings. These settings are available on the following Date / Time field types:
Date
Date / Time
Time
It is possible to dynamically set disabled and enabled dates and times using PHP.
Example code for doing this can be found below.
## Disabled Dates
In this example we disable two dates for form ID 123 and date/time field ID 321. Disabled dates are entered in the format yyyy-mm-dd.
meta->disabled_dates = array(
array( 'disabled_dates_date' => '2025-03-01' ),
array( 'disabled_dates_date' => '2025-03-03' )
);
// Return the form
return $form;
}
// Add filter to change form ID 123 prior to rendering
add_filter( 'wsf_pre_render_123', 'my_pre_render_123' );
## Enabled Dates
In this example we enable two dates for form ID 123 and date/time field ID 321. Enabled dates are entered in the format yyyy-mm-dd.
meta->enabled_dates = array(
array( 'enabled_dates_date' => '2025-03-01' ),
array( 'enabled_dates_date' => '2025-03-03' )
);
// Return the form
return $form;
}
// Add filter to change form ID 123 prior to rendering
add_filter( 'wsf_pre_render_123', 'my_pre_render_123' );
## Minimum and Maximum Dates
In this example we set the minimum and maximum date for form ID 123 and date/time field ID 321. Dates are entered in the format yyyy-mm-dd.
meta->min_date = '2025-03-01';
$field->meta->max_date = '2025-03-15';
// Return the form
return $form;
}
// Add filter to change form ID 123 prior to rendering
add_filter( 'wsf_pre_render_123', 'my_pre_render_123' );
## Enabled Times
In this example we enable two times for form ID 123 and date/time field ID 321. Enabled times are entered in the format hh:mm:ss.
meta->enabled_times = array(
array('enabled_times_time' => '15:00:00'),
array('enabled_times_time' => '16:00:00')
);
// Return the form
return $form;
}
// Add filter to change form ID 123 prior to rendering
add_filter( 'wsf_pre_render_123', 'my_pre_render_123' );
## Minimum and Maximum Times
In this example we set the minimum and maximum time date/time field ID 321 on form ID 123. Times are entered in the format hh:mm:ss.
meta->min_time = '13:00:00';
$field->meta->max_time = '18:00:00';
// Return the form
return $form;
}
// Add filter to change form ID 123 prior to rendering
add_filter( 'wsf_pre_render_123', 'my_pre_render_123' );
## Engine Awesome Integration
URL: https://wsform.com/knowledgebase/engine-awesome-add-on/
The Engine Awesome integration lets you push new records to objects using a WS Form action.
The Engine Awesome integration lets you push new records to objects using an action and create new forms from your Engine Awesome objects in a single click on the add form page.
An example use of this integration would be to add sales inquiries as Contacts and Companies in Engine Awesome.
## Demo
The Engine Awesome integration can be used to add multiple objects by using multiple Engine Awesome actions.
Download Contacts & Companies Form Demo
In this demo, WS Form creates a Company object first. It then creates a Contact object and links it to the Company by using the #engine_awesome_object_id WS Form variable. That variable holds the ID of the Company object, and WS Form places it into the Company field on the Contact object.
## Installation
The Engine Awesome plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Engine Awesome plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Engine Awesome tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Engine Awesome
In order to use the integration, you need to connect it to Engine Awesome. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Engine Awesome tab at the top of the page.
Click Connect and follow the onscreen prompts
If you do not have a Engine Awesome account, you can start with one of their application templates.
### Working Objects
After connecting Engine Awesome, you can select the objects you want to work with on the settings page. Custom objects you create in Engine Awesome are also included in this list. When the plugin is first installed, we select the most common objects for you such as Contact, Companies and Activities.
To add or change the objects you want to work with, choose the objects from the select list on the Engine Awesome settings page.
To select more than one object:
On a Mac, hold the Command key and click the object names
On a PC, hold the CTRL key and click the object names
Click Save after you have made any changes.
## Creating a Form for Engine Awesome
### Automatically
WS Form can create a form for any of your Engine Awesome objects in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a Engine Awesome form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Engine Awesome tab at the top of the page.
Click on any of your working Engine Awesome objects.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your object does not appear, click the refresh icon in the Engine Awesome tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to a Engine Awesome object when a user saves or submits their form.
To add a Engine Awesome action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to Engine Awesome from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Engine Awesome action settings are as follows:
#### When Should This Action Run?
You can choose to run the Engine Awesome action when the form is saved, submitted, or both.
#### Object ID
Select the working Engine Awesome object you would like to push data to. Leave blank to create a new record.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Update Existing Records
Check this setting if you want to update existing records.
#### Find Existing Records By
Choose which Engine Awesome field to find existing records by, e.g. Email.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in Engine Awesome. For example you would want to map your Email field to the Email field in Engine Awesome.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the leftcolumn, select your form field.
In the right column, select the corresponding Engine Awesome field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Mapping
Custom mapping allows you to set a Engine Awesome field to any value you wish, including the use of WS Form variables. For example you might want to map a lead source to the source field in the Lead object in Engine Awesome.
To add a custom mapping:
Click the Add icon at the bottom right of the field mapping section.
In the left column, enter a value or a WS Form variable.
In the right column, select the corresponding Engine Awesome field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
## Variables
When the integration creates or finds a duplicate object, the object ID can be used in subsequent Engine Awesome actions by using the following variables:
Variable
Description
#engine_awesome_object_id
ID of the last object created.
#engine_awesome_object_id_first
ID of the first object created.
#engine_awesome_object_id_
ID of the object created by index. Starts at 1.
This means that you can associate other objects with a previously created object (e.g. an opportunity related to a contact).
## Troubleshooting
If the connection between your website and Engine Awesome stops working, click Disconnect then Connect to reconnect.
If any submissions to do not make it to Engine Awesome because of a technical error, you can resend them:
Go to Submissions.
Find and view the submission that did not push to Engine Awesome.
Scroll down to the action section.
Click the Re-run Action icon.
## Error: 400 Bad Request
URL: https://wsform.com/knowledgebase/400-bad-request/
A 400 error will typically occur if the client (i.e. your browser) makes a bad request to the server.
A 400 error will typically occur if the client (i.e. your browser) makes a bad request to the server. This could be a malformed request or sometimes a request that the server cannot or will not handle. 400 errors are not caused by WS Form.
Here are some common causes and solutions for a 400 error.
## Cookies & Caching
If your web browser cookies and/or cache become corrupt or invalid it could cause this error.
A simple way of checking for this is to open your WordPress website in incognito mode and see if that remedies the problem. If it does, we recommend clearing your browsers cookies and cache.
It is also possible that caching plugins and/or server caching could be causing this issue, so try temporarily disabling any caching in place to see if this remedies the situation.
## Large Uploads
Servers are typically configured with upper limits on the size of requests that can be uploaded to it. Having a file upload field on your form can greatly increase the size of the request when the form is submitted. If this exceeds the configured limits, a 400 error will occur. Check with your hosting provider as to the max limits set in place.
## Anti-Virus Software
Client side software such anti-virus software (e.g. BitDefender Antivirus) that manipulates requests from your web browser before they reach the server can cause 400 errors too. Double check your settings in that software to make sure it is not causing malformed requests to occur.
## Error: 401 Unauthorized
URL: https://wsform.com/knowledgebase/401-unauthorized/
A 401 unauthorized error message indicates that the request has not been applied because it lacks valid authentication credentials for the target resource.
A 401 unauthorized error message indicates that the request has not been applied because it lacks valid authentication credentials for the target resource. There are various reasons this might happen and some of the most common reasons are listed below.
## WordPress Plugins
Some WordPress plugins have an option to disable the WordPress REST API. Modern form plugins such as WS Form use the WordPress REST API for the administering your form but also for form submissions. In fact many other WordPress features such as the block editor and blog post comments use this feature too. It provides you with a stable and secure means by which to accept form submissions. You should therefore ensure that the WordPress REST API is not disabled or blocked.
Plugins which block the WordPress REST API will typically return the following message:
{"code":"rest_forbidden","message":"Sorry, you are not allowed to do that.","data":{"status":401}}
Some WordPress security plugins may also accidentally block access to certain URLs. Check if your security plugin has blocked any paths that might be used by WS Form. Temporarily disabling your security plugin may help isolate the issue to that particular plugin. The WordPress REST API starts with the following path:
/wp-json/
The WS Form API path starts with:
/wp-json/ws-form/v1/
## Password Protected Pages
Make sure that you have no password protected makes incorrectly, otherwise accessing those pages without a password will result in a 401 error. In particular, WS Form uses the WordPress REST API therefore you should ensure access to pages under:
/wp-json/
... are accessible without a password unless absolutely necessary.
## NONCE Error
If you have page caching enabled and it is incorrectly configured it might cause form editing or submissions to fail. Systems that cache web pages such as Cloudflare, Cloudfront and also WordPress plugins that provide page caching can cause this error to occur if they are not configured correctly.
The reason for this may be a WordPress feature called a NONCE (Number used ONCE). A nonce is a unique code that is sent to your web server whenever your form talks to WordPress in the background. Their intended purpose is to ensure that data sent to your website is from a valid source and they helps prevent unauthorized access to your website.
WS Form and other popular plugins use this feature to secure your website.
NONCE values are valid for 12 hours, after which any subsequent use of that value will result in an error.
If the page cache timeout setting is set to a value that is too long, an expired nonce may continue appear in web pages and this will result in this error.
To ensure your WordPress website is able to handle nonce values properly, we recommend that any page caching is set to 10 hours OR LESS. In the majority of cases, a page cache duration of 1 hour or less is sufficient.
Please refer to your caching plugin, CDN or other caching mechanism about checking changing this setting.
For more information about nonces, please visit: https://developer.wordpress.org/plugins/security/nonces/
## Error: 403 Forbidden
URL: https://wsform.com/knowledgebase/403-forbidden/
A 403 Forbidden error message while editing your form may be the result of your hosting provider using mod_security.
WS Form uses the WordPress REST API for saving and submitting forms. This is the same API that is used by the WordPress admin, blog commenting and many other popular plugins. It is the preferred choice for providing a secure method of posting data to a WordPress website.
If you get a 403 Forbidden error when editing or using a form, it means that you do not have permission to perform that API request. This may be due to a security issue or, more commonly, a page caching misconfiguration on your server.
Here are some things you can check:
## Page Caching Misconfiguration
If you have page caching enabled and it is incorrectly configured it might cause form editing or submissions to fail. Systems that cache web pages such as Cloudflare, Cloudfront and also WordPress plugins that provide page caching can cause this error to occur if they are not configured correctly.
One possible reason for this may be a WordPress feature called a 'NONCE' (Number used ONCE). A NONCE is a unique code that is sent to your web server whenever your form talks to WordPress in the background. Their intended purpose is to ensure that data sent to your website is from a valid source and they helps prevent unauthorized access to your website.
WS Form will use a NONCE of forms under the following conditions:
If the 'Enable NONCE' setting is checked in Global Settings (Advanced tab). This setting is disabled by default.
If a user is logged in.
If the NONCE is cached for too long, it becomes stale and WordPress will issue a 403 error when a form is submitted. This is not a WS Form error. The error comes from WordPress when it receives the POST request from your form. Many modern plugins and WordPress features use NONCEs to protect websites.
Nonce values are valid for 12 hours, after which any subsequent use of that value will result in an error.
If the page cache timeout setting is set to a value that is too long, an expired NONCE may continue appear in web pages and this will result in this error when a form is saved or submitted.
To ensure your WordPress website is able to handle NONCE values properly, we recommend that any pages containing a form are cached for 10 hours OR LESS. In the majority of cases, a page cache duration of 1 hour or less is sufficient.
Please refer to your caching plugin, CDN or other caching mechanism about checking changing this setting. Ensure that both server-side and browser caching is correctly configured.
For reference, the NONCE actions used by WS Form are:
wp_rest
wsf_post
For more information about nonces, please visit: https://developer.wordpress.org/plugins/security/nonces/
## LiteSpeed
If your hosting is using LiteSpeed, please ensure that ESI (Edge Side Includes) is enabled.
Enable ESI at a server level
Enable ESI at a plugin level
## mod_security
Check if you have mod_security running on your server. mod_security is an open-source web-based firewall application supported by different web servers. LiteSpeed web server, for example, has mod_security enabled by default.
WS Form has been tested with the following mod_security rulesets:
OWASP
Comodo WAF
An incorrectly configured mod_security application can cause WS Form and other popular plugins to not work correctly.
403 forbidden errors can be caused by mod_security mistaking API requests made by WS Form as potential threats. In fact, even saving posts or pages containing certain words can trigger mod_security to prevent that request.
If you experience this we would recommend discussing this issue with your hosting provider and asking them to reconfigure mod_security such that it is not misinterpreting requests as threats. Whitelisting your own IP is one option.
Another option is to whitelist requests made by WS Form. All of our API requests contain the following base path:
/wp-json/ws-form/v1/
If reconfiguration is not an option, you also have the option of disabling mod_security by adding the following code to your .htaccess file. Do so at your own risk. This syntax may vary depending on the web server that your hosting provider uses.
SecFilterEngine Off
SecFilterScanPOST Off
More information on Stack Overflow.
## Firewalls
A misconfigured firewall can also cause WordPress API calls to fail and result in a 403 error. Check with your firewall software provider to confirm it is correctly configured.
### Cloudflare
Under some circumstances Cloudflare managed rulesets might produce a false positive and block legitimate form requests. In this case you might wish to allow requests containing the following path:
/wp-json/ws-form/v1/
For further assistance, please contact your hosting, firewall or cache provider.
## Error: 404 Not Found
URL: https://wsform.com/knowledgebase/404-not-found/
This article can help if you are receiving a 404 error when editing or submitting a form.
A 404 Not Found error message indicates that the server was unable to find the requested resource. However, in some cases a 404 error message may be returned if WordPress or the server is not configured correctly to allow access to the WordPress REST API.
WS Form and even some core WordPress features rely on the WordPress REST API and therefore it should not be disabled.
If you receive a 404 error message when editing or submitting a form you may receive an error that includes a path such as:
/wp-json/ws-form/v1/form/1/put/
Here are some things you can check:
## WordPress Security Plugins
Ensure that any security plugins are not inadvertently restricting access to the REST API. Some security plugins offer options to disable the REST API so you should ensure this setting is not in use.
## Firewalls
If you're using a server level firewall such as ModSecurity, verify that it is configured to allow access to the REST API endpoints.
## Permalink Settings
Ensure your WordPress Permalink settings are set to Post name and not Plain.
## Error Logs
If the above suggestions do not correct the problem, we would recommend checking your error logs for further clues. Consider reaching out to your hosting provider who may be able to provide a further insight into the cause of the 404 error message.
## Whitelist the WS Form Rest API Endpoints
If you need to whitelist the REST API endpoints for WS Form, you can whitelist requests including the following path:
/wp-json/ws-form/v1/
## Error: 500 Internal Server Error
URL: https://wsform.com/knowledgebase/500-internal-server-error/
If you’re seeing a 500 Internal Server Error after submitting a form, this article will help you identify the issue.
If you’re seeing a 500 Internal Server Error after submitting a form, it means something has gone wrong on the server. The server may or may not provide an error message.
## What is a 500 Error?
A 500 error is a general server-side error. It means the server tried to process a request but encountered an unexpected condition that prevented it from completing it. The problem could stem from PHP code, plugin conflicts, server configuration, or even low server resources.
## Common Causes of 500 Errors
PHP errors (e.g. syntax issues, calling undefined functions)
Fatal plugin or theme conflicts
Server resource limits (memory, execution time, etc.)
Corrupted .htaccess file (especially on Apache servers)
Misconfigured permissions
Missing or outdated PHP extensions
## How to Troubleshoot a 500 Server Error
### Check the WS Form Debug Console
If you're working with WS Form, enable the Debug Console in the plugin settings:
Go to WS Form > Settings from the WordPress admin menu.
In the Basic Tab, set Debug Console to Administrators only.
Click Save.
Then preview your form. If an error occurs, the Error tab in the debug console may give you more information, especially if the issue is coming from a specific action like Send Email or Run WordPress Hook.
### Enable WP_DEBUG Logging
Turn on debugging in WordPress to reveal PHP errors:
Open your site's wp-config.php file.
Add or modify the following lines:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Reproduce the error, then check the log file at /wp-content/debug.log.
Look for fatal errors or uncaught exceptions that occurred during form processing.
## Check your Hosting PHP Error Log
Most hosting environments keep a PHP error log that records issues like fatal errors, syntax problems, or missing dependencies. You can usually access this log through your hosting control panel, or via FTP/SFTP under a directory like /logs or /var/logs. Review the log entries around the time the error occurred. Look for lines marked FATAL ERROR, UNCAUGHT EXCEPTION, or anything referencing a plugin or theme file. These entries often pinpoint the exact line of code or file causing the 500 error. If you're not sure how to locate the error log, your hosting provider's support team should be able to assist.
## Use the Browser Inspector
Your browser’s built-in developer tools can help you quickly identify if a 500 error is occurring during a form submission. To get started, open the browser inspector by pressing F12 or right-clicking anywhere on the page and selecting Inspect. Then navigate to the Network tab.
Submit the form again while the Network tab is open. Look for a request that returns a 500 status code—this indicates a server-side error. Click on that request to view more details, then open the Response sub-tab. If the server returned any error output (such as a PHP fatal error or exception), it will appear here.
This step is especially helpful when errors aren't visibly displayed on the page, or when the response is partially masked by the server. It provides a direct look at what the server sent back to the browser and can offer clues for troubleshooting.
## Fixing the Issue
Once you've identified the error, possible solutions may include:
Fixing or rolling back custom code
Disabling the plugin or theme causing the error
Increasing memory_limit or max_execution_time in php.ini
Restoring a previous version of your .htaccess file
Reinstalling missing PHP modules (e.g. curl, json, mbstring)
If the issue is tied to a WS Form action (like a webhook or integration), double-check the action’s configuration and API credentials.
## Error: Could not instantiate mail function
URL: https://wsform.com/knowledgebase/error-could-not-instantiate-mail-function/
The “Could not instantiate mail function” message appears when WordPress fails to send an email. This article explains the causes and provides solutions.
The error message "Could not instantiate mail function" comes from a piece of software called PHPMailer. It occurs when PHP’s native mail() function fails to start the mail process, usually due to a server configuration issue.
Most hosting providers discourage using PHP’s built-in mail() function because it is unreliable and often blocked for spam prevention. Instead, they recommend sending email through an authenticated SMTP server or external mail service.
This issue is not caused by WS Form.
This article explains common causes and how to fix them.
## Set Up an SMTP Server
The most reliable way to send email from WordPress is to use an SMTP (Simple Mail Transfer Protocol) server instead of PHP’s built-in mail() function. SMTP uses authentication and secure connections, which improves deliverability and avoids the "Could not instantiate mail function" error.
Solution: Install an SMTP plugin. Then connect it to a trusted email provider. Most plugins include setup wizards that guide you through entering SMTP credentials and testing the connection.
Reputable SMTP providers include:
Postmark (WordPress plugin)
Mailgun (WordPress plugin)
SendGrid
Amazon SES
Once SMTP is configured, WS Form and other plugins that use WordPress’s email functions will automatically send mail through the new connection.
Configuring SMTP for WordPress for Reliable Email Deliverability
## Invalid Email Address
Make sure your Send Email action settings are correct:
Use valid From and To email addresses.
The From address should use a verified domain that matches your website or SMTP provider.
Avoid using the same email address for both From and To.
By default, WS Form sends emails to:
#blog_admin_email – The Administration Email Address in WordPress > Settings > General
#blog_name – The Site Title in WordPress > Settings > General
You can override these in the Send Email action.
## SMTP Plugin Does Not Support Display Names
WS Form supports display names in email addresses (e.g., Joe Bloggs ), as allowed by RFC 2822.
However, some SMTP plugins do not support this format and may cause emails to fail.
Solution: Try clearing the Display Name settings in the Send Email action and try sending again.
## Invalid Subject Line
Some mail servers reject subject lines with special characters or excessive length.
Best practices:
Use only alphanumeric characters.
Keep the subject between 10–60 characters.
## Running a Local Server (e.g. WAMP)
Local development servers often do not have a mail server installed, so PHP cannot send emails.
Solution: Use an SMTP plugin with an external SMTP provider when developing locally.
## SMTP Provider Quotas
Some SMTP providers impose daily or hourly send limits. If these are exceeded, email delivery will fail.
Solution: Log in to your SMTP provider’s dashboard to check your quota and usage statistics.
## Plugin Conflict
Some plugins that modify email headers or behavior can cause conflicts.
Solution:
Deactivate all plugins except WS Form.
Test email sending.
Reactivate plugins one at a time, testing after each.
Once you identify the conflicting plugin, check its settings or contact its support team for help. If possible, disable only its email-related functionality or replace it with an alternative.
## Outdated or Incompatible PHP Version
Older PHP versions may be incompatible with newer WordPress or plugin code used for sending emails.
Solution: Make sure you’re using a supported PHP version (WordPress recommends PHP 8.1 or higher). You can check your version under Tools > Site Health > Info > Server.
## Summary
This error usually means your server isn’t configured to send email using PHP. The most reliable solution is to install an SMTP plugin and configure it with a trusted email provider such as Gmail, SendGrid, Amazon SES, or Mailgun.
SMTP connections are authenticated, more secure, and provide better deliverability than PHP’s mail() function.
If the issue persists, contact your hosting provider to verify mail capabilities or request SMTP credentials.
## Related Articles
Email Notifications Not Working
Email Settings
Send Email Action
## Error: Error sending email
URL: https://wsform.com/knowledgebase/error-error-sending-email/
The “Error sending email” message appears when WordPress fails to send an email. This article explains the causes and provides solutions.
If you see this message after submitting a form, it means the website tried to send an email but something went wrong and no clear reason was provided.
This isn't a problem with WS Form or the form itself. It's usually caused by an issue with the website's email setup. A common cause is an email plugin (like SMTP) that isn't working properly but also isn't showing a helpful error message.
This article outlines possible causes and solutions for resolving this issue.
## SMTP Plugin Silently Failed
If you are using an SMTP plugin it is possible it failed but did not report an error message.
Some SMTP plugins override wp_mail() but fail to fire the wp_mail_failed action when an error occurs, preventing WS Form from detecting what went wrong.
Solution: Check your SMTP plugin to see if it has a logging feature you can use to identify the error. If no logging is available, try using a different SMTP plugin with full error handling support.
Check that you are sending emails using an email address that has been validated / verified by your SMTP provider.
## SMTP Plugin Does Not Support Display Names
WS Form supports display names in email addresses (e.g., Joe Bloggs ), as allowed by RFC 2822.
However, some SMTP plugins do not support this format and may cause emails to fail.
Solution: Try clearing the Display Name settings in the Send Email action and try sending again.
## PHP mail() Function Silently Failed
If you're not using an SMTP plugin, WordPress relies on PHP’s native mail() function. If this function fails without triggering wp_mail_failed, WS Form cannot log a detailed error.
Solution: Install an SMTP plugin to bypass PHP mail() and ensure email delivery is logged and traceable.
## Invalid Send Email Action Settings
Malformed or missing email fields in your WS Form Send Email action can cause wp_mail() to fail.
Solution:
Ensure all email addresses are valid
Set a valid subject line and email body
## Local Development Server
Local web servers (such as WAMP, MAMP, or LocalWP) typically don’t have a mail server configured, so wp_mail() fails silently.
Solution: Use an SMTP plugin with credentials from a real email service provider.
## Plugin Conflict
Another plugin may be interfering with the email process or blocking errors from being reported.
Solution:
Deactivate all plugins except WS Form
Test your form
Reactivate plugins one at a time to identify the source of the conflict
## Outdated or Incompatible PHP Version
Older versions of PHP may not handle email operations correctly or may be missing required extensions.
Solution: Upgrade your server to a supported PHP version (e.g., PHP 8.1 or higher).
## No Error Logging Available
Because wp_mail_failed was not fired, WordPress provided no additional error details to WS Form.
Solution: Enable WordPress debug logging by adding the following to your wp-config.php file:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
Then check the /wp-content/debug.log file for any email-related messages after submitting your form.
## Summary
The "Error sending email" message means WordPress’ wp_mail() function returned false without providing an explanation. This usually indicates a misconfigured email setup or an incompatible plugin.
The most reliable solution is to use an SMTP plugin with a verified email provider and ensure your Send Email action settings are correct. If the issue persists, test your server’s email capabilities independently or contact your hosting provider for assistance.
## Related Articles
Email Notifications Not Working
Email Settings
Send Email Action
## Error: Invalid Token Format
URL: https://wsform.com/knowledgebase/invalid-token-format-error/
If you receive the error "Invalid Token Format" when submitting a form, it is likely being caused by a third party plugin.
If you receive the error "Invalid Token Format" when submitting a form, it is likely being caused by a third party plugin that uses the Google API, such as the WP Gmail SMTP plugin.
This error is not caused by WS Form and we would recommend contacting the support team of the plugin causing the error.
## Error: INVALID_SESSION_ID - Session expired or invalid
URL: https://wsform.com/knowledgebase/error-invalid_session_id-session-expired-or-invalid/
Learn how to fix a broken Salesforce connection in WS Form by reconnecting your account and resolving common authentication issues.
If you encounter this error when submitting a form that uses the Salesforce integration, it usually means the connection to Salesforce is no longer valid and needs to be re-established.
This can happen for a few reasons, such as when the connected Salesforce user has:
Changed their password
Had their password expire
Been deleted, frozen, or deactivated
Been affected by Salesforce login or security policies
In some cases, the issue may also be caused by a temporary network error on your hosting provider that prevents the OAuth token from refreshing properly.
You can also check the Salesforce Status Page to determine if there are any issues with the Salesforce API.
## Recommended Salesforce User Configuration
For the most reliable operation, we recommend creating a dedicated Salesforce user account exclusively for the WS Form integration. Avoid using a personal user account that is also used for day-to-day administration.
We recommend the following configuration:
Use a dedicated Salesforce user for WS Form.
Configure the user's password so that it does not expire, if permitted by your organization's security policy.
Avoid changing the integration user's password unless necessary.
Ensure the user is not subject to login hour restrictions.
Ensure the user is not subject to IP restrictions that could prevent API access.
Ensure the user account remains active and is not frozen or deactivated.
## Reconnect to Salesforce
To reconnect to Salesforce:
Navigate to WS Form > Settings > Salesforce.
If the status shows Connected, click Disconnect.
Click Connect and follow the on-screen instructions to reconnect.
Re-select any Objects or Flows you are using.
Click Save.
## Re-Run Failed API Requests
If any submissions did not make it to Salesforce because of this error, you can re-run requests as follows:
Go to Submissions.
Find and view the submission that did not push to Salesforce.
Scroll down to the Actions section.
Click the Run Again icon.
## Error: json key is missing the client_id field
URL: https://wsform.com/knowledgebase/google-sheets-disconnects/
How to reconnect to Google Sheets if the connection fails.
The Google Sheets integration uses oAuth to connect to Google and will automatically keep the connection alive. oAuth provides an efficient way of establishing and maintaining a secure connection to Google.
Although unusual, the Google Sheets integration may present an error because the oAuth connection to Google has dropped.
You may see this error: json key is missing the client_id field
## Potential Reasons for Google Sheets Disconnecting
Your connection to Google Sheets might be dropping due to one of the following reasons:
Same credentials used on multiple sites (e.g. Staging / Development sites)
OAuth only allows one site to be connected with a specific set of credentials. If more than one site uses the same credentials, they will interfere with each other and cause a disconnect. Only connect one site per credential set. Check that you don't have a staging / development site that is causing this.
Network issues
A persistent network error between your website and Google’s servers can break the connection.
Password changes
If the Google account password was changed, the connection may be lost and will need to be reauthorized.
## How to Reconnect Google Sheets
To reconnect Google Sheets, please follow these steps:
In WordPress, click on Settings from the WS Form admin menu.
Click the Google Sheets tab.
Click on the Disconnect button (if visible).
Click the Sign in with Google button to reconnect to Google Sheets.
Follow the online prompts to re-connect WS Form to Google Sheets ensuring you allow the required permissions.
If problems persist, try the above reconnection steps again ensuring that Google prompts for permissions.
Also ensure that you are running the latest version of the WS Form Google Sheets integration.
## Reset App Permissions (Optional)
If the above steps don’t resolve the issue, you may need to remove the WS Form app from your Google account:
Go to: https://myaccount.google.com/permissions
In the Third-party apps with account access section, click on WS Form (If it is not present, skip to the next set of instructions).
Click Remove Access.
Reconnect WS Form to your Google account using the steps above.
## Enable Email Error Notifications
It is possible to receive email notifications if the connection fails in future. To do this please follow these instructions:
Send Submissions Error Email Notifications
## Error: Unable to move file to destination
URL: https://wsform.com/knowledgebase/error-unable-to-move-file-to-destination/
Learn why WS Form may show the “Unable to move file to destination” error and how to fix common file permission issues that cause it.
When a file is uploaded and processed, WS Form moves the uploaded file from its temporary source path to a final destination. That destination depends on the file handler you have selected, such as WS Form Private, WS Form Public, or the WordPress Media Library.
If you encounter the error Unable to move file to destination, it means WS Form was not able to move the uploaded file from the temporary location to the intended destination directory.
Below are the most common reasons why this can occur and how to resolve them.
## File Permissions
When WS Form moves a file, two steps are performed:
The file is copied from the source path to the destination path.
The original source file is deleted.
These actions use the WordPress WP_FileSystem move method. For the process to work correctly, both the source and destination paths must allow your web server to read, write, and remove files as needed.
### Source Path
The source path for uploaded files depends on your hosting environment. It is typically one of the following:
The upload_tmp_dir value set in php.ini (if configured)
Your system temporary directory, such as /tmp on Linux servers
Confirm that the web server user has read and write permissions for this directory. Without the correct access, WS Form cannot retrieve or remove the temporary upload file.
### Destination Path
The destination path is determined by the File Handler selected in your WS Form settings. Common paths include:
WS Form Private: /wp-content/uploads/ws-form// WS Form Public: /wp-content/uploads/ws-form// Media Library: /wp-content/uploads///
The web server must have write permissions for whichever directory applies. If the server cannot write to the destination directory, the file move process will fail.
## Etch
URL: https://wsform.com/knowledgebase/etch/
Learn how to add a WS Form form to a page using Etch.
Etch is a modern visual development platform that lets you build scalable, maintainable, and accessible WordPress sites through a fully visual workflow without compromising capability.
To add a form in Etch you can simply use the WS Form shortcode anywhere in your page markup.
## Getting the Shortcode
There are a couple of ways to get the WS Form shortcode.
### Form Layout Editor
When editing a form:
Click on the Form Settings icon.
At the top of the sidebar, click the shortcode to copy it.
### Forms List
Click on WS Form > Forms in the WordPress admin.
Click on the shortcode in the forms list to copy it.
## Learn More
To learn more about the WS Form shortcode:
The WS Form Shortcode
## Styling Forms
Styling forms is carried out in WS Form itself.
Styles
Styler
## Extract Select, Checkbox & Radio Labels
URL: https://wsform.com/knowledgebase/extract-select-checkbox-radio-labels/
WS Form PRO has various variables that can be used to extract the chosen text from a select, checkbox or radio.
Select, checkbox and radio fields consist of two key components:
Value
Label
The values are what are sent to the web server when a form is submitted. These values appear in email acknowledgements or are sent to third party integrations you might have with WS Form PRO.
The label is what is shown to the user completing your form to help them make a decision about which select, checkbox or radio to choose.
Sometimes it can be useful to be able to extract the label of a chosen select, checkbox or radio for use in another field. For example, you might want to show the text value of a select field elsewhere in your form instead of an ID number.
WS Form PRO has various variables that can be used to extract the chosen label from a select, checkbox or radio. Furthermore if multiple select options or checkboxes are chosen, WS Form PRO will delimit those values.
Here is a demo of those variables:
## Demo
## Conditional Logic
In the demo above, conditional logic is used to detect when a select, checkbox or radio is changed. When a change occurs, the value of the text fields is set to the label value of the corresponding field. An example of this conditional logic is shown below:
## Fathom Analytics Events Action
URL: https://wsform.com/knowledgebase/fathom-analytics-events/
If you are using Fathom Analytics on your website you can use WS Form to fire off events when a form is submitted.
Fathom Analytics is a privacy-focused website analytics tool. It's designed as an alternative to more traditional analytics services like Google Analytics, with a strong emphasis on user privacy and data protection.
If you are using Fathom Analytics on your website you can use WS Form to fire off events when a form is submitted. This is done by adding a Conversion Tracking acton to your form.
To add a Conversion Tracking action:
Click the Actions icon at the top of the layout editor. The Actions sidebar will open on the side of the page.
Click the Add icon to add a new action.
Select Conversion Tracking from the Action pulldown. A series of settings will appear.
In the Type setting choose Fathom Analytics.
In the Event Name setting enter an event name. Learn more about acceptable event names.
Optionally enter a Cents value for the event. 100 = $1.
Optionally enter a Site ID to associate the event with.
Click Save & Close.
Your form will now fire a Fathom Analytics event when the form is submitted.
## Fields
URL: https://wsform.com/knowledgebase/fields/
All of the available fields can be found in the toolbox sidebar. To add a field to your form, simply click and drag a field from the toolbox to a section of yo…
## Adding Fields
All of the available field types can be found in the Build sidebar. the Build sidebar is shown on the right of the page when you first start to edit a form, or it can be accessed at any time by clicking the Build icon in the main toolbar.
To add a field to your form, simply click and drag a field from the Build to a section of your form. As you drag the field across to a section, you will notice the field changes into a box and placeholders will appear showing you where you can drop the field. You can place a field at any point in a section.
Once you have dropped the field into the form, you can immediately start typing a label for it. To save the field label, you can either type Enter or click somewhere on the page away from the field.
## The Anatomy of a Field
## Cloning Fields
To clone a field:
Click the field settings icon
Click the clone icon
A cloned version of the field will then appear. It will inherit the width, offset, and settings of the field you cloned.
## Deleting Fields
To delete a field:
Click the field settings icon
Click the delete icon
The field will then be deleted. If you delete a field in error, you can always click the undo icon or use the undo tool in the Build on the right-hand side of the page.
## Moving Fields
You can move a field around the form by clicking and dragging the field to a new position within the same section or a different section.
You can also move fields between tabs. Click and drag the field over a tab. Then simply drag the field into a section of the tab you selected.
## Resizing Fields
You can resize fields to be 1-12 columns wide by clicking the resize icon on the right side of a field.
For developers it is possible to adjust the number of columns used from the main Settings page under the Advanced menu. Click here to learn more.
## Offsetting Fields
Offsetting a field will move it inward from the left side of the screen. This is useful if you want to right align or center a field in a form.
You can offset fields by 1-11 columns wide by clicking the offset icon on the left side of a field.
Note that fields that are as wide as the form itself cannot be offset.
## Changing Field Settings
To access the field settings, click the field settings icon. The field settings toolbar will then appear on the right of the page.
Most field settings are split into Basic and Advanced. The basic tab allows you to change all of the key features you are likely to need on a simple form. The advanced tab provides greater control over the field.
Field settings specific to each field can be found by clicking on a field type on our Field Type page.
## Renaming Field Labels
To rename the label of a field, you have two options:
You can double click the label of the field, enter a new field, and then type Enter or click somewhere on the page away from the field.
Click the field settings icon to open the field settings toolbar. Change the label at the top of the toolbar and then click the Save button at the bottom of the toolbar.
## File Upload Accept Parameters
URL: https://wsform.com/knowledgebase/file-upload-accept-parameters/
How to use the accept attribute in file upload fields to determine which file MIME types or extensions can be chosen.
When adding a file upload field to a form, developers often need to specify which file types should be accepted. This is particularly useful for improving user experience and ensuring security by restricting uploads to only the necessary file formats.
## The Accept Attribute
In HTML, the element for file uploads supports the accept attribute, which allows developers to define the types of files users can select. The accept attribute can take various arguments based on MIME types, file extensions, or specific categories.
For example:
image/png, image/jpeg In this example, only PNG and JPEG images will be selectable when users browse for files to upload.
## Setting the Accept Attribute in WS Form
In WS Form, the accept attribute is set in the File Upload field settings in the Advanced tab.
## Accept Argument Formats
The accept attribute can take three types of arguments:
### 1. File Extensions
You can use file extensions using a dot (.) followed by the extension. This is probably the easiest way of restricting the types of files that can be uploaded.
For example:
.jpg, .png, .gif In this example, the file upload field would restrict the file selection to JPEG, PNG, and GIF image files.
.doc, .docx, .xls, .xlsx
In this example, the file upload field would restrict the file selection to Microsoft Word and Microsoft Excel files.
### 2. MIME Types
MIME (Multipurpose Internet Mail Extensions) types specify the format of a file. Common MIME types include:
Images: image/png, image/jpeg, image/gif
Audio: audio/mpeg, audio/wav
Video: video/mp4, video/webm
PDF: application/pdf
Microsoft Word (.doc) application/msword
Microsoft Word (.docx) application/vnd.openxmlformats-officedocument.wordprocessingml.document
For example:
application/pdf
In this example, the file upload field would restrict the file selection to PDF files.
Learn more: Common MIME Types
### 3. Wildcard MIME Types
Wildcard MIME type selection can also be used, allowing any format of a particular media type.
For example:
image/* allows all image formats.
audio/* allows all audio formats.
video/* allows all video formats.
## Combining Multiple Accept Arguments
You can specify multiple accept arguments by separating them with commas.
For example:
image/jpeg, image/png, .pdf This allows users to select JPEG or PNG images, as well as PDF documents.
## File Upload Field
URL: https://wsform.com/knowledgebase/file/
The file upload field lets the user choose one or more files from their device storage to be uploaded.
The File Upload field lets the user choose one or more files from their device to be uploaded with the form when it is submitted. When the form is submitted file uploads can be saved to submissions, attached to emails or mapped to integrations where supported.
## Demo
## Adding a File Upload Field
To learn how to add, edit, clone, move, resize, offset, or delete a file upload field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, First Name or Email.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Type
There are two types of file upload field:
Default
DropzoneJS
The DropzoneJS type has various performance advantages. Images are uploaded immediately when using the DropdownJS type whereas the default type uploads when the form is submitted. This can reduce the time it takes to submit a form. For images, the DropzoneJS type performs image resizing, format and quality changes in the browser as opposed to the server which can reduce file upload times.
### Required
If checked this field will be required when the website visitor completes your form. Failure to complete the field if this is checked will result in a validation message appearing under the field prompting the user to complete the field correctly.
Required fields are indicated on your website with the word Required being adding to the label of the field. This can be changed in the form settings advanced tab.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Multiple
If this setting is enabled, the website visitor will be able to choose more than one file to upload.
### Placeholder (DropzoneJS type only)
The placeholder setting is used to configure the text that shown in the DropzoneJS field prior to any files being added, in this case the user is prompted to drop files in the field.
Placeholder text is not stored when the form is saved or submitted.
WS Form variables or even an SVG can be entered into this field.
The following example adds text and an upload icon:
Drop files here to upload.
### Directory (Regular type only)
If this setting is enabled, the website visitor will be able to choose from an entire directory with file contents (and any subdirectories) when uploading a file.
### Capture
The capture setting is used to tell mobile devices whether or not to capture an image when the file field is tapped / clicked on. The available options are:
Setting
Description
Off
The device will not capture a file. Instead the user is prompted to select a file.
On
The device will capture a file using the default camera.
User Facing Camera
The device will capture a file using the front facing camera.
Environment Facing Camera
The device will capture a file using the environment (rear) facing camera, if available.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
### File Handler
File handlers in WS Form determine the final destination of uploaded files when the form is submitted. You can specify different destinations for each file field on your form. This means you could have one field that saves files to a public location, and another that saves to a private location.
### Save To
Use this setting to determine the final destination of the uploads files for this field when the form is submitted.
Save To
Public
Media Library
Description
WS Form (Private)
No
No
This is the default handler. This handler saves file uploads in a protected hash format. These uploads are only accessible from within the WordPress admin.
WS Form (Public)
Yes
No
This handler saves file uploads in a format that can be accessed publicly.
Media Library
Yes
Yes
This handler saves file uploads to the WordPress Media Library.
WS Form also has file handlers for:
Amazon S3
DropBox
Google Drive
### Saved File Name
By default WS Form will save files using their uploaded file name.
The Saved File Name setting allows you to specify a custom file name mask for the saved file. The mask can include the following variables as well as WS Form variables, e.g. #field(123).
Variable
Description
#file_basename
Original file name (e.g. file.jpg).
#file_filename
File name without extension (e.g. file).
#file_extension
File name extension (e.g. jpg).
#file_index
File upload index (e.g. 1). If you have enabled the Multiple setting, this will return the file index. If the Multiple setting is enabled and you exclude #file_index, WS Form will append this to your mask automatically.
Other commonly used variables in file name masks include:
Variable
Description
#field(123)
Returns the value of a field submitted in the form. Change 123 to match the ID of your field.
#submit_id
Returns the submission ID (Requires a Save Submission action)
File names are sanitized prior to files being saved for security reasons.
### Example Masks
Single File Upload: custom-#submit_id-#file_filename.#file_extension
Multiple File Upload: custom-#submit_id-#file_filename-#file_index.#file_extension
### Use WordPress Upload Path (DropzoneJS type only)
By default, files uploaded using DropzoneJS will be saved to the path:
uploads/ws-form/#form_id/dropzonejs/#field_id/#file_name
This is done to ensure scratch files (i.e. files that are uploaded prior the form being submitted) do not clog up your normal uploads path. Files are retained in this path after they are committed to the Media Library.
If you would prefer for scratch and submitted files to be added to the normal WordPress uploads path, check this box. This path is normally:
uploads/#year/#month/#file_name
Note that this path is subject to change if WordPress admin settings are changed or a filter hook is used.
The upload path can also be controlled with the WS Form wsf_dropzonejs_upload_path filter hook.
## Preview
The file preview feature allows you to show a preview of the selected file underneath the field.
### Enable (Default type only)
Check this setting to enable the preview feature.
### Orientation
Previews can either be oriented in a vertical, horizontal or grid format. Use this setting to determine which orientation you would like the previews to appear in.
If you select grid, you can set a width for each preview at each breakpoint. If you only change the smallest breakpoint, all of the other breakpoints will inherit that width too. This enables you to create multi-column layouts if you enable the multiple upload setting and upload more than one file.
We recommend using and configuring the grid setting.
### Image Optimization
For the default type, image optimization is performed on the server. For the DropzoneJS type, image optimization occurs prior to the image being uploaded.
#### Max Width (Pixels)
The maximum width in pixels the saved file should be. Leave blank for no change.
#### Max Height (Pixels)
The maximum height in pixels the saved file should be. Leave blank for no change.
#### Crop
If checked, images will be cropped to the maximum dimensions above using center positions.
#### Quality
Sets image compression quality on a 1-100 scale. Leave blank for no change.
#### File Format
The file format image uploads should be saved as.
### Prefix / Suffix
The prefix and suffix settings allow you to add a prefix box and/or suffix box to the field.
For example, you could add a unit of measure as a suffix, or an @ symbol as a prefix.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
### Exclusions
#### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
### Hidden Behavior
#### Always Include in Actions
This setting allows you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
The normal behavior for a field that has been hidden is that it will not be included if an action has a Clear Hidden Fields setting enabled. For example, if you have a Send Email action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the file upload field.
#### Label Position
There are five options you can choose from for positioning your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the Form Settings advanced tab. For new forms, this will be the Top positioning.
Note that when using some frameworks, some label positions may not be available.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
Field restrictions enable you to define what can or cannot be entered into the field.
#### Disabled
If checked the field will be disabled, and it cannot be interacted with. You can re-enable a field dynamically by using conditional logic.
#### Minimum Files
Use this setting to specify the minimum number of files the user has to upload. Note that the Multiple option needs to be checked if this value is greater than 1.
#### Maximum Files
Use this setting to specify the maximum number of files the user can upload. Note that the Multiple option needs to be checked if this value is greater than 1.
#### Minimum File Size (MB)
Use this setting to specify the minimum size in megabytes file uploads should be.
#### Maximum File Size (MB)
Use this setting to specify the maximum size in megabytes file uploads can be.
#### Timeout (ms) (DropzoneJS type only)
The timeout for the XHR requests in milliseconds. Leave blank for 30 seconds.
#### Accepted File Types(s)
You can limit the types of files that can be uploaded by specifying one or more MIME types or file extensions in this field. Multiple types should be separated by commas.
MIME type example: application/pdf,image/jpeg
File extension example: .pdf,.jpg (Note that periods must be included)
This would limit the file uploads to PDF documents or JPG images.
For a list of common MIME types check out Common MIME Types on MDN Web Docs.
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities. If checked the field will be disabled, and it cannot be interacted with. You can re-enable a field dynamically by using conditional logic.
### Image Restrictions
Image restrictions enable you to define what can or cannot be uploaded to the field if the file is an image.
#### Minimum Width (Pixels)
Enter the minimum width in pixels the image has to be.
#### Maximum Width (Pixels)
Enter the minimum width in pixels the image has to be.
#### Minimum Height (Pixels)
Enter the minimum height in pixels the image has to be.
#### Maximum Height (Pixels)
Enter the maximum height in pixels the image has to be.
#### Required Aspect Ratio
Enter the aspect ratio the image has to be in. It should be entered in the format x:y.
Example aspect ratios are:
1:1
16:9
4:3
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted and the field has not been completed according to the field settings you have configured. For example if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## File Upload Issues
URL: https://wsform.com/knowledgebase/file-upload-issues/
Learn how to diagnose file upload issues cause by client and server misconfiguration.
## Upload Errors
If you are getting an error when uploading files it is likely due to a server-side misconfiguration.
You should check the following when you get this error:
### Server-Side Errors
We recommend checking your PHP and web server error logs for any issues. A server-side error will cause an error to be displayed in the DropzoneJS file upload component.
You can use your browser inspector to check for server errors. Open your browser inspector and then look in the console and/or network tab.
### Server-Side Settings
You may need to contact your hosting provider to confirm these settings are sufficient for your form upload requirements.
#### PHP Settings
Setting
Description
max_execution_timeout
Ensure this setting is large enough to support the time it takes the maximum allowed file size to your server. Learn more
post_max_size
Ensure this setting is large enough to accept the size of file being uploaded to your server. Learn more
upload_max_filesize
Ensure this setting is large enough to accept the size of file being uploaded to your server. Learn more
## DropzoneJS Timeouts
The DropzoneJS component has a default timeout of 30 seconds. If files are taking longer than 30 seconds to upload you will need to increase this value to something suitable. To do this:
Click the settings icon on the file field.
Click the Advanced tab.
Adjust the Timeout (ms) setting to suit.
## Slow File Uploads
The time it takes for a file to upload depends on various factors, including:
The size of the file.
Larger files take longer to upload.
The speed of your internet connection.
The slower your internet connection, the longer files take to upload.
The bandwidth available to your hosting.
The slower the bandwidth, the longer files take to upload.
The amount of traffic between you and your server.
The busier your website, the less available bandwidth and the longer it will take for files to upload.
Typically on an internet connections, and in particular when using cellular data, the upload speed will be significantly slower that your download speed and this too can make uploads appear to be slow.
Slow upload speeds are not caused by WS Form. WS Form will upload files using all available bandwidth to it. Speed test all hops between your device and your hosting provider to determine where any bottlenecks might exist.
## File Uploads Appear as Code in Email
URL: https://wsform.com/knowledgebase/file-uploads-appear-as-code-in-email/
If your email is interpreting file uploads as jumble of letters (also know as Base64 encoding), you will need to disable inline images in emails.
If your email is interpreting file uploads as jumble of letters (also know as Base64 encoding), you will need to disable inline images in emails. This only happens in some email readers. Mac Mail, for example, does not have this issue and shows inline images correctly.
An example of this in GMail is shown below:
To stop inline images in emails:
Click on Settings in the WordPress admin menu under WS Form.
Click on the Variables tab.
Uncheck Show File Preview.
Click Save.
WS Form will then stop embedding the images in the email itself. Next you just need to tell WS Form to include that upload as an email attachment as opposed to adding it inline. To do that:
Click on the Actions icon when editing your form.
Click on the gear icon next to Send email.
Scroll down to Attachments and click the icon to add your file upload field as an attachment.
Click Save.
You will now find that the file upload is included as an attachment as opposed to being added inline in the email.
## Filter Disposable Email Addresses
URL: https://wsform.com/knowledgebase/filter-disposable-email-addresses/
Reject form submissions from unwanted email addresses using this WS Form filter.
The WS Form wsf_action_email_email_validate filter can be used to analyze and reject unwanted email addresses from form submissions.
## The Filter
The wsf_action_email_email_validate filter is supplied with four parameters:
$valid - True by default. Return this value in your function if the email validates.
$email - The email address being validated.
$form_id - The form ID the email address belongs to.
$field_id - The field ID the email address was entered into (This will be false for emails checked in actions).
Your filter hook function can return one of the following return values
True - The email address is valid, no action will be taken by WS Form.
False - WS Form will show a standard error message indicating the email address is invalid.
String - WS Form will show the string you provide to indicate the email address is invalid.
## Sample Code
This code would typically be added to your themes functions.php file, preferably in a child theme.
// Add filter for disposable email addresses
add_filter( 'wsf_action_email_email_validate', 'wsf_action_email_email_validate_disposable_domains', 10, 4 );
// Hook function for wsf_action_email_email_validate filter
function wsf_action_email_email_validate_disposable_domains( $valid, $email, $form_id, $field_id ) {
if( filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
// Split email address by @
$email_array = explode( '@', $email );
// Extract domain
$domain = array_pop( $email_array );
// Check if domain exists in list of disposable domains
if( in_array( $domain, wsf_disposable_domains() ) ) {
// Return an invalid feedback message to be shown on the field
return __( 'The email address provided cannot be used' );
}
}
return $valid;
}
// Array of disposable domains
function wsf_disposable_domains() {
return array(
'0-180.com',
'0-30-24.com',
'0-420.com',
'0-900.com',
'0-aa.com',
'0-mail.com',
'0-z.xyz'
// Add other domains here ...
);
}
## Find the ID of a Field
URL: https://wsform.com/knowledgebase/find-the-id-of-a-field/
WS Form uses field IDs for variables, here's how to find them.
WS Form uses field IDs for variables such as:
#field(123)
In the example above, the field ID would be 123 and this would output the value of that field.
## Enabling Field IDs
If you kept it simple while setting up WS Form, field IDs are switched off. To make field IDs visible:
Click on Settings under WS Form in the WordPress admin menu (on the left).
Click the Advanced tab.
Check Field IDs
Click Save
## Field ID Locations
Field IDs can be found:
In the field (Shown next to the field type and underneath the label).
When you hover over a field.
At the top of the field settings sidebar. The field settings sidebar is shown when you click the settings icon on a field.
## FluentCRM Integration
URL: https://wsform.com/knowledgebase/fluentcrm/
This integration lets you subscribe and unsubscribe FluentCRM contacts using a WordPress form created in WS Form.
This integration lets you subscribe and unsubscribe FluentCRM contacts using a WordPress form created in WS Form. You can create new forms from your FluentCRM lists in a single click from the add form page. You can also pre-populate forms with data from FluentCRM.
## Installation
The FluentCRM plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the FluentCRM plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the FluentCRM tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Creating a Form for FluentCRM
### Automatically
WS Form can create a form for any of your FluentCRM objects in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately. All FluentCRM field types are supported as well as tagging.
To create a FluentCRM form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the FluentCRM tab at the top of the page.
Click on a list (or choose No List if you do not wish to assign contacts to a list).
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the FluentCRM tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to a FluentCRM object when a user saves or submits their form.
To add a FluentCRM action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to FluentCRM from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The FluentCRM action settings are as follows:
#### When Should This Action Run?
You can choose to run the FluentCRM action when the form is saved, submitted, or both.
#### FluentCRM List
Select which list the contact should be subscribed to.
#### Status
Choose the status of the contact that will be used when it is added to FluentCRM.
If you want to enable Double Opt-In you should set the status to Pending.
#### Send Double Opt-In Email
If the Status setting is set to Pending, you can send a double opt-in email if this setting is checked.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Field Mapping
Field mapping tells WS Form which of your form fields relates to the corresponding attributes in FluentCRM. For example you would want to map your email form field to the email attribute in FluentCRM. WS Form supports mapping to normal, category and transactional attributes.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding FluentCRM attribute.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Mapping
Custom mapping allows you to set a FluentCRM field to any value you wish, including the use of WS Form variables. For example you might want to map a lead source to a source attribute in FluentCRM, or perhaps set a transaction attribute ID to the #submit_id variable.
To add a custom mapping:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, enter a value or a WS Form variable.
In the right-hand column, select the corresponding FluentCRM attribute.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tags are labels you create to help organize your contacts. You can add any number of tags to a contact. Tags are added by choosing a field on your form such as a checkbox field.
To add a tag:
Click the Add icon at the bottom of the Tag Mapping setting.
Choose the WS Form field containing the tags.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tags
You can use this setting to always add a tag to a contact. To add a tag:
Click the Add icon at the bottom of the Tags setting.
Enter the name of the tag, e.g. My Tag.
Repeat this process for each tag you want to add.
Click the Save button at the bottom of the sidebar to save your changes.
#### Duplicate Handling
Use this setting to determine what to do if a duplicate email address is found in FluentCRM. The available options are:
Update contact
Do not contact update
Show error messsage
#### Duplicate Error Message
If a duplicate email address is found in FluentCRM, you can customize the error message shown if Show error message has been selected for the Duplicate Handling setting.
## Populate Forms Using FluentCRM
As well as pushing form data with this integration, you can also retrieve contact data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a contact in FluentCRM.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose FluentCRM from the Action To Populate From pull-down menu.
Select the list you wish to populate data from in the List To Populate From pull-down menu.
Map the FluentCRM attribute to your form fields.
Click Save at the bottom.
Note that if you created your form using a FluentCRM template the field mappings will automatically be created for you.
## Form Abandonment - Saving Partial Form Submissions
URL: https://wsform.com/knowledgebase/form-abandonment-saving-partial-form-submissions/
Learn how to automatically save partially completed forms in case a visitor abandons a form.
Sometimes visitors to your website may abandon a form part way through, leaving a partial entry. WS Form provides complete flexibility over how and when to save partially completed forms so that you can capture key fields without the need for a fully submitted form. This is achieved by using Conditional Logic.
Conditional logic allows you to create smart forms. WS Form has an extensive library of conditions that can be used to detect behavior on your form that can then trigger other actions such as saving progress.
For the purpose of this tutorial, we're going to create some simple conditional logic that will do the following:
Check if an email field has been changed.
If true, save the form.
Creating this logic is easy!
Create a simple form that contains at least one email field. As a tip, keep the email field early in your form so that there is more chance of it being completed.
Click the Conditional Logic icon at the top of the layout editor. The Conditional Logic sidebar will open.
Click the Add icon.
Name your condition Form Abandonment.
Complete the conditional logic as follows:
IF [Your Email Field] On change
THEN Form Save
Click Save & Close.
Click Preview to try the form.
You will now notice that when you change the email field, a submission will be saved. The form save action acts in exactly the same way as the Save field which can be used to create a save and continue feature on your form.
Saved forms appear in your Submissions page with a status of In Progress.
If you have the WS Form Debug Console open you'll see the conditional logic in action.
The other advantage of using this method, is that if a visitor returns back to the page their partially completed form will be pre-populated for them.
Use this same method to trigger a form save on any other event you wish, e.g., if a tab is clicked or if a phone field is changed.
## Form Settings
URL: https://wsform.com/knowledgebase/form-settings/
To access the form settings, click the settings icon in the top toolbar when editing a form. This contains the following tabs: Basic, Advanced, and Auto Popula…
You can use the form settings to:
Change the name of your form
Change how your form behaves when it is submitted
Apply custom CSS classes to form elements
Change spam protection settings
Track visitors
Hide tabs
Control tab validation
... and more!
To access the form settings, click the settings icon at the top of the layout editor.
The form settings sidebar will then appear. You can edit any of the settings in each of these tabs and then click the Save & Close or Save button. If you do not want to save your changes, you can click the Cancel button.
The form settings tabs are:
## Basic
### Form
#### Label
This is the label (title) of your form. As well as entering a label into this field, you can also edit the label at the top of the page. You should enter an easy-to-understand label for your form, for example, Contact Us or Appointment Request. This label is used to identify your form in WordPress and can also be added to the top of your form for website visitors to see using the Show Label setting.
#### Show Label
If enabled the label will be shown at the top of your form for website visitors to see. If you do not want the label to appear, uncheck this box.
#### Enable Form Submit On Enter
Allow the form to be submitted if someone types Enter/Return. Not advised for e-commerce forms.
#### Lock Save & Submit Buttons
A common issue with forms is that sometimes website visitors will double click a submit button. On a conventional form, this can often cause duplicate submissions to be processed.
WS Form comes with built-in duplicate protection. When this setting is enabled, it will disable the save & submit buttons once they have been clicked to prevent duplication from happening. We recommend leaving this setting enabled.
#### Unlock Save & Submit Buttons
When this setting is enabled, it will enable the save & submit buttons once the form has been successfully submitted or saved. It will also enable the button if a form error occurs. We recommend leaving this setting enabled.
#### Reset Form After Submit
When enabled WS Form will reset the form after it is successfully submitted so that any data in the fields is removed. We recommend keeping this setting enabled.
An example of when you would want to disable this setting might be if someone is doing repeated data entry into a form and only changing part of the submission each time.
#### Custom Form Action
If you do not want WS Form to process your form, enter a custom form action URL to post the form data to in this setting. WS Form will still perform client side validation before posting the data to the URL you have entered. Actions will not fire if a custom form action is entered.
If you do not have a custom form endpoint, leave this field blank.
### Tabs
#### Remember Last Tab Clicked
If enabled WS Form will store the last tab a website visitor has clicked in a cookie on their browser. This makes navigating a complex form easier if they return to the form at a later date to complete it. This is particularly helpful if you have added a Save button to a form, which will save the current form so that it can be retrieved later.
#### Tab Validation
Tab validation prevents users from progressing to the next tab unless the current tab is validated. Check this setting to enable this feature.
#### Show Invalid Fields
If a tab contains invalid fields and the user attempts to progress to the next tab, WS Form will show invalid feedback. If you have the Focus Invalid Fields setting enabled (See below) it will also focus on the first field that is invalid.
#### Hide Tabs
Check this setting to hide the tabs but retain tab functionality (e.g. Next Tab button).
### Fields
#### Invalid Feedback Text
If a required field is empty when the form is validated, invalid feedback text will shown.
The default invalid feedback text is: This field is required.
You can change the invalid feedback by changing this setting. You can also override invalid feedback text at a field level too.
The following WS Form variables can be used in this setting:
VariableDescription
#labelThe field label.
#label_lowercaseThe field label lowercase.
#### Focus Invalid Fields
If this setting is enabled, WS Form will focus on the first invalid field it finds when a form is submitted. This is a convenience feature that makes it easier for a website visitor to locate issues within their data entry.
### Errors
#### Show Server Side Error Messages
Shows error messages if a server side error occurs when a form is submitted.
#### Type
There are five different types of error message:
Success (Green)
Information (Blue)
Warning (Orange)
Danger (Red)
None
#### Position
You can choose to position error messages to show before or after your form. For large forms we would recommend enabling Scroll To Top if you choose before positioning, so that the message is seen by the user.
#### Clear Other Messages
If enabled any other messages on the screen will be cleared first.
#### Scroll To Top
If enabled the browser will scroll to the top of the page when the error message is shown. Choose from None, Instant, or Smooth.
#### Scroll Offset (Pixels)
Number of pixels to offset the final scroll position by. Useful for sticky headers. For example, if your header is 100 pixels tall, enter 100 into this setting. This setting appears if Scroll To Top is set to Instant or Smooth.
#### Scroll Duration (ms)
Duration of the smooth scroll in milliseconds. This setting appears if Scroll To Top is set to Smooth.
#### Hide Form When Shown
If enabled the form will be hidden when the error message is shown.
#### Show Duration (ms)
Use this field to enter how long the error message is shown before the next action fires. The value entered should be in milliseconds (1 second = 1000 milliseconds). If you enter a value in this field, the following two options are also available.
#### Hide Message After Duration
If enabled the error message will be hidden after the Show Duration (ms) has elapsed.
#### Show Form After Duration
If enabled the form will be shown after the Show Duration (ms) has elapsed. This setting appears if Hide Form When Shown is enabled.
## Styling
### Form
#### Style
Choose which style to use for this form. This setting appears when the WS Form styler is enabled. Learn more about the styler.
#### Breakpoint Queries
Choose whether column breakpoints respond to the browser width or the form width. This setting appears when using the WS Form framework.
Browser Width (@media) — Breakpoints respond to the browser / viewport width.
Form Width (@container) — Breakpoints respond to the form width. Useful for forms in sidebars, modals, or other narrow containers.
### Fields
#### Default Label Position
When WS Form is installed, labels are positioned at the top of a field. You can change this setting to set label positioning to be one of the following options:
Top
Left
Right
Bottom
Note that some frameworks do not support all of these label positions.
Changing this setting will affect all fields that have their label position set to Default.
#### Default Label Width (Columns)
If the label position of a field is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns. By default labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
#### Default Help Position
When WS Form is installed, help text is positioned below each field. You can change this setting to set the help positioning to be one of the following options:
Top
Bottom
Changing this setting will affect all fields that have their help position set to Default.
### Required Fields
#### Show Required HTML
When this is enabled, WS Form will output a small Required caption next to the label of any fields that are set as Required. If this is disabled, the captions will not be rendered.
#### Custom Required HTML
You can change the Required caption to anything you wish using this setting.
For example you could change it to: Required
### Classes
#### Form Wrapper
To add a class to the actual form element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
#### Tabs Wrapper
To add a class to the tabs wrapper, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
#### Tab Content Wrapper
To add a class to the content wrapper of all tabs, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
#### Section Wrapper
To add a class to all sections, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
#### Field Wrapper
To add a class to all field wrappers, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
#### Field
To add a class to all fields, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Heading HTML Masks
#### Form
If you have enabled label rendering (see above), then the label will be shown at the top of the form. For developers this will be rendered in an h2 wrapper. You can override this by entering a different mask into this field. Use #label where you want the label to be added.
For example you could change this to:
#label
#### Tab
If you have enabled label rendering of a tab, then the label will be shown at the top of each tab. For developers this will be rendered in an h3 wrapper. You can override this by entering a different mask into this field. Use #label where you want the label to be added.
For example you could change this to:
#label
#### Section
If you have enabled label rendering of a section, then the label will be shown at the top of each section. For developers this will be rendered in a legend wrapper. A legend is used because this label is added within a fieldset. You can override this by entering a different mask into this field. Use #label where you want the label to be added.
For example you could change this to:
## Populate
The Populate tab will appear if you have any actions that provide support for this feature. Auto populate pulls data from an external source and makes that data available for setting the default value of fields.
### Populate Using Action
#### Enable
If checked, WS Form will populate the form with data from an action.
To use this feature, check Enable, then select the action you want to pull data from. Follow the on-screen prompts for setting up populate mapping and then click the Save button at the bottom.
## Spam Protection
Forms created by WS Form are inherently less likely to be prone to spam. This is because they are generated on the fly in a website visitor's browser when a page loads and are often not even seen by spam bots. In addition to this, we offer a variety of additional spam protection measures.
### IP Throttling
The IP Throttling setting allow you to only allow submissions from an IP address to be submitted one or more times. In order to use this feature your form will need:
Remote IP Address tracking enabled. Learn more about form tracking.
A Save Submission action.
#### Enable
When checked, limit by IP submission count will be enabled.
#### Maximum Count
This defines the maximum number of submissions that will be accepted from the same IP address for the given Duration setting.
#### Duration
This setting is used in conjunction with the Maximum Count setting to determine how many submissions will be accepted from the same IP address.
#### Limit Reached Message
The message to show if the limit is reached. Leave blank if you want nothing to show.
#### Message Style
You can wrap the message in a styled box, or you can select None to output the message as is.
### IP Blocklist
The IP Blocklist setting allows you to specify IP addresses you want to block for this form. In order to use this feature your form will need Remote IP Address tracking enabled.
#### Enable
When checked, limit by IP blocklist will be enabled.
#### IP Addresses
To add an IP address to block:
Click the Add icon.
Enter an IPv4 or IPv6 address.
Repeat this for each IP address you want to add.
You can also bulk specify IP address by using the wsf_submit_limit_ips WordPress filter hook.
#### Blocked Message
The message to show if an IP address match occurs. Leave blank if you want nothing to show.
#### Message Style
You can wrap the message in a styled box, or you can select None to output the message as is.
### Keyword Blocklist
The Keyword Blocklist setting allows you to specify keywords that will checked against when the form is submitted. If a keyword is found the form will be invalidated and invalid feedback will be shown on the invalid field.
The keyword matching is case-insensitive, meaning it doesn’t matter whether the word is in uppercase or lowercase.
To avoid false positives, the system performs whole word matching only. For example, if “ass” is a blocked keyword, it will not trigger on safe words like “class” or “passionate.” This helps ensure that valid submissions aren’t mistakenly flagged.
If you need more control with keyword matching, consider using the wsf_submit_field_validate filter hook.
#### Enable
When checked, limit by keyword blocklist will be enabled.
#### Keywords
To add a keyword to block:
Click the Add icon.
Enter a keyword.
Repeat this for each keyword you want to add.
You can also bulk specify keywords by using the wsf_submit_limit_keywords WordPress filter hook.
#### Invalid Feedback Message
The invalid feedback message to show on a field if it contains a blocked keyword. Leave blank if you want to show the default invalid feedback for that field.
### Honeypot
Honeypot spam protection works by adding a hidden field on your form that is intended to fool spam bots into thinking they need to complete that field. If completed the email is rejected.
If you enable this setting, WS Form will automatically add Honeypot protection to your form. There is nothing else you need to do!
### Akismet
Akismet provides WordPress with the ability to check comments and form submissions against their global database of spam. WS Form PRO is fully integrated with the popular Akismet spam check plugin and provides a convenient and effective way of tackling form submissions containing spam content.
### AbuseIPDB
AbuseIPDB checks the visitor’s IP address against a global database of reported abusive IPs. This section appears when AbuseIPDB support is available in WS Form.
### Settings
#### Spam Threshold
If your form is configured to check for spam (e.g. AbuseIPDB, Akismet or reCAPTCHA V3), each submission will be given a score between 0 (Not spam) and 100 (Blatant spam). Use this setting to determine the minimum score that will move a submission into the spam folder.
## Tracking
The tracking tab contains features related to tracking your visitors. These are disabled by default to respect privacy regulations.
### Google Events
This feature is only available in WS Form PRO.
WS Form can fire events at Google Tag Manager and Google Analytics levels. Learn More.
Note that WS Form PRO does not install any Google tags for you. You should do that with an additional plugin or embed it in your theme code.
#### Enable
When checked, event firing will be enabled.
#### Form
Enable this to fire an event when a form is submitted.
#### Tabs
Enable this to fire an event when a tab is clicked. One event is fired per tab per form session.
#### Fields
Enable this to fire an event when a user interacts with a field. One event is fired per field per form session.
### Tracking
When a form is saved or submitted, WS Form can store a wealth of tracking information along with that form to help you gain a better understanding of your audience.
The available tracking settings can be found here.
## Geo
This feature is only available in WS Form PRO.
#### Enable
If checked, WS Form will perform a client-side geolocation lookup by IP and will map the results to any fields configured below.
#### Geolocation Mapping
Map geolocation elements (such as city, region, country, latitude/longitude, and more) to fields in your form.
## Limit
This feature is only available in WS Form PRO.
### By Submission Count
#### Limit by Submission Count
Check this setting to enable the limit by submission count features.
#### Maximum Count
Enter the maximum number of submissions permitted. After this limit is reached the Limit Reached Message will be displayed, or the form will simply be hidden if the Limit Reached Message is empty.
#### Per Logged In User
If enabled, the maximum count is limited per logged in user.
#### Duration
The duration setting allows you to determine over which period the maximum count will be counted. If this is set to All Time, the form will keep displaying until the maximum count is exhausted. If you choose a time duration setting, the submission count will be throttled to the maximum count within the chosen time duration.
#### Limit Reached Message
Enter the message you would like to display when the maximum count limit is reached. If you leave this blank, the form will be hidden when the limit is reached.
#### Message Style
You can wrap the message in a styled box, or you can select None to output the message as is.
### By Schedule
The By Schedule options allow you to determine a start and end date for when the form is shown on your website.
Note that scheduling is ignored if you are previewing a form. To test this feature you should test the form on a public facing page.
#### Schedule Start
Enable this setting to set a scheduled start date/time for your form.
#### Start Date/Time
The date and time from which the form should become available.
#### Before Message
Enter the message you would like to display if the start date has not yet been reached.
#### Before Message Style
You can wrap the message in a styled box, or you can select None to output the message as is.
#### Schedule End
Enable this setting to set a scheduled end date/time for your form.
#### End Date/Time
The date and time after which the form should no longer be available.
#### After Message
Enter the message you would like to display if the end date has passed.
#### After Message Style
You can wrap the message in a styled box, or you can select None to output the message as is.
### By User
The By User options allow you to choose which user status can access the form.
#### User Status
Choose from one of the options to determine who can access the form:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
#### Type
Style of message to use if the user does not meet the user status condition. Choose from None, Success, Information, Warning, or Danger.
#### Message
Message shown if the user does not meet the user status condition. Leave blank to hide the form.
## Loader
This feature is only available in WS Form PRO.
If enabled, a loader will be shown when certain form events trigger. It can also be shown via conditional logic. Learn more about loaders.
#### Enable
Check this setting to enable the form loader.
### Sprite
#### Type
Choose the type of loader sprite to show, or select Custom HTML to provide your own markup.
#### Custom HTML
Enter custom HTML for the loader sprite. This setting appears if Type is set to Custom HTML.
#### Size (Pixels)
The size of the loader sprite in pixels.
#### Color
The color of the loader sprite.
#### Opacity
The opacity of the loader sprite.
#### Accent Color
The accent color used by some loader sprite types.
#### Accent Opacity
The opacity of the accent color.
#### Border Width (Pixels)
The border width of the loader sprite in pixels.
#### Always Visible
If checked, WS Form will attempt to keep the loader sprite always visible. This feature is useful for very long forms.
### Text
#### Visible
If enabled, text will be shown beneath the loader sprite.
#### Text
Text shown beneath the sprite. We recommend using a phrase suitable for accessibility readers.
### Overlay
#### Color
The color of the loader overlay.
#### Opacity
The opacity of the loader overlay.
#### Cursor
The cursor style shown while the loader is visible.
### Timing
#### Animation Duration
How long one animation cycle of the loader sprite takes.
#### Fade-in Duration
How long the loader takes to fade in.
#### Fade-out Duration
How long the loader takes to fade out.
### Events
Choose which events show the loader. Each enabled event can also have a delay.
#### Submit
Show the loader when the form is submitted.
#### Save
Show the loader when the form is saved.
#### Action
Show the loader when an action runs.
#### Render
Show the loader when the form is rendered.
#### Geolocate
Show the loader when geolocation is running.
## Conversational
This feature is only available in WS Form PRO.
#### Enable
If checked, this form will be made available in a conversational format.
#### Preview
Preview the conversational version of your form.
### Styling
#### Style
Choose which style to use for the conversational form. This setting appears when the WS Form styler is enabled.
### Permalink
#### URL Slug
The last part of the conversational form URL.
### Navigation
#### Enable
Show the navigation bar at the bottom of the page.
#### Progress Help
Help text to show alongside the navigation progress bar. You can use #progress_percent to inject the current progress percentage.
#### Scroll Duration (ms)
Duration in milliseconds for scrolling between sections.
## Translation
This tab will appear if you have a supported translation plugin installed (for example Polylang).
## Woo
This tab will appear if you have the WS Form PRO Product Integrations extension for WooCommerce installed.
## Form Validation
URL: https://wsform.com/knowledgebase/form-validation/
WS Form provides extensive options for managing form validation.
By default, form validation occurs when a Submit button is clicked (or Add To Cart if you are using the WooCommerce integration).
WS Form also provides extensive options for managing form validation as described below.
### Tab Validation
Tab validation prevents users from progressing to the next tab unless the current tab is validated.
To enable this feature:
Click the Form Settings icon at the top of the layout editor.
Scroll down to the Tabs section.
Check the Tab Validation setting.
Click Save.
### Tab Validation - Show Invalid Fields
Tab validation can also be configured to show invalid fields when a Next Tab button is clicked. If invalid fields are found the user will be shown invalid feedback and the form will not progress to the next tab.
To enable this feature:
Click the Form Settings icon at the top of the layout editor.
Scroll down to the Tabs section.
Check the Show Invalid Fields setting.
Click Save.
## Inline Validation
Inline validation allows you to immediately show invalid feedback on a field if it is invalid. WS Form does this by adding the following class at a section or field level:
wsft-validated
While you can add this class yourself (e.g. with class settings or conditional logic) WS Form also has settings for enabling this.
### Inline Validation - Fields
Click the field settings icon.
Click the Advanced tab.
Change the Inline Validation setting under Validation. Choose Always to always show invalid feedback when a field is invalidated. Choose On Field Change or Blur to show invalid feedback when a field is changed or blurred (loses focus).
Click Save.
### Inline Validation - Sections
You can enable inline validation of all fields in a section as follows:
Click the section settings icon.
Click the Advanced tab.
Change the Inline Validation setting under Validation. Choose Always to always show invalid feedback when a field within the section is invalidated. Choose On Field Change or Blur to show invalid feedback when a field within the section is changed or blurred (loses focus).
Click Save.
## Check Validation with Conditional Logic
You can add conditional logic IF conditions based upon whether a form, tab, section or field is validated. To do this:
Click the Conditional Logic icon at the top of the layout editor. The Conditional Logic sidebar will open.
Click the add + icon.
In the IF condition, select Form or a tab, section or field.
Select Validated or Not Validated.
Complete your THEN and/or ELSE statements.
Click Save
## Changing Invalid Feedback Text
When a form is validated, any fields that do not validate will show invalid feedback text below that field. You can change the invalid feedback text that is shown as follows:
Click the settings icon on the form field.
Click the Basic tab in the sidebar.
Scroll down to the Validation section.
Enter text into the Invalid Feedback Text setting.
Click Save.
## Form Won't Update on Front-End
URL: https://wsform.com/knowledgebase/form-wont-update-on-front-end/
Addressing form update issues on your website's front-end, covering potential causes like unpublished changes and page caching.
If your form isn't reflecting updates made in the layout editor on the front-end, consider the following possibilities:
## Publish Your Form
WS Form allows you to make edits to your form without impacting the front-end of your site. Changes are not pushed to the front-end until the Publish button is clicked. Therefore if you are not seeing changes on the front-end of your site it is possible you have not published your form.
Click the Publish button to publish your form.
Learn more: Publishing Forms
## Page Caching
Page caching may cause the illusion of a form failing to update on the front-end. This caching can manifest across various layers, such as:
Content Delivery Networks (e.g., Cloudflare, Amazon Cloudfront)
Hosting (e.g., Object Cache, Opcode Cache)
Web browser
Following modifications to your site's content, including forms, it's imperative to clear any related caches. Depending on your hosting provider, you might need to seek guidance on clearing the caching mechanisms implemented for your website.
## Hidden Content
Ensure any new content you have added has not been hidden. Check the Hidden setting in the Basic tab of fields. Also ensure you have not hidden content using Conditional Logic.
Learn more: How Hidden Fields Work
## Formatting Numbers Using #number_format
URL: https://wsform.com/knowledgebase/formatting-numbers/
Numbers can be formatted in WS Form using the #number_format variable.
Numbers can be formatted in WS Form using the #number_format variable.
#number_format can be used on your form (e.g. in the default value of field) and also in actions (e.g. the Send Email action).
## Demo
## Syntax
The syntax of the #number_format variable is as follows:
#number_format(number, decimals, decimal separator, thousands separator)
The parameters are as follow:
Parameter
Example
Description
number
#field(123) or 12345.6789
The input number.
decimals
2
Sets the number of decimal digits.
decimal_separator
.
Sets the separator for the decimal point.
thousands_separator
,
Sets the thousands separator.
## Examples
These examples use a field with ID 123 that has a value of 123456.789.
Example
Description
#number_format(#field(123))
123,457
#number_format(#field(123), 2)
123,456.79
#number_format(#field(123), 2, ",", ".")
123.456,79
#number_format(#field(123), 0, ".", " ")
123 456
#number_format(#field(123), 0, ".", " ") kr
123 456 kr
For currency formatting we recommend using #ecommerce_price(#field(123)) which automatically outputs a price according to your e-commerce currency settings in WS Form or WooCommerce.
## Dynamically Updating with #text
If you want a number to change dynamically if the number parameter changes, you can wrap the variable in #text. For example:
#text(#number_format(#field(123), 2))
This would output the value of field ID 123 to two decimal places, keeping it update if field ID 123 changes.
## Foundation Framework
URL: https://wsform.com/knowledgebase/building-wordpress-forms-for-foundation/
WS Form can output HTML markup that is native to the Foundation framework
Foundation is a responsive front-end framework. Foundation provides a responsive grid and HTML and CSS UI components, templates, and code snippets, including typography, forms, buttons, navigation and other interface elements, as well as optional functionality provided by JavaScript extensions. Many popular WordPress themes use Foundation.
If your WordPress theme uses the Foundation framework, WS Form can output forms that contain HTML markup that is native to that framework. This means that WS Form physically changes the HTML so that your form dovetails seamlessly into your theme.
In addition to output native markup, WS Form will also change the breakpoint selector to match the available breakpoints in Foundation. This feature is only available in WS Form PRO.
All of the available WS Form field types are fully compatible with Foundation.
## Demo
To view a demo of a WS Form outputting a form for the Foundation framework, click here.
## Supported Versions
WS Form supports the following versions of Foundation:
Foundation 6.4+
Foundation 6.0-6.3.1
Foundation 5.x
## Configuring WS Form to Use Foundation Framework
### Automatic
When you first install WS Form, it will scan your theme files and if Foundation is detected it will automatically output your form using Foundation markup.
### Manual
To manually select Foundation as your framework:
Click on WS Form in the WordPress administration menu.
Click on 'Settings'.
Click on the Advanced tab.
Select 'Foundation' under the 'Framework' dropdown.
Click Save.
## Sample Output
An example of the HTML output for a tel field is shown below (includes some additional markup required by WS Form).
## Freshdesk Integration
URL: https://wsform.com/knowledgebase/freshdesk/
The Freshdesk integration allows you to create custom support ticket forms on your website that are pushed to your Freshdesk account.
The Freshdesk integration allows you to create custom support ticket forms on your website that are pushed to your Freshdesk account.
## Installation
The Freshdesk plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Freshdesk plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Freshdesk tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Freshdesk
In order to use the integration, you need to connect it to Freshdesk. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Freshdesk tab at the top of the page.
Enter your Freshdesk subdomain (e.g. my-company). How to find your subdomain.
Enter your Freshdesk API. How to find your API key.
If you do not have a Freshdesk account, you can create a new account here.
## Creating a Form for Freshdesk
### Automatically
The Freshdesk integration can automatically create a form for submitting a ticket.
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Freshdesk tab at the top of the page.
Choose New Ticket to create a generic form or choose one of your Freshdesk forms.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to Freshdesk when a user saves or submits their form.
To add a Freshdesk action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a Freshdesk List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Freshdesk action settings are as follows:
#### When Should This Action Run?
You can choose to run the Freshdesk action when the form is saved, submitted, or both.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in Freshdesk. For example you would want to map your Email field to the Email field in Freshdesk.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Freshdesk field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Mapping
You can also add custom key/value mappings that are sent to your endpoint.
To add custom mapping:
Click the Add icon at the bottom right of the meta mapping section.
Select your form field.
In the left-hand column, enter a custom value.
In the right-hand column, choose a Freshdesk field.
Repeat this process for each custom map.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tag mapping tells WS Form which of your form fields relate to the tags in Freshdesk.
To map a field:
Click the Add icon at the bottom right of the tag mapping section.
Select your form field (We recommend using a check box field).
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Tag mapped fields need to be a choice field, such as Select, Checkbox, or Radio fields.
#### Attachments
You can also attach files to Freshdesk tickets. To do this you just need to add at least one file upload field on your form.
To map your file upload field to Freshdesk:
Click the Add icon at the bottom right of the attachments section.
Select your file upload field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
## Variables
The Freshdesk integration introduces additional variables that you can use in actions such as messages and emails.
## FunnelKit Integration
URL: https://wsform.com/knowledgebase/funnelkit/
The FunnelKit integration lets you use WS Form to push form submission data to FunnelKit for use in automations.
The FunnelKit integration lets you use WS Form to push form submission data to FunnelKit. The FunnelKit integration requires WS Form PRO.
You can learn more about FunnelKit WordPress plugin by clicking here.
### Installation
The WS Form PRO FunnelKit integration plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the WS Form FunnelKit integration plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the FunnelKit tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
### Using a Form with FunnelKit
To push form submission data to FunnelKit you need to add a Add to FunnelKit action.
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open.
Click the Add icon to add a new action.
Select Add to FunnelKit from the action pulldown.
Optionally choose when the action should run. By default the action will run when the form is submitted.
Optionally choose an opt-in field. You can use this to make the action run only when an opt-in checkbox is checked.
That's it! Your form can now be used to trigger FunnelKit automations.
## Create an Automation
To create an automation that is triggered by a form:
Create a new Automation in FunnelKit.
Click Select Trigger.
Select Forms then WS Form > Form Submits.
Choose the form you want to trigger an automation from (The form must include an Add to FunnelKit action, see above). Map the basic contact fields.
You can also add an Update Fields action if you want to set additional fields by using WS Form merge fields. To do this click + and then choose Action, then choose Automations > Update Fields.
## GDPR Compliance for Forms in WordPress With WS Form
URL: https://wsform.com/knowledgebase/gdpr-compliance-for-forms-in-wordpress-with-ws-form/
Learn what GDPR is and explore WS Form features that can help with consent, data minimization, encryption, retention, and personal data requests.
The GDPR, or General Data Protection Regulation, is a data protection law that governs how personal data is collected, processed, stored, and protected. It applies to organizations that process the personal data of people in the European Union (EU) and European Economic Area (EEA), and has been in effect since May 25, 2018.
Personal data can include information such as:
Basic identity information, such as names, addresses, and identification numbers
Online data, such as IP addresses and location data
Racial or ethnic origin
Health and genetic data
Political opinions
Sexual orientation
Further information about GDPR can be found at GDPR.eu.
## GDPR Considerations
Organizations handling personal data may need to consider how that data is collected, processed, stored, protected, and deleted. This can include:
Why personal data is being collected and processed
How consent is obtained when consent is appropriate
What personal data is collected and whether all of it is necessary
How personal data is protected
How long personal data is retained
How requests to access or erase personal data are handled
Your responsibilities depend on factors such as what data you collect, why you collect it, where your organization and users are located, and how the data is processed. You should seek appropriate legal advice when determining your privacy and data protection obligations.
## GDPR Features in WS Form
WS Form includes features that can help you implement your organization's privacy and data protection policies. These include collecting consent, presenting legal notices, controlling the personal data you collect and store, protecting stored submission data, managing submission retention, and handling personal data export and erasure requests.
### Consent Checkboxes
If your privacy process calls for explicit consent, you can add a consent checkbox to your form and customize the text to explain what the user is consenting to.
You can add a consent checkbox to a form as follows:
Drag and drop a Checkbox field to your form. For example, you might position this immediately above the submit button.
In the sidebar, click the Checkboxes tab.
Replace Checkbox 1 with appropriate consent text. For example, I consent to #blog_name storing my submitted information so they can respond to my inquiry. The #blog_name variable is replaced with the name of your website.
Delete the Checkbox 2 and Checkbox 3 rows if they are not required.
Click the Save button.
### Legal Notices
The Legal field can be used to display a privacy policy, terms and conditions, disclaimer, or other legal notice directly in your form.
You can enter your own legal notice or use Termageddon as the source. The field can also be set as required. When required, the visitor must scroll to the bottom of the legal notice before the field will validate.
This can be useful when you want to present information about how personal data will be collected, processed, or stored as part of completing a form.
### Tracking
WS Form can collect tracking information associated with a submission. Individual tracking features can be enabled or disabled on a per-form basis, giving you control over the information your forms collect.
This includes controls for information such as IP addresses, geolocation, referrer information, and duration tracking. You can leave tracking features disabled when you do not need that information.
By default, new forms do not track any data from users. All tracking settings are opt-in.
### CaptchaFox
WS Form supports CaptchaFox for protecting forms against spam and automated submissions. CaptchaFox describes its service as privacy-first and GDPR-compliant, with data processed and stored exclusively in EU data centers.
CaptchaFox also states that it does not build advertising profiles or sell user data, and that a Data Processing Agreement (DPA) is available.
### Choose Fields to Save
The Save Submission action includes a Fields To Save setting that lets you control which submitted fields are stored in the database.
You can include or exclude specific fields from saved submissions. This allows a field to be used while processing a form without retaining its value in the WS Form submission database.
For example, if a sensitive value is needed by an action but does not need to be retained afterward, you can exclude that field from the saved submission.
### Auto Delete Submissions
WS Form can automatically delete saved submissions after a retention period you specify. This can help you implement your organization's data retention policy without having to manually remove old submissions.
To configure automatic deletion:
Edit your form in WS Form.
Open the Actions sidebar.
Select the Save Submission action.
Configure Auto Delete Submissions.
Enter the required retention period in Delete After (Days).
The Auto Delete Submissions setting provides the following options:
Off - Automatic deletion is disabled for new submissions and no expiry date is set.
Move to Trash - After the specified number of days, submissions are moved to trash and can be restored.
Permanently Delete - After the specified number of days, submissions are permanently deleted rather than moved to trash.
Use the option and retention period that are appropriate for your organization's data retention policy.
### Encryption
WS Form PRO can encrypt submission data stored in the database, providing an additional layer of protection for information retained by WS Form.
Submission encryption is configured globally. Once enabled, submission metadata for new submissions is encrypted before it is stored in the database.
File uploads and signatures are not encrypted by this feature. Refer to the Data Encryption knowledge base article for configuration instructions and important considerations before enabling encryption.
### Data Erasure Requests
WS Form integrates with the WordPress Erase Personal Data tools, allowing you to create a form that visitors can use to submit a personal data erasure request.
To create a data erasure request form:
Click Add New from the WS Form administration menu.
Click the GDPR tab.
Click the Data Erasure Request template.
Click Publish when the form is created.
Add the form to your website.
Once submitted, the request can be processed using the WordPress Erase Personal Data tools.
### Data Export Requests
WS Form also integrates with the WordPress Export Personal Data tools, allowing you to create a form that visitors can use to submit a personal data export request.
To create a data export request form:
Click Add New from the WS Form administration menu.
Click the GDPR tab.
Click the Data Export Request template.
Click Publish when the form is created.
Add the form to your website.
Once submitted, the request can be processed using the WordPress Export Personal Data tools.
## Geolocation Lookup by IP
URL: https://wsform.com/knowledgebase/geolocation-lookup-by-ip/
The WS Form Geolocation by IP Lookup setting in Form Settings can be used to populate form fields with approximate geographical information.
The WS Form Geolocation by IP Lookup setting in Form Settings can be used to populate form fields with approximate geographical information.
WS Form makes geolocation requests to third party IP lookup services client-side so that the users IP address does not pass through your web server.
If you opt to use this feature we would recommend updating your privacy policy accordingly.
## Demo
## Enabling Geolocation Lookup by IP
To enable lookups:
Click on the Form Settings icon at the top of the layout editor.
Click on the Geo tab.
Check the Enable Geolocation Lookup by IP setting.
## Configuring Geolocation Lookup by IP
Configuring lookups involves adding mappings from the geographic elements returned to the fields on your form.
To add a mapping:
Click the Add icon at the bottom right of the Geolocation Mapping setting.
In the left-hand column, select the geographical element, e.g. City.
In the right-hand column, select the form field you would like the geographical element value to be added to.
Repeat this process for each geographical element.
Click the Save button at the bottom of the sidebar to save your changes.
## Choosing Which Geolocation Service to Use
The Geolocation Lookup by IP feature can fetch data from one of two different services:
ipapi.co (Recommended)
ipinfo.io
You choose which service to use in the Advanced tab of the Global Settings admin page. This same service is also used for the Tracking features in WS Form.
We recommend using ipapi.co because:
It provides the most geographical data (Other services may result in elements returning blank values).
It supports HTTPS requests for non-commercial applications.
If you choose a different service from those above, WS Form will default to ipapi.co. The reason for this is because other services do not support making HTTPS requests without a commercial key or token.
## Accuracy
Geolocation lookups based on IP addresses provide approximate location information, but their accuracy varies. Factors like dynamic IP assignments, VPN usage, and data availability can impact precision. While useful for certain purposes, relying solely on IP geolocation for critical decisions or precise location determination is not recommended.
Users accessing your website via a cellular signal are more likely to return inaccurate results whereas land based users will return more accurate results.
The quality of the data returned will also depend on the Geolocation Lookup by IP service you have chosen in Global Settings (Advanced tab).
## GetResponse Integration
URL: https://wsform.com/knowledgebase/getresponse/
The GetResponse integration lets you add subscribers using an action, pull subscriber data, and create new forms from your lists in a single click.
The GetResponse integration lets you add subscribers using an action, pull subscriber data using the WS Form autocomplete feature, and create new forms from your lists in a single click on the add form page.
## Installation
The GetResponse plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the GetResponse plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the GetResponse tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to GetResponse
In order to use the integration, you need to connect it to GetResponse. Connecting is easy!
Create an API key in GetResponse. To this, go to: https://app.getresponse.com/api and create an API key for WS Form.
Click WS Form in the WordPress administration menu.
Click Settings.
Click the GetResponse tab at the top of the page.
Enter your GetResponse API key.
Click Save.
If you do not have a GetResponse account, you can create a new account here.
## Creating a Form for GetResponse
### Automatically
WS Form can create a form for any of your GetResponse lists in a single click. This process not only creates a form but also fully configures WS Form so that the form is ready to use immediately.
To create a GetResponse form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the GetResponse tab at the top of the page.
Click on any of your GetResponse lists to create a form.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website.
If your list does not appear, click the refresh icon in the GetResponse tab.
### Manually
It is also possible to use any form created in WS Form and add an action so that it is submitted to GetResponse when a user saves or submits their form.
To add a GetResponse action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to a GetResponse List from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The GetResponse action settings are as follows:
#### When Should This Action Run?
You can choose to run the GetResponse action when the form is saved, submitted, or both.
#### GetResponse List
Choose the GetResponse List you would like contacts to be added to. If you have created a new list since viewing this screen, you can click the refresh icon to retrieve the new list.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked, opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in GetResponse. For example, you would want to map your Email field to the Email field in GetResponse.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding GetResponse field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tag mapping tells WS Form which of your form fields relate to tags in GetResponse.
To map a field:
Click the Add icon at the bottom right of the interest mapping section.
Select your form field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Interest mapped fields need to be a choice field, such as Select, Checkbox, or Radio fields.
If you use the automatic method above, WS Form PRO will automatically build interest mapping options for you.
## Populate Forms Using GetResponse
As well as pushing form data with this integration, you can also retrieve contact data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a contact in GetResponse.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose GetResponse from the Action To Populate From pull-down menu.
Select the list you wish to populate data from in the List To Populate From pull-down menu.
Map the GetResponse fields to your form fields.
Click Save at the bottom.
Note that if you created your form using a GetResponse template, the field mappings will automatically be created for you. You can also map tags.
## Global Settings
URL: https://wsform.com/knowledgebase/global-settings/
The settings page enables you to configure all of the global settings for WS Form. It is accessed from the WordPress admin menu.
The settings page enables you to configure global settings for WS Form. It is accessed from the WordPress admin menu by navigating to WS Form > Settings.
The settings page is organised into tabs. Some tabs are available only in WS Form PRO or when the corresponding integration is installed.
Click a tab below to view its available settings.
## Basic
The Basic tab contains settings for previews, the form editor, statistics and the WordPress administration area.
### Preview
#### Live
When enabled, changes made to a form are automatically reflected in the preview window.
#### Template
Select the page template WS Form should use when previewing forms.
When set to Automatic, WS Form attempts to find an appropriate template. If a suitable template cannot be found, WS Form uses a basic fallback template.
### Debug
#### Debug Console
Choose when the WS Form Debug Console should be displayed.
The available options allow you to restrict access to appropriate users, such as administrators.
The Debug Console provides information that can help you build, test and troubleshoot forms.
### Layout Editor
#### Column Guidelines
Choose when column guidelines should be displayed while editing forms.
The available options are:
Off - Column guidelines are not shown.
On Resize - Column guidelines are shown when you resize a section or field.
Always - Column guidelines are always shown.
#### Auto Publish
When enabled, changes made in the form editor are automatically published.
When disabled, changes remain unpublished until the form is manually published.
#### Breakpoint Widths
When enabled, the form editor adjusts the form preview width to match the breakpoint selected at the bottom of the editor.
This provides a more accurate representation of how the form may appear at different device widths.
#### HTML Compatibility Helpers
When enabled, compatibility helper links are shown for settings associated with browser support.
These links use data from Can I Use to help developers determine whether particular HTML features are supported by different web browsers.
#### Icon Tooltips
When enabled, tooltips are shown for icons in the form editor.
#### Sidebar Help Text
When enabled, explanatory help text is shown beneath settings in the form editor sidebar.
#### Searchable Sidebar Dropdowns
When enabled, dropdown settings in the form editor sidebar become searchable when they contain 20 or more options.
This makes it easier to locate an option in longer dropdown lists.
### Statistics
#### Disable
When enabled, WS Form stops collecting statistical data about forms, including views, saves and submissions.
#### Include Admin Traffic
When enabled, traffic generated by logged-in administrators is included in form statistics.
Leave this disabled if you do not want administrative testing and previews to affect form statistics.
#### Method
Choose how WS Form should collect form statistics.
The available methods are:
AJAX
AJAX Low Resource
Server Side
The AJAX methods generally provide the most reliable statistics because a request is made each time a form is displayed.
The AJAX Low Resource method uses a lightweight PHP script that requires minimal server resources. The script is located at:
/public/add-view.php
Some servers may prevent this script from running because of their security configuration. WS Form automatically disables this option if the script cannot be used.
The Server Side method does not require an additional HTTP request. However, statistics may be less accurate when page caching is enabled because PHP may not execute each time the page is viewed.
### Administration
#### Disable Unread Submission Bubbles
When enabled, unread submission count bubbles are not shown in the WordPress administration area.
#### Disable Toolbar Menu
When enabled, the WS Form menu is not shown in the WordPress admin toolbar.
#### Disable Translation
When enabled, WS Form translations are disabled and the original plugin language strings are used.
## Advanced
The Advanced tab contains settings for performance, JavaScript components, uploads, cookies, Google services, geolocation, tracking links and submission previews.
### Performance
#### Dynamic Enqueuing
When enabled, WS Form dynamically loads only the CSS and JavaScript components required by the functionality and field types used on a form.
This can reduce the amount of front-end code loaded on pages containing forms.
### JavaScript
#### Defer
When enabled, scripts generated by WS Form include the defer attribute.
The defer attribute instructs the browser to delay script execution until the HTML document has been parsed. This can prevent scripts from blocking page rendering, but it may delay the initial rendering of a form.
#### Enqueue in Footer
When enabled, scripts associated with WS Form are enqueued in the website footer.
#### Source
Choose whether shared JavaScript libraries should be loaded locally from your server or from a content delivery network.
Using Local is recommended. Some optimisation plugins may require a different configuration.
#### Date/Time Picker
Choose when WS Form should load its date and time picker component.
The available options include:
Always - Always load the WS Form date and time picker.
If Native Not Available - Load the WS Form picker only when the browser does not provide a native picker.
Never - Do not load the WS Form picker.
#### Color Picker
Choose when WS Form should load its colour picker component.
### File Uploads
#### Maximum File Size (Bytes)
Enter the maximum permitted file upload size in bytes.
WS Form uses the upload limit configured by PHP on your server by default. You can enter a lower value, but the value cannot exceed the server upload limit.
Click Use php.ini Value to restore the value configured by PHP.
#### Maximum Files
Enter the maximum number of files that can be uploaded simultaneously.
WS Form uses the maximum upload count configured by PHP on your server by default. You can enter a lower value, but the value cannot exceed the server limit.
Click Use php.ini Value to restore the value configured by PHP.
### Cookies
#### Cookie Timeout (Seconds)
This setting determines how long session cookies created by WS Form remain valid.
Cookies may be used by save and continue functionality to identify a visitor when they return to a form.
Common values include:
3600 - One hour.
86400 - One day.
604800 - One week.
#### Cookie Prefix
The default cookie prefix is ws_form.
WS Form prefixes its cookies to help prevent conflicts with cookies created by other plugins. Change this setting only when a different prefix is required.
#### Enable Save Cookie
When enabled, WS Form sets a cookie when a form is saved.
This allows a visitor to return to the form on the same device and continue their submission.
### Google
#### API Key
Enter the Google API key used by features such as the Google Address field, Google Map field and Google Routing field.
#### API Version
Choose the Google Places API version used by WS Form.
For Google accounts registered after March 1, 2025, select Places API (New).
### Geolocation Lookup By IP
#### Service
Choose the service WS Form should use for IP-based geolocation lookups.
Available services include:
geoplugin.com
ip-api.com
ipapi.co
ipinfo.io
These services offer different free and commercial plans.
#### geoplugin.com API Key
Enter your geoplugin.com API key if you use a commercial account.
The API key is used for server-side tracking lookups and is not exposed for client-side geolocation requests.
#### ip-api.com API Key
Enter your ip-api.com API key if you use a commercial account.
The API key is used for server-side tracking lookups and is not exposed for client-side geolocation requests.
#### ipapi.co API Key
Enter your ipapi.co API key if you use a commercial account.
The API key is used for server-side tracking lookups and is not exposed for client-side geolocation requests.
#### ipinfo.io API Key
Enter your ipinfo.io API key if you use a commercial account.
The API key is used for server-side tracking lookups and is not exposed for client-side geolocation requests.
### Tracking Links
#### URL Mask - IP Lookup
Enter the URL mask used when linking a tracked IP address to an external lookup service.
The following value is replaced with the IP address:
#value
#### URL Mask - Lat/Lon Lookup
Enter the URL mask used when linking tracked latitude and longitude coordinates to an external mapping service.
The following value is replaced with the latitude and longitude:
#value
### Submissions
#### Enable Edit in Preview
When enabled, the Edit in Preview option is available when viewing submissions.
This allows submissions to be loaded into the form preview for editing.
If a form is resubmitted from the preview, it is processed using conditional logic rather than the original processing path.
## Styling
The Styling tab controls the markup, colour scheme and CSS used by forms.
### Markup
#### Framework
Choose the framework WS Form should use when rendering front-end HTML.
Click Detect to allow WS Form to attempt to detect the framework used by your website.
When a supported framework is selected, WS Form outputs HTML and CSS classes appropriate for that framework.
If you are not using a specific CSS framework, select WS Form.
#### Layout CSS
When enabled, WS Form outputs the CSS responsible for responsive form layout.
Disable this only if your theme or another framework already provides the required layout styles.
#### Style CSS
When enabled, WS Form outputs its built-in visual styles, including colours, typography and form control styling.
Click View Styles to manage the styles used by WS Form.
Disable this setting if all form styling will be provided by your own CSS.
#### Column Count
Choose the number of columns used by the responsive form layout grid.
We recommend leaving this setting at 12 unless your website uses a different grid configuration.
### Scheme
#### Color Scheme
Choose whether your website uses a light or dark colour scheme.
WS Form uses this setting when rendering form controls and other interface elements.
#### Auto Color Scheme
When enabled, WS Form detects the visitor's preferred colour scheme and automatically uses light or dark styling where supported.
### Performance
#### Compile CSS
When enabled, WS Form precompiles its CSS to improve front-end performance.
This setting is recommended for production websites.
#### Inline CSS
When enabled, WS Form outputs generated CSS directly within the page instead of loading a separate stylesheet.
#### CSS Cache Duration
Enter the browser cache duration for generated CSS files.
The value is specified in seconds.
## AI
The AI tab contains settings for AI connectors, the WordPress Abilities API and the WS Form MCP Adapter.
These settings are used by AI features such as Create from AI, the Make AI Request action and authenticated AI clients that connect through the Model Context Protocol.
### AI Connectors
AI connectors allow WS Form to communicate with providers such as Anthropic, Google Gemini and OpenAI.
#### Status
Shows whether AI connectors are currently configured and available.
#### Connectors
Click Connectors to manage the AI connectors installed on your website.
AI connectors are used by the Create from AI template and the Make AI Request action.
### Abilities API
The Abilities API registers WS Form abilities with the WordPress Abilities API so that compatible AI clients can discover them.
#### Include in MCP Discovery
When enabled, WS Form abilities are included during MCP discovery.
This allows compatible AI clients to discover the actions available through WS Form. Authentication and user permissions still apply.
#### Allow Updates
When enabled, authenticated AI clients can create or update forms.
Enable this setting only when you trust the AI clients that connect to your website.
#### Allow Deletes
When enabled, authenticated AI clients can delete forms.
Enable this setting only when you trust the AI clients that connect to your website.
### MCP Adapter
The MCP Adapter registers a dedicated WS Form PRO MCP server endpoint that authenticated AI clients can connect to.
These setting will only appear if the WordPress MCP Adapter is available. You can install the MCP Adapter plugin or rely on a third party plugin that includes these classes such as Novamira.
#### Enable
When enabled, the dedicated WS Form MCP server endpoint is registered.
#### Server URL
The Server URL is the endpoint AI clients use to connect to WS Form.
Click the copy icon next to the URL to copy it to your clipboard.
## E-Commerce
The E-Commerce tab controls global currency formatting and price editing settings.
### Prices
When WooCommerce is active, the price settings are inherited from the WooCommerce store configuration.
Click Edit to open the corresponding WooCommerce settings.
#### Currency
Choose the currency used for prices in forms.
#### Currency Position
Choose whether the currency symbol is displayed to the left or right of the price.
#### Thousand Separator
Enter the character used to separate thousands in prices.
#### Decimal Separator
Enter the character used to separate decimal values in prices.
#### Number of Decimals
Enter the number of decimal places used when displaying prices.
### Submissions
#### Allow Price Field Edits
When enabled, price field values can be edited while viewing or editing a submission.
Changing a price does not recalculate totals or other calculated values in the submission. Any dependent values remain unchanged.
## System
The System tab provides information about your WS Form installation and hosting environment.
The system information is divided into sections that may include:
WS Form
WordPress
PHP
Web Server
Database
If WS Form detects a potential issue, a warning is shown next to the relevant item.
This information can be useful when troubleshooting compatibility, configuration or hosting problems.
## License
The License tab is available when WS Form PRO is installed.
### Version
Shows the installed version of WS Form PRO.
Updates can be managed from the WordPress Plugins page.
### License Key
Enter the license key provided when WS Form PRO was purchased, then click Activate.
### License Status
Shows the current status of the WS Form PRO license.
When the license has been activated successfully, the status is shown as Activated.
## Data
The Data tab contains tools for resetting form statistics, managing data encryption and controlling what happens when WS Form is uninstalled.
### Forms
#### Reset Statistics
Select a form and click Reset to permanently clear its statistical data.
This includes the form statistics used for views, saves, submissions and reporting.
Reset statistics cannot be recovered.
### Encryption
#### Enable Data Encryption
When enabled, WS Form encrypts submission metadata before it is stored in the database.
Data encryption requires an encryption key to be configured in the website's wp-config.php file.
#### Encryption Status
Shows the current data encryption status.
The status indicates whether an encryption key has been found and whether submission metadata is currently being encrypted.
Review any warning shown in this section before enabling data encryption.
### Uninstall
#### Delete Plugin Settings on Uninstall
When enabled, WS Form plugin settings are permanently deleted when the plugin is uninstalled.
This data cannot be recovered.
#### Delete Database Tables on Uninstall
When enabled, the database tables created by WS Form are permanently deleted when the plugin is uninstalled.
This may include forms, submissions and related data. This data cannot be recovered.
## Spam Protection
The Spam Protection tab contains global credentials and security settings used by supported CAPTCHA services and WordPress NONCE validation.
### reCAPTCHA
#### Site Key
Enter the Google reCAPTCHA site key used by reCAPTCHA fields.
This value can be overridden in the settings of an individual field.
#### Secret Key
Enter the Google reCAPTCHA secret key used to validate reCAPTCHA responses.
This value can be overridden in the settings of an individual field.
#### Default reCAPTCHA Type
Choose the default reCAPTCHA type used when a new reCAPTCHA field is added to a form.
The type can be changed in the settings of an individual field.
### hCaptcha
#### Site Key
Enter the hCaptcha site key used by hCaptcha fields.
#### Secret Key
Enter the hCaptcha secret key used to validate hCaptcha responses.
### Turnstile
#### Site Key
Enter the Cloudflare Turnstile site key used by Turnstile fields.
#### Secret Key
Enter the Cloudflare Turnstile secret key used to validate Turnstile responses.
### CaptchaFox
#### Site Key
Enter the CaptchaFox site key used by CaptchaFox fields.
#### Secret Key
Enter the CaptchaFox secret key used to validate CaptchaFox responses.
### NONCE
#### Enable NONCE
When enabled, WS Form adds a WordPress NONCE to form submissions.
WordPress NONCEs help protect forms against unauthorised requests.
NONCE validation is always used when a form is submitted by a logged-in user.
If page caching is enabled, we recommend keeping the combined browser and server cache duration below 10 hours. Longer caching periods may cause expired NONCE values to produce submission errors.
## Reporting
The Reporting tab controls scheduled form statistics emails and form submission error notifications.
### Form Statistics Email
The Form Statistics Email provides a scheduled summary of form views, saves, submissions and conversion rates.
#### Enable
When enabled, WS Form sends the Form Statistics Email according to the configured schedule.
#### Published Forms
When enabled, only published forms are included in the report.
#### Frequency
Choose how often the report should be emailed.
Available options include daily, weekly and monthly reporting.
#### Day to Send
Choose the day of the week on which a weekly report should be sent.
This setting is available when Frequency is set to Weekly.
#### Email To
Enter one or more email addresses that should receive the report.
Separate multiple email addresses with spaces.
Click Send Test to send a test report using the current configuration.
Save any changes before clicking Send Test to ensure the latest settings are used.
#### Email Subject
Enter the subject line used for Form Statistics emails.
### Form Submission Error Email
The Form Submission Error Email notifies recipients when an error occurs while WS Form is processing a submission.
#### Enable
When enabled, WS Form sends email notifications when submission processing errors occur.
#### Frequency
Choose how often error notifications should be sent.
Available options include:
Real-Time
Once Per Minute
Once Per Hour
Once Per Day
#### Email To
Enter one or more email addresses that should receive submission error notifications.
Separate multiple email addresses with spaces.
Click Send Test to send a test email using the current configuration.
#### Email Subject
Enter the subject line used for submission error emails.
## Variables
The Variables tab controls the default output of selected WS Form variables used in email and PDF templates.
### Variable: #email_logo
The #email_logo variable inserts a configured logo into an email or PDF template.
#### Image
Click Select Image to choose the image used by the #email_logo variable.
The selected image can be inserted into templates using:
#email_logo
We recommend removing unnecessary whitespace from the image before uploading it.
#### Size
Choose the WordPress image size used when rendering the logo.
The recommended maximum image dimensions are 400 by 200 pixels.
### Variable: #email_submission
The #email_submission variable outputs the contents of a submission in email and PDF templates.
#### Tab Labels
Choose when tab labels should be included.
The available options are:
Auto - Show the tab label only when the tab contains a non-empty field and Show Label is enabled for the tab.
Yes - Show the tab label when Show Label is enabled for the tab.
No - Never show the tab label.
#### Section Labels
Choose when section labels should be included.
The available options are:
Auto - Show the section label only when the section contains a non-empty field and Show Label is enabled for the section.
Yes - Show the section label when Show Label is enabled for the section.
No - Never show the section label.
#### Field Labels
Choose when field labels should be included.
The available options are:
Auto - Show the field label when the field contains a value and Show Label is enabled.
Yes - Always show the field label.
No - Never show the field label.
#### Static Fields
When enabled, static fields such as Text fields and HTML fields are included in the output unless excluded in the settings of an individual field.
#### Exclude Empty Fields
When enabled, fields without a value are excluded from the generated output.
### Variable: #field
These settings control the default output of file and signature values rendered using the #field variable.
#### Show File Preview
When enabled, previews of uploaded files and signatures are shown where supported.
This setting is compatible with the WS Form (Private), WS Form (Public) and Media Library file handlers.
#### Show File Name and Size
When enabled, the file name and file size are shown for uploaded files and signatures.
This setting is compatible with the WS Form (Private), WS Form (Public) and Media Library file handlers.
If Show File Preview and Show File Name and Size are both disabled, WS Form still displays the file name.
#### Link to Files
When enabled, links are added to uploaded files and signatures.
The Send Email action includes a separate setting that controls whether links are included in email content.
This setting is compatible with the WS Form (Private), WS Form (Public) and Media Library file handlers.
## Google Address Field
URL: https://wsform.com/knowledgebase/google-address/
This Google Address field enables you to autocomplete address fields using the Google Places Autocomplete API.
The Google Address field enables you to autocomplete address fields in WordPress forms.
The countries searched can be restricted and optionally filtered by business addresses. Furthermore the chosen address can also be shown on a WS Form Google Map field.
## Demo
This demo is for the U.S. but the Google Address field can be localized to any country.
## How It Works
When a user enters a partial address, the Google Places API shows suggested addresses. If an address is clicked, the components of the address are populated to other fields on your form. The Google Address field itself becomes Address Line 1 once the address is clicked.
You'll find the country and business address restriction options in the Advanced tab of the field settings under the Restrictions section.
## Setup
The Google Address field requires:
A Google Cloud Project set up with billing enabled. (Create a Google Cloud Project).
The following APIs enabled on the Google Cloud Project (Enabling an API in your Google Cloud Project)
Maps JavaScript API
Places API (New)
Geocoding API
An API key (Create Access Credentials)
To enter your API key into WS Form:
Click Settings from the WS Form admin menu.
Click the Advanced tab.
Enter your API key into the API Key setting under Google.
We recommend choosing Places API (New) and enabling the "Places API (New)" API on your Google Console Project.
Click Save.
Once the key has been added and saved you can add the Google Address field to your form.
## Adding a Google Address Field
To learn how to add, edit, clone, move, resize, offset, or delete a Google Address field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example First Name or Email.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Required
If checked, the Google Address field must be clicked on by the user.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
WS Form variables can be entered into this field.
### Field Mapping
Use this section to map the Google address components to your form fields.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select the Google address component.
In the right-hand column, select your form field.
Repeat this process for each address field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Google address components can be mapped to the following field types:
Text
Text Area
Select
Google Address
### Google Map
#### Field
Choose the Google Map field to center with the address.
#### Zoom
Optionally enter a zoom level (1-20) used when the google map is centered with the address.
#### Geolocate on Click
If checked, when the map is clicked a geolocate will occur and the field mappings will be reprocessed with the closest address information.
### Geolocate
#### Method
The auto complete setting can be used to automatically attempt to set the address to the users location. To enable this feature, choose one of the geolocation methods:
None (Geolocating is disabled)
Browser (Uses the location provided by the browser. More accurate but user is prompted to allow location sharing).
IP (Less accurate. User is not prompted).
This method uses the Google Maps Geocoder API to convert the users latitude and longitude to an address.
#### On Load
If checked, a geolocate will occur when the Google Address field loads.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
### Exclusions
#### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
### Hidden Behavior
#### Always Include in Actions
This setting allows you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
The normal behavior for a field that has been hidden is that it will not be included if an action has a Clear Hidden Fields setting enabled. For example, if you have a Send Email action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the Google Address field.
#### Label Position
There are five positions you can choose from for your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the form settings advanced tab. For new forms this will be the Top positioning.
Note that when using some frameworks some label positions may not be available.
#### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to Default Label Width and change the setting. 4. Click Save at the bottom.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
#### Horizontal Alignment
The horizontal alignment setting allows you to choose how the icons are horizontally aligned. The options are:
Left
Center
Right
Space Around (The space around each icon is the same)
Space Between (The space between each icon is the same)
Space Evenly (The space before, between and after each icon is the same)
#### Height
Enter a height for the Google Map. You can either enter a height in pixels (e.g. 400px) or enter a percentage (e.g. 100% for a square). The percentage value is relative to the width of the map.
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Labels
#### Reset
You can use this setting to change the text shown in the reset link. If left blank, it will default to Reset.
### Restrictions
#### Result Type
If selected, the results will be restricted by this type. The available options are:
All (Select this to enable postal code searching)
Addresses
Businesses
Cities
Regions
#### Country Restrictions
Country restrictions allows you to restrict the countries of addresses that are returned in the search results. You can add up to five countries.
To add a country restriction:
Click the Add icon to add a country row.
Choose a country.
Repeat this for every country you want to restrict the results to.
Click Save to save the country restrictions.
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted, and the field has not been completed according to the field settings you have configured. For example if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Google Drive Integration
URL: https://wsform.com/knowledgebase/google-drive/
The Google Drive integration allows you to configure file fields to upload directly to a connected Google Drive account.
The Google Drive integration allows you to configure file fields to upload directly to a connected Google Drive account. You can choose which path to upload the files to and can easily access the files from the submissions page.
The integration creates a new file handler to WS Form called Google Drive.
## Installation
The Google Drive integration is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Google Drive integration, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Google Drive tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Google Drive
In order to use the integration, you need to connect it to Google Drive. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Google Drive tab at the top of the page.
Click Connect and follow the onscreen prompts
If you do not have a Google Drive account, you can create a new account here.
## How to Configure File Fields for Google Drive
To configure a file field to push its uploads to Google Drive:
Click the settings icon on the file field.
In the basic tab change the File Handler setting to Google Drive.
Optionally, change the Upload path. The upload path defaults to:/WS Form/#form_id/#submit_hash/#field_id/
You can use WS Form variables in this path to make it dynamic. The default value ensures each form, submission and field on the form is given its own folder in Google Drive to minimize the chance of files being overwritten. Bear in mind that each file field can be configured with the Multiple setting to be able to upload more than one file.
Some variables you might find helpful for this path are:
Variable
Description
#form_id
Returns the ID of the form.
#submit_hash
A unique identifier for the submission.
#field_id
The ID of the file field.
Optionally, specify the Root Folder ID.
The root folder ID defaults to My Drive (blank).
To upload files to a Shared Folder, click on the folder in Google Drive and copy the folder ID from the address bar. For example:
In this example, the Root Folder ID you would enter would be: 14CRFg10wD77EWTCV4ewlm_cbS7tduXoL
To upload files to a Shared Drive, copy the shared drive ID from the URL in the same manner. Shared drive IDs begin with 0A.
## Accessing Google Drive Uploads
To access the files that are uploaded to Google Drive, you can click on the file upload icons in submissions as you would any other file upload. The files are, of course, also accessible from within your Google Drive folder.
## Google Events
URL: https://wsform.com/knowledgebase/google-events/
The WS Form PRO Google Analytics settings let you fire events when a form, tab or field is interacted with.
The Google Events setting enables you to fire events when a form, tab or field is interacted with.
## Enable Google Events
To enable Google Events:
Click the form settings icon at the top of the layout editor.
Click the Tracking tab.
Check the Enable checkbox under Google Events.
Check one or more of the following options:
Form
This will fire an event when a form is saved or submitted.
Tabs
This will fire an event when a tab is clicked on. One event is fired per tab click per form session.
Fields
This will fire an event when a field is interacted with. One event is fired per field per form session.
Note that WS Form PRO does not install the Google tags for you. You should do that with an additional plugin or embed it in your theme code.
### Google Analytics Events
WS Form PRO automatically detects if you have Google Analytics installed and automatically fires events using the code appropriate to your tag version. The following versions of Google Analytics are supported:
gtag.js (Universal and Google Analytics 4)
analytics.js (Deprecated)
ga.js (Deprecated)
The format of each event is shown below:
Event
Data Layer
Submit
event_category: Form - #form_label
wsf_form_id: #form_id
wsf_form_instance_id: #form_instance_id
wsf_form_label: #form_label_id
Save
event_category: Form - #form_label
wsf_form_id: #form_id
wsf_form_instance_id: #form_instance_id
wsf_form_label: #form_label_id
Tab
event_category: Form - #form_label
event_label: #tab_label
wsf_group_id: #group_id
wsf_form_id: #form_id
wsf_form_instance_id: #form_instance_id
wsf_form_label: #form_label_id
Field
event_category: Form - #form_label
event_label: #field_label
wsf_section_id: #section_id
wsf_field_id: #field_id
wsf_form_id: #form_id
wsf_form_instance_id: #form_instance_id
wsf_form_label: #form_label_id
## Form Submit Events
WS Form also fires two other events to ensure compatibility with Google Analytics built-in form functionality:
Event
Data Layer
form_submit
Enhanced Event Measurement
form_id
form_name
form_destination
form_submit_text
wsf_form_id: #form_id
wsf_form_instance_id: #form_instance_id
wsf_form_label: #form_label_id
gtm.formSubmit
gtm.element
gtm.elementId
gtm.elementClasses
gtm.elementUrl
wsf_form_id: #form_id
wsf_form_instance_id: #form_instance_id
wsf_form_label: #form_label_id
## Google Tag Manager
If you are using the latest Google Tag Manager embed code, it will not expose gtag to the data layer. You will need to add the following code to enable this:
You can learn more about this technique here.
## Custom Events
To fire custom events, see the Conversion Tracking action for more information.
## Google Map Field
URL: https://wsform.com/knowledgebase/google-map/
This Google Map field enables you to add one or more interactive maps to your form.
The Google Map field enables you to add one or more interactive maps to your form. The form user clicks on the map and the latitude and longitude of the map is stored in the submission.
## Demo
## Setup
The Google Map field requires:
A Google Cloud Project set up with billing enabled. (Create a Google Cloud Project).
The following APIs enabled on the Google Cloud Project (Enabling an API in your Google Cloud Project)
Maps JavaScript API
Places API (New)
Geocoding API
An API key (Create Access Credentials)
To enter your key into WS Form:
Click Settings from the WS Form admin menu.
Click the Advanced tab.
Enter your API key into the API Key setting under Google.
Click Save.
Once the key has been added and saved you can add the Google Map field to your form.
## Adding a Google Map Field
To learn how to add, edit, clone, move, resize, offset, or delete a Google Map field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example 'First Name' or 'Email'.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### Required
If checked, the Google Map field must be clicked on by the user.
### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
WS Form variables can be entered into this field.
### Map
#### Auto Center
The auto center setting can be used to automatically center the map to the users location. To enable this feature, choose one of the geolocation methods:
Browser Geolocation (Uses the location provided by the browser. More accurate but user is prompted to allow location sharing).
IP Geolocation (Less accurate. User is not prompted).
Both methods are processed client-side, no data is passed to the server to provide this functionality.
#### Latitude
Enter the default latitude for the map. This setting is used to position the map but does not set the position set by the user. It must be used in conjunction with the longitude setting.
#### Longitude
Enter the default longitude for the map. This setting is used to position the map but does not set the position set by the user. This setting must be used in conjunction with the latitude setting.
#### Zoom
Enter the default zoom level for the map. If you do not enter a value in this setting, it will be set to 14. This value typically ranges from 1 - 20 but some areas of the world allow for higher zoom levels.
#### Type
There are four different types of map you can choose from:
Road Map
Satellite
Hybrid (A combination of road map and satellite)
Terrain
Use this setting to choose the type of map you want to display.
#### Search Field
It is possible to use a field such as a text field as an address search field. The address search field can be used to enter a zip or full address to find a location on the map. Simply add a text field to your form (e.g. above the map) and then use this setting to select that field.
### Controls
#### Map Type
Enable or disable the map type control on the map.
#### Full Screen
Enable or disable the full screen control on the map.
#### Street View
Enable or disable the street view control on the map.
#### Zoom
Enable or disable the zoom control on the map.
### Marker
The marker indicates where the user has clicked on the map.
#### Icon Title
Enter the title for the marker, e.g. 'Selected location'.
#### Icon URL
Enter a URL or a base 64 encoded data string into this setting to change the marker icon.
### Accessibility
#### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
### Exclusions
#### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
### Hidden Behavior
#### Always Include in Actions
This setting allows you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
The normal behavior for a field that has been hidden is that it will not be included if an action has a ‘Clear Hidden Fields’ setting enabled. For example, if you have a ‘Send Email‘ action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
## Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the 'Styles' settings to change the design of the Google Map field.
#### Label Position
There are five positions you can choose from for your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the form settings advanced tab. For new forms this will be the 'Top' positioning.
Note that when using some frameworks some label positions may not be available.
#### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to 'Default Label Width' and change the setting. 4. Click Save at the bottom.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
#### Horizontal Alignment
The horizontal alignment setting allows you to choose how the icons are horizontally aligned. The options are:
Left
Center
Right
Space Around (The space around each icon is the same)
Space Between (The space between each icon is the same)
Space Evenly (The space before, between and after each icon is the same)
#### Height
Enter a height for the Google Map. You can either enter a height in pixels (e.g. 400px) or enter a percentage (e.g. 100% for a square). The percentage value is relative to the width of the map.
#### Map ID
The map ID is used for cloud styling of a map.
Google - Use Map IDs
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Labels
#### Reset
You can use this setting to change the text shown in the reset link. If left blank, it will default to 'Reset'.
### Restrictions
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose 'Has User Role or Capability', additional settings will appear that enable you to choose one or more roles or capabilities.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted, and the field has not been completed according to the field settings you have configured. For example if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Google Routing Field
URL: https://wsform.com/knowledgebase/google-routing/
This Google Routing field enables you to retrieve route information in WordPress forms using the Google Directions Service API and use that data in fields on y…
The Google Routing field enables you to retrieve route information in forms for WordPress. Simply specify two form fields to act as a start and end location and WS Form will automatically make the calculations for you.
The following information can be obtained using this field:
Route distance
Text description
Value (miles, yards, kilometers and meters)
Route duration
Text description
Value (seconds, minutes, hours, days, weeks and years)
Summary (A short description of the route)
Latitude and Longitude of Start and End locations
Furthermore the route can also be shown on a WS Form Google Map field.
The above information is retrieved using the Google Routes API each time the start and end locations are completed and/or changed.
## Demo
## How It Works
When a user enters a start and end location, the Google Routes API will request route information. If a route can be determined, information about the route is populated to fields on your form. The Google Routing field itself can be used to show information or it can be hidden if it is not required.
The Google Routing field can be used in conjunction with Google Address fields for easy choosing of start and end locations, as well as the Google Map field to show the route on a map.
Each Google Routing component can be mapped to one or many fields on your form, giving you complete flexibility over how the data is used.
The output can also be used in conjunction with Conditional Logic, Calculated Fields and E-Commerce Fields.
## Setup
The Google Routing field requires:
A Google Cloud Project set up with billing enabled. (Create a Google Cloud Project).
The following APIs enabled on the Google Cloud Project (Enabling an API in your Google Cloud Project)
Maps JavaScript API
Routes API
An API key (Create Access Credentials)
If you use Google Address fields for the start or end location, make sure the Google Address field is also configured correctly.
To enter your Google API key into WS Form:
Click Settings from the WS Form admin menu.
Click the Advanced tab.
Enter your API key into the API Key setting under Google.
Choose Routes API (New) from the Routing API Version setting.
Click Save.
If your Google API key has API restrictions enabled, make sure Routes API is included in the list of allowed APIs. Enabling Routes API on the Google Cloud Project alone does not give a restricted API key access to it.
If Google Address and Google Map fields are working but routing is not, check that Routes API is enabled and permitted for your API key. Routing uses a separate Google API.
If Routes API is blocked by your API key restrictions, Google may return a 403 API_KEY_SERVICE_BLOCKED error from routes.googleapis.com for ComputeRoutes.
If WS Form debugging is enabled, the following error will be shown:
Google Routing error: Routes API is not enabled for this API key. Enable Routes API in Google Cloud Console and add it to the API key restrictions.
After enabling an API or changing API key restrictions, wait a minute or two and then hard-refresh the page containing the form.
Once the key has been added and saved you can add the Google Routing field to your form.
## Adding a Google Routing Field
To learn how to add, edit, clone, move, resize, offset, or delete a Google Routing field, please click here.
## Templates
A good way of getting familiar with the Google Routing field is to try one of the ready-to-use templates. To use a template:
Click Add Form from the WS Form admin menu.
Choose one of the Google Routing templates: Simple, Map or Full.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
#### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example First Name or Email.
#### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
#### Required
If checked, the Google Address field must be clicked on by the user.
#### Hidden
If checked the field will be hidden on the form. It can be shown again using conditional logic or your own JavaScript.
#### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
WS Form variables can be entered into this field.
### Route
#### Start
Choose a field to use for the start location. You can choose the follow field types:
Google Address
Text
Text Area
Number
Select
Checkbox
Radio
Hidden
When using a Google Address field the user can conveniently enter a partial address and then select a full address from a dropdown list. When both the start and end location are chosen, WS Form will make a request for the route. The Google Address field must be configured as described in the Google Address knowledge base article.
Other field types such as Text and Hidden can be used to allow a user to enter an address manually, or you can enter a fixed address to be used for either the start or end location.
Furthermore, other field types can also be populated with latitude and longitude values. They should be entered in the following format:
28.385233,-81.563873
A combination of Google Address and other field types can also be used.
#### End
Choose a field to use for the end location. See Start above for further details about this setting.
#### Field Mapping
Use this section to map the route components such as distance, duration and summary information to your form fields.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select the routing component.
In the right-hand column, select your form field.
Repeat this process for each address field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Google address components can be mapped to the following field types:
Google Routing (i.e. the this field)
Text
Text Area
Number
Select
Checkbox
Radio
Hidden
#### Travel Mode
Choose which transportation mode to use when calculating the route. The available options are:
Bicycling
Driving (Default)
Transit
Walking
#### Unit System
When mapping text based components (e.g. Distance - Text) this setting determines which unit is used when displaying that text.
#### Avoid Highways
If checked, the routes between origins and destinations will be calculated to avoid highways where possible.
#### Avoid Tolls
If checked, the directions between points will be calculated using non-toll routes, wherever possible.
#### Avoid Ferries
If checked, the routes between origins and destinations will be calculated to avoid ferries where possible.
#### Google Map
Choose the Google Map field to show the route on. Your Google API key will require the Maps JavaScript API enabled on it.
### Accessibility
##### ARIA Label
Accessible Rich Internet Applications (ARIA) defines ways to make web content and web applications more accessible to people with disabilities.
This setting enables you to define what text is made available to ARIA applications. This would, for example, provide a screen reader with specific text to read to someone with a disability.
The value of this setting defaults to your field label. If you would like to change this, enter a new value.
WS Form variables can be entered into this field.
#### Exclusions
##### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
#### Hidden Behavior
##### Always Include in Actions
This setting allows you to change the behavior of a field if the hidden setting is checked (See above), or if you set a field as hidden using conditional logic.
The normal behavior for a field that has been hidden is that it will not be included if an action has a Clear Hidden Fields setting enabled. For example, if you have a Send Email action, WS Form will not include fields that are hidden.
If this setting is checked, this field will always be included in actions if it is hidden.
### Advanced
The advanced tab contains additional form attribute settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the Google Map field.
#### Label Position
There are five positions you can choose from for your label:
Default
Top
Left
Right
Bottom
The default position will place the label set in the form settings advanced tab. For new forms this will be the Top positioning.
Note that when using some frameworks some label positions may not be available.
#### Label Width
If your label position is set to left or right, you can specify how wide the label will be. You can consider the overall width of the label and the field to be 12 columns (or whatever value is set in Form Settings). By default, labels are rendered at 3 columns wide (1/4 width), which means the field itself is 9 columns wide (3/4 width). You can change the width of the label using this setting.
To change the default width of all labels in your form:
1. Click the form settings icon. 2. Click the Advanced tab. 3. Scroll down to Default Label Width and change the setting. 4. Click Save at the bottom.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
#### Field
To add a class to the actual field element itself, enter a class (or classes) to this setting. To add multiple classes, add a space between the class names.
### Restrictions
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted, and the field has not been completed according to the field settings you have configured. For example if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Custom Attributes
This setting is used to add custom attributes to the HTML of this field, such as data-my-attribute="1234". You can add as many custom attributes as you need.
To add a custom attributes key value pair:
Click the Add icon to add a custom attribute row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Google Sheets Integration
URL: https://wsform.com/knowledgebase/google-sheets/
The Google Sheets integration lets you push form submissions as new rows in a Google Sheet and create new forms from your Google Sheets in a single click on th…
The Google Sheets integration lets you push form submissions as new rows in a Google Sheet and create new forms from your Google Sheets in a single click on the add form page.
Note: In order to use the Google Sheets integration, you just need at least one sheet that has field headings in the columns of the first row. For example:
## Installation
The Google Sheets plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Google Sheets plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Google Sheets tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Google Sheets
In order to use the integration, you need to connect it to Google Sheets. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Google Sheets tab at the top of the page.
Click Connect and follow the onscreen prompts
If you do not have a Google Sheets account, you can create a new account here.
## Creating a Form for Google Sheets
To add a Google Sheets action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to Google Sheets from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Google Sheets action settings are as follows:
#### When Should This Action Run?
You can choose to run the Google Sheets action when the form is saved, submitted, or both.
#### Spreadsheet ID
In this setting you will paste the spreadsheet ID. This can be obtained by looking at the URL of you sheet when in Google Sheets. For example, when editing your spreadsheet the URL might look like this:
https://docs.google.com/spreadsheets/d/1W3Gm5truVLbn0PZ8o6n2RrHCSwTMGsuP3cgNSYWcSqQ/edit?gid=0#gid=0
The spreadsheet ID is found after /d/ and /edit so in this example the spreadsheet ID would be:
1W3Gm5truVLbn0PZ8o6n2RrHCSwTMGsuP3cgNSYWcSqQ
Copy and paste this ID into the Spreadsheet ID setting. If the ID is entered correctly, WS Form will retrieve the available sheets and show them in the Sheet setting.
#### Sheet
Choose the Sheet within the Spreadsheet you want to push data to.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding column in Google Sheets. For example you would want to map your Email field to the Email column in Google Sheets.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Google Sheets column heading.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Use URL for File Fields
If checked, mapped file and signature fields will be populated with URLs instead of the file name. This will be added as a =HYPERLINK formula if a single file is uploaded.
#### Custom Mapping
Custom mapping allows you to set a Google Sheets cell to any value you wish, including the use of WS Form variables. For example, you might want to map a lead source to a cell in your sheet.
To add a custom mapping:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, enter a value or a WS Form variable.
In the center column, select the corresponding Google Sheet column.
In the right-hand column. select the cell format. Note that if you are using Date or Date/Time format you should ensure the date you specify matches the date / time format specified in your WordPress settings.
Repeat this process for each custom mapping you require.
Click the Save button at the bottom of the sidebar to save your changes.
#### Repeater to Rows
This setting allows you to push repeatable section rows as rows in the Google Sheet. Choose which repeater you want to use and WS Form will create a sheet row for each repeater row. Any fields outside of the repeater will be duplicated to each row.
## Groundhogg Integration Integration
URL: https://wsform.com/knowledgebase/groundhogg/
This integration lets you use any form created in WS Form to create and update Groundhogg contacts.
Groundhogg is a marketing automation and CRM plugin for WordPress.
This integration lets you use any form created in WS Form to create and update Groundhogg contacts, as well trigger any funnel using our benchmark.
## Installation
The Groundhogg plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Groundhogg plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Groundhogg tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Creating a Form for Groundhogg
### Automatically
The Groundhogg integration comes with two form templates. These templates can be used to build forms that create new contacts in Groundhogg when submitted.
To create a Groundhogg form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Groundhogg tab at the top of the page.
Click on the basic or advanced form template.
That's it! Your form will be created and is ready to add to your website. You can edit the form like any other form built with WS Form.
You can test the form by clicking Preview or by adding the form to one of your web pages.
When the form is submitted, it will create (or update) a contact in Groundhogg.
### Using the WS Form PRO Benchmark
Groundhogg benchmarks listen for special website events that launch automated workflows in the funnel builder.
When WS Form PRO creates a new contact in Groundhogg, it triggers the WS Form PRO benchmark.
To use the WS Form PRO benchmark:
Create or edit a Groundhogg funnel.
Click + Add Step.
Click WS Form PRO
Select which form you would like the step to run for. Leave this setting blank if you want this step to run for any form.
Select which mode you would like the step to run for. Leave this setting blank if you want this step to run for any mode.
Click Save.
### Manually Configuring a Form
It is also possible to use any form created in WS Form and add an action so that a contact is created in Groundhogg when a user saves or submits their form.
To add a Groundhogg action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to Groundhogg from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save & Close button at the bottom to save your changes, or click Cancel to disregard your changes.
The Groundhogg action settings are as follows:
#### When Should This Action Run?
You can choose to run the Groundhogg action when the form is saved, submitted, or both.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked opt-in checkbox on your forms to ensure you comply with GDPR requirements.
#### Opt-In Status
Each contact in Groundhogg has an opt-in status. The available statuses are as follows:
Unconfirmed
Confirmed
Unsubscribed
Subscribed Weekly
Subscribed Monthly
Bounced
Spam
Complained
Use this setting to determine which opt-in status is assigned to the contact.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in Groundhogg. For example you would want to map your Email field to the Email field in Groundhogg.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left column, select your form field.
In the right column, select the corresponding Groundhogg field.
Repeat this process for each field on your form.
Click the Save button to save your changes.
#### Custom Mapping
Custom mapping allows you to set a Groundhogg field to any value you wish, including the use of WS Form variables. For example you might want to map a lead source such as the variable #form_label to the source field in the Lead object in Groundhogg.
To add a custom mapping:
Click the Add icon at the bottom right of the field mapping section.
In the left column, enter a value and/or a WS Form variable.
In the right column, select the corresponding Groundhogg field.
Repeat this process for each field on your form.
Click the Save button to save your changes.
#### Owner
Use this setting to assign the contact to a particular WordPress user in Groundhogg. This setting is optional.
#### Tag(s)
When a new contact is created, Groundhogg will automatically assign the contact to one or more tags. This setting allows you to add additional tags to a contact. Search for an existing tag or enter a new tag into this field and then type Return to save the tag.
#### Notes
You can add one or more notes to a contact using this setting. To add a note:
Click the Add icon at the bottom right of the notes section.
Enter a note. You can type plain text and/or a WS Form variable.
Repeat this process for each note you wish to add.
Click the Save button at the bottom of the sidebar to save your changes.
#### Attachment Mapping
File and signature fields can be mapped so that they are uploaded as attachments to the post when it is added.
To add a file or signature field as an attachment:
Click the Add icon at the bottom right of the attachment mapping section.
Select your form field.
Repeat this process for each field on your form that you want to include as an attachment.
Click the Save button to save your changes.
File fields that are marked as multiple will result in multiple attachments if more than one file is uploaded.
### Custom Meta
This setting is used to add custom meta to the contact.
To add a custom meta key-value pair:
Click the Add icon to add a row.
Enter the key in the left column.
Enter the value in the right column.
Click Save to save the custom attributes.
## Populate Forms Using Groundhogg
As well as pushing form data with this integration, you can also retrieve contact data and populate the fields on your form.
This feature is only available if a website visitor is signed in and their WordPress email address matches the email address of a contact in Groundhogg.
To enable this feature:
Click the Form Settings icon in the top toolbar when editing a form.
Click the Data tab in the sidebar.
Enable the Populate Using Action setting.
Choose Groundhogg from the Action To Populate From pull-down menu.
Select the list you wish to populate data from in the List To Populate From pull-down menu. Contact is the only option here.
Map the Groundhogg fields to your form fields.
Click Save at the bottom.
Note that if you created your form using a Groundhogg template the field mappings will automatically be created for you.
## hCaptcha Field
URL: https://wsform.com/knowledgebase/hcaptcha/
This field is used to add an hCaptcha to your form.
This field is used to add an hCaptcha to your form. An hCaptcha detects whether the user of a site is human. Filling out an hCaptcha is similar to filling out a reCAPTCHA.
## Demo
[ws_form id="13667"]
WS Form Pro supports all current versions of hCaptcha, including:
Default
Invisible
## Register Your Website with hCaptcha
In order to use hCaptcha, you first need to create an hCaptcha account.
Sign up
Once you have registered, you will be provided with two keys:
Site key
Secret key
## Submissions Using Enterprise Accounts
When a submission is successfully made on your website and you have an Enterprise hCaptcha on the page, hCaptcha provides a spam score. The spam score is stored against your submissions and is represented as a colored circle on the submissions page. If you hover your mouse cursor over the colored circle, you can see the percentage score WS Form has given a submission in terms of spam scoring. The scoring ranges from 0% (not spam, shown in green) to 100% (blatant spam, shown in red).
## Adding an hCaptcha Field
To learn how to add, edit, clone, move, resize, offset, or delete a hCaptcha field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
The basic tab contains settings that the majority of WS Form users will need to control a field. The settings are as follows:
### Label
This is the label shown alongside the field. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, First Name or Email.
### Show Label
If enabled the label will be shown on your form. If you do not want the label to appear for a particular field, uncheck this box.
### hCaptcha Type
Select the appropriate hCaptcha version from the select pulldown. Depending on which version you choose, you will then be prompted to provide the following information:
### Site Key
Enter the site key provided when you registered your website. You can also enter a global site key to use for all you hCaptcha fields in global settings.
### Secret Key
Enter the secret key provided when you registered your website. You can also enter a global secret key to use for all you hCaptcha fields in global settings.
### Type
You can choose default or invisible for your hCaptcha type.
### Theme
Visible hCaptchas are available in a dark or light theme. Choose a theme that suits your website design.
### Size
As well as the normal-sized reCAPTHCA, a compact version can also be selected.
### Help Text
The help text setting enables you to add smaller text under the field to assist the website visitor in completing that field.
In addition to inserting plain text, WS Form can also display character and word count information in this field.
WS Form variables can be entered into this field.
## Advanced
The advanced tab contains additional settings that provide further control over how a field is rendered.
### Styles
Use the Styles settings to change the design of the text field.
#### Vertical Alignment
The vertical alignment option allows you to choose how this field will be vertically aligned in relation to fields in the same row. The options are:
Top
Middle
Bottom
### Classes
For developers WS Form allows you to add your own classes to fields.
#### Field Wrapper
The wrapper CSS class setting enables you to add a class (or classes) to a field wrapper. Field wrappers are sections of HTML added around a field to position them on the page. To add multiple classes, add a space between the class names.
### Restrictions
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
### Localization
#### Language
Choose the desired language for the hCaptcha.
### Validation
#### Show Invalid Feedback
Invalid feedback text is shown when a form is saved or submitted, and the field has not been completed according to the field settings you have configured. For example, if the minimum character count is 10 and you enter 5 characters and then submit the form, the field will be deemed invalid. If this setting is checked, invalid feedback is shown under the field.
#### Invalid Feedback Text
WS Form automatically builds invalid feedback text for all of your fields. If no text is entered into this field, the value shown in the field in light gray text will be shown. If you would like to specify alternative invalid feedback text, you can enter it within this setting.
WS Form variables can be entered into this field.
### Breakpoints
The breakpoint settings define the width of a field and also what the offset (how many columns from the left-hand side of the form or the previous field) of a field is for each breakpoint. For more information about the breakpoint settings and capabilities of WS Form, click here.
## Help Scout
URL: https://wsform.com/knowledgebase/help-scout/
The Help Scout integration allows you to create custom conversation forms on your website that are pushed to your Help Scout account as conversations. ## Insta…
The Help Scout integration allows you to create custom conversation forms on your website that are pushed to your Help Scout account as conversations.
## Installation
The Help Scout plugin is installed in the same way as installing the WS Form PRO plugin.
Once installed you will need to activate the license for the plugin. When you purchase the Help Scout plugin, you will be given a license key. If you have lost your license key(s), click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Help Scout tab at the top of the page.
Enter your license key.
Click the Activate button.
If your license key fails to activate, please ensure you are using the correct license key and not your WS Form PRO license key.
## Connecting to Help Scout
In order to use the integration, you need to connect it to Help Scout. Connecting is easy!
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Help Scout tab at the top of the page.
Click Connect and follow the onscreen prompts
If you do not have a Help Scout account, you can create a new account here.
## Creating a Form for Help Scout
### Automatically
The Help Scout integration comes with form templates that you can use to create a conversation form in a single click. A template is available for each of your Help Scout mailboxes.
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Help Scout tab at the top of the page.
Click on the mailbox you want to create a conversation form for.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to add to your website. The template includes fields for first name, last name, email, phone, subject, and message, plus an opt-in checkbox. File upload fields can also be included and mapped as attachments.
### Manually
It is also possible to use any form created in WS Form and add an action so that it creates a Help Scout conversation when a user submits their form.
To add a Help Scout action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to Help Scout from the Action pulldown. A series of settings will appear.
As with all sidebars in WS Form, click to the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Help Scout action settings are as follows:
#### When Should This Action Run?
You can choose to run the Help Scout action when the form is submitted.
#### Help Scout Mailbox
Select the Help Scout mailbox that new conversations should be created in. Field mapping options are loaded based on the mailbox you choose, including any custom fields configured for that mailbox.
#### Opt-In Field
Use this setting to select which of your fields to act as the opt-in field. We recommend adding a checkbox field with a single checkbox. It is always recommended that you have an unchecked, opt-in checkbox on your forms to ensure you comply with GDPR requirements.
If the selected opt-in field is not checked when the form is submitted, no data will be pushed to Help Scout.
#### Conversation Status
Choose the status assigned to the new conversation:
Active (default)
Pending
Closed
#### Conversation Type
Choose the type assigned to the new conversation:
Email (default)
Chat
Phone
#### If Existing Customer Found
Help Scout looks up customers by email address. A new conversation is always created. Use this setting to control what happens when a customer with the same email already exists:
Do nothing — Create the conversation without updating the existing customer profile.
Update (default) — Update the customer profile and any mapped Contact or Company properties.
#### Send Auto Reply
Enable this setting to send the mailbox auto reply when the conversation is created.
#### Assign To
Optionally assign the conversation to a Help Scout user. Leave this set to Mailbox default to use the mailbox assignment rules, or choose Unassigned to leave the conversation unassigned.
#### Field Mapping
Field mapping tells WS Form which of your form fields relate to the corresponding fields in Help Scout. For example you would want to map your Email field to the Contact: Email field in Help Scout.
Help Scout fields are grouped as follows:
Contact — Customer fields such as first name, last name, email, phone, job title, location, notes, organization, gender, age, website, and any custom contact properties from your Help Scout account.
Conversation — Conversation subject, message body, and any custom fields configured on the selected mailbox.
Company — Organization fields such as name, website, description, location, note, domain, and phone, plus any custom company properties. Company updates only apply if the customer is linked to an organization in Help Scout.
The following fields are required for a conversation to be created:
Contact: Email
Conversation: Subject
Conversation: Message
If you map Contact: Full Name instead of separate first and last name fields, WS Form will split the name into first and last name automatically.
To map a field:
Click the Add icon at the bottom right of the field mapping section.
In the left-hand column, select your form field.
In the right-hand column, select the corresponding Help Scout field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
#### Custom Mapping
Custom mapping allows you to set a Help Scout field to any value you wish, including the use of WS Form variables. For example you might want to map a license key to a custom contact property or conversation field in Help Scout.
To add a custom mapping:
Click the Add icon at the bottom right of the custom mapping section.
In the left-hand column, enter a value or a WS Form variable.
In the right-hand column, select the corresponding Help Scout field.
Repeat this process for each custom mapping.
Click the Save button at the bottom of the sidebar to save your changes.
#### Tag Mapping
Tag mapping tells WS Form which of your form fields relate to the tags in Help Scout. The selected values from those fields are added as tags on the conversation.
To map a field:
Click the Add icon at the bottom right of the tag mapping section.
Select your form field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
Tag mapped fields need to be a choice field, such as Select, Checkbox, or Radio fields.
#### Tags
Use this setting to add one or more static tags to the conversation. WS Form variables can be used in each tag value.
To add a tag:
Click the Add icon at the bottom right of the tags section.
Enter the tag value or a WS Form variable.
Repeat this process for each tag you want to add.
Click the Save button at the bottom of the sidebar to save your changes.
#### Internal Note
Optionally add an internal note as a second thread on the conversation. Internal notes are only visible to your Help Scout team. WS Form variables can be used in this setting.
#### Attachments
You can also attach files and signatures to Help Scout conversations. To do this you just need to add at least one file upload or signature field to your form.
To map your file upload field to Help Scout:
Click the Add icon at the bottom right of the attachments section.
Select your file upload field.
Repeat this process for each field on your form.
Click the Save button at the bottom of the sidebar to save your changes.
## Variables
The Help Scout integration introduces additional variables that you can use in actions such as messages and emails.
## Hidden Field
URL: https://wsform.com/knowledgebase/hidden/
The hidden field lets a form include data that cannot be seen or modified by users when a form is submitted.
The Hidden field lets a form include data that cannot be seen or modified by users when a form is submitted.
## Adding a Hidden Field
To learn how to add, edit, clone, move, or delete a hidden field, please click here.
## Field Settings
To edit the settings for this field type, click the settings icon on the field itself. Click the Save & Close or Save button to save your changes. If you do not want to save your changes, you can click the Cancel button or click any other form element to close the field settings sidebar.
## Basic
### Label
The label for a hidden field is solely used to identify the hidden field in the administration system. As well as entering a label into this field, you can also double click the label of the field in the editor. You should enter an easy-to-understand label for your field, for example, IP Address.
### Default Value
The default value setting is used to populate the field with some default content. Default values are stored when the form is saved or submitted. An example default value could be #tracking_remote_ip to insert a user's IP address into a hidden field.
WS Form variables can be entered into this field.
### Auto Complete
Web browsers sometimes have features for helping users fill forms in, for example pre-filling the user's address based on earlier user input. The autocomplete content attribute can be used to hint to the web browser how to, or indeed whether to, provide such a feature.
Use this setting if you would like to specify the value of the autocomplete attribute. Use the off option to prevent auto complete on the field.
### Exclusions
#### Exclude From Emails
By default, WS Form uses the #email_submission variable in email templates. This provides a simple way of displaying all of the submitted fields in emails. Sometimes there might be a need to exclude a field from an email, for example, you might want to not include some introductory copy on a form, or hide a field you're using with conditional logic to show or hide an element.
To hide a field from emails, check this box.
Other WS Form integrations may add exclusions in this section too, such as the WooCommerce integration which allows you to exclude certain fields from the cart entries.
## Advanced
### Restrictions
#### User Status
Choose from one of the options to filter which user status can see this field:
Any
Is Logged In
Is Logged Out
Has User Role or Capability
If you choose Has User Role or Capability, additional settings will appear that enable you to choose one or more roles or capabilities.
## HighLevel Integration
URL: https://wsform.com/knowledgebase/highlevel/
The WS Form HighLevel integration connects WordPress forms to HighLevel, letting you create forms and push records to objects.
The HighLevel integration has been discontinued in favor of the new LeadConnector integration. Since HighLevel operates under a gray-label system, this integration is now listed under LeadConnector rather than under the HighLevel name and is a completely new integration.
LeadConnector website
## Upgrade to LeadConnector
While the HighLevel integration will continue to function, we now recommend upgrading to the LeadConnector integration, as the HighLevel version will no longer receive updates and will eventually be discontinued.
To upgrade to LeadConnector, please follow these steps:
Download the LeadConnector integration.
Install and activate the new LeadConnector integration.
Go to WS Form > Settings > LeadConnector.
Click Connect and follow the on-screen instructions.
Choose the objects you want to work with (these should match your previous HighLevel settings).
For each form integrated with HighLevel:
Create a new Add to LeadConnector action.
Copy the settings from your old Add to HighLevel action to the new Add to LeadConnector action.
Disable the old Add to HighLevel action (do not delete it until you’ve confirmed everything works).
Click Save & Close.
Click Preview to test the form and confirm it works correctly.
Click Publish to finalize your changes.
Once you have migrated to the new white label LeadConnector version, you can uninstall and deactivate the old HighLevel integration.
## HIPAA and WS Form
URL: https://wsform.com/knowledgebase/hipaa-and-ws-form/
HIPAA compliance depends on your hosting, data handling, and implementation. Ensure your entire environment meets required privacy and security standards.
## Is WS Form HIPAA Compliant?
WS Form is not HIPAA certified and does not specifically claim HIPAA compliance. Ensuring HIPAA compliance requires a combination of secure infrastructure, proper data handling procedures, and administrative safeguards that extend beyond the scope of any single plugin.
As such, it is the responsibility of the developer or site owner to ensure that all aspects of their form implementation — including hosting, data transmission, storage, and access controls — meet the requirements of the Health Insurance Portability and Accountability Act (HIPAA).
## Understanding HIPAA Requirements
HIPAA is a U.S. federal law that protects the privacy and security of individuals' health information. If your forms collect or handle electronic protected health information (ePHI), compliance involves:
Hosting your website on a HIPAA-compliant server
Using secure (encrypted) transmission and storage methods
Implementing proper access controls and audit logs
Maintaining appropriate administrative policies and agreements, such as Business Associate Agreements (BAAs)
## WS Form and HIPAA
While WS Form includes many features that support secure and flexible form building, it is not specifically designed to meet HIPAA requirements. We do not offer HIPAA-specific documentation or features, nor do we enter into BAAs.
We are unable to provide support for HIPAA related inquries.
## Final Note
If your project requires HIPAA compliance, we strongly recommend consulting with a legal or compliance expert to evaluate your complete environment and processes. WS Form can be a part of a secure solution, but compliance is ultimately determined by how and where your forms are implemented.
## Honeypot
URL: https://wsform.com/knowledgebase/honeypot/
Learn how Honeypot spam protection helps detect automated spam submissions and how to enable it in WS Form.
Honeypot spam protection is a simple way to help block automated spam submissions on forms for WordPress. It works silently in the background, so legitimate website visitors do not need to complete a CAPTCHA or any additional verification.
WS Form includes built-in honeypot spam protection. Once enabled, WS Form automatically adds the honeypot to your form and checks it when a submission is processed.
## What Is Honeypot Spam Protection?
Honeypot spam protection is a technique used to identify automated spam bots submitting forms.
It works by adding a hidden field to your form. Legitimate website visitors do not see or complete this field, but spam bots often attempt to complete every field they find.
When a form is submitted, WS Form checks the honeypot field server-side. If the field has been completed, WS Form identifies the submission as automated spam and rejects it.
This makes honeypot protection a useful way to reduce automated form spam without adding an extra step for legitimate website visitors.
## How To Enable Honeypot Spam Protection
Honeypot spam protection is built into WS Form and can be enabled individually for each form.
To enable honeypot protection:
Edit the form you want to protect.
Open Form Settings.
Select Spam Protection.
Enable Honeypot.
Save the form.
That's it! WS Form automatically adds honeypot protection to the form. You do not need to manually add a hidden field or configure any additional settings.
## Does Honeypot Protection Affect Website Visitors?
No. The honeypot field is hidden from legitimate website visitors and does not require them to complete any additional steps.
The honeypot is checked server-side when WS Form processes the submission. For legitimate visitors, the form continues to work normally.
## Using Honeypot With Other Spam Protection
Honeypot protection can be used alongside other WS Form spam protection features.
Different spam protection methods detect or prevent spam in different ways. Honeypot protection specifically helps identify bots that attempt to complete hidden form fields, while other methods can provide additional protection against different types of automated or unwanted submissions.
Combining honeypot protection with other spam protection features can provide broader protection against unwanted submissions on forms for WordPress.
## Hostinger Reach Integration
URL: https://wsform.com/knowledgebase/hostinger-reach/
The Hostinger Reach integration lets you connect WS Form to Hostinger Reach to quickly create forms or push new contacts.
The Hostinger Reach integration lets you add and update contacts in Hostinger Reach from forms created with WS Form. You can map form fields to Hostinger Reach contact fields, assign tags, set a subscription status, and optionally require users to opt in before their information is sent.
WS Form can also automatically create a form configured for Hostinger Reach from the Add Form page.
## Installation
The Hostinger Reach add-on is installed in the same way as installing the WS Form PRO plugin.
Once installed, you will need to activate the license for the add-on. When you purchase the Hostinger Reach add-on, you will be given a license key. If you have lost your license key, click here.
To activate your license key:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Integrations tab.
Click Hostinger Reach.
Enter your license key in the Add-on License Key setting.
Click the Activate button.
If your license key fails to activate, ensure you are using the license key for the Hostinger Reach add-on and not your WS Form PRO license key.
## Connecting To Hostinger Reach
To use the integration, WS Form needs a Hostinger API token and a Hostinger Reach profile.
To connect WS Form to Hostinger Reach:
Click WS Form in the WordPress administration menu.
Click Settings.
Click the Integrations tab.
Click Hostinger Reach.
Enter your Hostinger API token in the Hostinger API Token setting. If you do not have an API token, create one in Hostinger.
Choose the Hostinger Reach profile you want to use from the Hostinger Reach Profile setting.
Click Save.
If your Hostinger account only has one Reach profile, WS Form will automatically select it where possible.
The selected profile determines which contact fields and tags are available when configuring the Hostinger Reach action.
If you do not have a Hostinger account, you can create a new account here.
## Creating A Form For Hostinger Reach
### Automatically
WS Form can automatically create a form configured to add contacts to Hostinger Reach. The form includes the available Hostinger Reach contact fields, an opt-in checkbox, and a pre-configured Hostinger Reach action.
To create a Hostinger Reach form in WS Form:
Click WS Form in the WordPress administration menu.
Click Add New.
Select the Hostinger Reach tab at the top of the page.
Click Contact.
Wait a few moments while the form is created.
That's it! Your form will be created and is ready to customize and add to your website.
The generated form includes standard Hostinger Reach contact fields such as email, name, surname, phone, and note. Custom contact fields configured in your selected Hostinger Reach profile can also be added to the form.
If you make changes to your contact fields in Hostinger Reach, use the refresh option when configuring field mapping to retrieve the latest fields.
### Manually
You can use any form created in WS Form and add a Hostinger Reach action so that contact information is sent to Hostinger Reach when the form is saved or submitted.
To add a Hostinger Reach action:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page.
Click the Add icon to add a new action.
Select Add to Hostinger Reach from the Action pulldown. The Hostinger Reach settings will appear.
As with all sidebars in WS Form, click the Save button at the bottom to save your changes, or click Cancel to disregard your changes.
The Hostinger Reach action settings are described below.
#### When Should This Action Run?
Choose when the Hostinger Reach action should run. The action can run when the form is saved, submitted, or both.
#### Opt-In Field
Use this setting if you want the Hostinger Reach action to run only when the user has opted in.
Select a Checkbox, Select, or Radio field from your form. A checkbox with a single unchecked choice is recommended for a typical email marketing opt-in.
If an Opt-In Field is selected and the user does not provide an opt-in value, the Hostinger Reach action will not run.
For consent-based email marketing, ensure your implementation meets the privacy and consent requirements that apply to your website and users. Learn more in our GDPR guide.
#### Status
Choose the subscription status to use for the contact.
Available options are:
Subscribed
Unsubscribed
The default setting is Subscribed.
#### Field Mapping
Field mapping tells WS Form which fields on your form correspond to fields in Hostinger Reach.
Hostinger Reach includes the following standard contact fields:
Email
Name
Surname
Phone
Note
Custom contact fields configured in your selected Hostinger Reach profile are also available for field mapping.
The Email field must be mapped. WS Form uses the email address to identify the contact in Hostinger Reach. If the contact does not already exist, a new contact is created. If a contact with that email address already exists, the existing contact is updated.
To map a field:
Click the Add icon at the bottom right of the Field Mapping section.
In the left-hand column, select the WS Form field.
In the right-hand column, select the corresponding Hostinger Reach field.
Repeat this process for each field you want to send to Hostinger Reach.
Click the Save button at the bottom of the sidebar to save your changes.
WS Form will attempt to automatically map compatible fields where possible.
If you have added or changed custom fields in Hostinger Reach, click the refresh icon in the Field Mapping section to retrieve the latest fields.
##### Phone Numbers
Phone numbers sent to Hostinger Reach must use the E.164 international telephone number format. For example:
+14155552671
When WS Form automatically creates a Hostinger Reach form, the Phone field is configured to use and validate the E.164 format.
#### Tag Mapping
The Tag Mapping setting lets you dynamically assign Hostinger Reach tags according to values selected or entered on the form.
Use a Checkbox, Select, or Radio field for tag mapping.
The values associated with the field choices should contain either the Hostinger Reach tag UUID or the name of an existing Hostinger Reach tag.
Multiple values are supported, allowing more than one tag to be assigned to a contact.
This is useful when you want the tags assigned to a contact to depend on the choices they make on the form.
#### Tags
The Tags setting lets you assign one or more existing Hostinger Reach tags to every contact processed by this action.
Click the Add icon and choose a Hostinger Reach tag.
Repeat this process to assign additional tags.
If you have created or changed tags in Hostinger Reach, click the refresh icon to retrieve the latest tags.
You can use Tags and Tag Mapping together. Tags configured under Tags are always assigned, while Tag Mapping can assign additional tags according to values on the form.
#### Note
Enter an optional note to add to the Hostinger Reach contact.
You can use WS Form variables in this setting.
By default, the note is set to:
#blog_name: #form_label
Hostinger Reach notes have a maximum length of 75 characters. If the resulting note exceeds this length, WS Form will truncate it before sending it to Hostinger Reach.
If the Note contact field is mapped under Field Mapping, the mapped field value is used instead of the value entered in the Note setting.
## Adding And Updating Contacts
The Hostinger Reach integration uses the mapped email address to determine whether a contact already exists.
If the email address does not exist in the selected Hostinger Reach profile, WS Form creates a new contact.
If the email address already exists, WS Form updates the existing contact with the mapped information.
This means the same Hostinger Reach action can be used for both new and existing contacts without requiring separate actions.
Tags configured by the action can also be assigned to the contact when the action runs.
## How Hidden Fields Work
URL: https://wsform.com/knowledgebase/how-hidden-fields-work/
There are several ways of hiding form field values in WS Form. Learn how to hide form field values and how hidden field behave.
Sometimes in a WordPress form you will want to hide a field value. There can be many reasons for this, including:
Hiding a field that contains a value that doesn't need to be seen by the user, e.g. a tracking value.
Hiding a field based on the answer of another field on the form, e.g. Show an "Other" option for a Select field.
Hiding fields contained within a tab or a section.
Fundamentally there are two different ways of hiding field values:
Use the Hidden field type.
Hide a different field type (e.g. a Text field) using the Hidden setting or by using Conditional Logic.
## The Hidden Field Type
If you have a form field value that should never be seen by the end user, you should use a Hidden field. You can find the Hidden field type in the Advanced grouping in the Build, or use the search feature at the top of the Build to search for it.
The hidden field type is different from other hiding other field
Learn more:
The WS Form Hidden Field type.
MDN web docs
## Hiding Other Field Types
For fields other than the Hidden type (e.g. Text), you can use the Hidden field setting to hide the field on the form.
An example use case of using the Hidden setting would be to hide an "Other" text field for a Select field.
The default behavior of a field that has been hidden, is that it will not be included in actions such as Send Email. You can override this behavior by checking the Always Include in Actions setting (See below).
When a field is hidden, WS Form will automatically make the field no longer required. Also any other restrictions such as min and max setting are ignored. This ensures the fields are no longer validated when the form is submitted.
## Using Conditional Logic to Hide & Show Fields
Any field types (other than the Hidden field type) can be hidden and shown using conditional logic. You can hide and show the field itself, the section the field is in or the tab the field is in.
When hiding a section, all fields within that section will be hidden.
When hiding a tab, all sections within that tab and their fields will be hidden.
An example condition that hides a field is shown below.
The default behavior of a field that has been hidden using conditional logic, is that it will not be included in actions such as Send Email. You can override this behavior by checking the Always Include in Actions setting (See below).
## Including Fields That Have Been Hidden in Actions
Fields can be hidden by using the Hidden field settings or by using Conditional Logic.
By default when a form is submitted and actions such as Send Email run, WS Form will exclude any fields that have been hidden. The same applies to any fields in a hidden tab or hidden section.
You can override this behavior by using the Always Include in Actions setting on a field. To apply this setting:
Click on the field settings icon.
In the Basic tab, go to the Hidden Behavior setting.
Check the Always Include in Actions setting.
Click Save & Close.
Once checked, the field value will always be included when the form is submitted and WS Form processes the form actions, regardless of whether the field is hidden or visible.
## How to Add a Handling Fee to an E-Commerce Form
URL: https://wsform.com/knowledgebase/how-to-add-a-handling-fee-to-an-e-commerce-form/
This tutorial explains how to set up a handling fee to an e-commerce form.
The form below demonstrates how to set up a handling fee for an e-commerce form.
## How to Add Help Text to Forms
URL: https://wsform.com/knowledgebase/how-to-add-help-text-to-forms/
By providing clear and concise instructions or explanations, help text enhances the overall user experience.
By providing clear and concise instructions or explanations, help text enhances the overall user experience. It streamlines the form-filling process, reduces errors, and ensures data accuracy. Moreover, it promotes accessibility, making the form accessible to a wider range of users. Help text also contributes to transparency and trust, as users appreciate the guidance and are more likely to engage positively with the form. Ultimately, it's a practical way to improve user satisfaction, reduce support inquiries, and increase the likelihood of successful form submissions, making it a worthwhile addition to any web form.
For accessibility reasons we recommend writing clear, concise help text as opposed to using tooltips which can present usability difficulties to some users. We also recommend using the field label or help text over the placeholder setting for improved accessibility.
There are various you can add help text to a form which are explained below.
## Field Help Text
Help text can be added directly to fields and can be positioned at the top or bottom of the field itself. Help text can also be made dynamic.
### How to Add Help Text to a Field
Click the field settings icon. The field settings will appear in the sidebar.
In the Basic tab, enter help text for the field. HTML is supported in this field, e.g. to add link. WS Form variables, including #calc and #text are also supported in help text. Furthermore, some field types have specific variables, e.g. #word_count on a text field.
Click Save & Close.
### How to Change the Position of Help Text on a Field
Click the field settings icon. The field settings will appear in the sidebar.
In the Advanced tab, select a Help Position. Choose from Top or Bottom.
Click Save & Close.
The help text position can also be set throughout the form by changing the Default Help Position setting in the Style tab of Form Settings. Set the Help Position setting on fields to Default to use the default help position.
## Form Help Text
Help text can also be added at a form level to help describe what the form is for or perhaps to described a section of fields.
Field types that can be used to add help text include:
Message
Text Editor
HTML
## How to Add Icons to Form Fields
URL: https://wsform.com/knowledgebase/how-to-add-icons-to-form-fields/
Learn how to add icons to WS Form fields using Font Awesome, Dashicons, inline SVG, images, or custom HTML with Prefix, Suffix, button labels, and option label…
WS Form is compatible with Font Awesome, Dashicons, inline SVG, images, and any other icon markup your website supports.
WS Form does not include a dedicated icon picker, and that's intentional. Instead of limiting you to a fixed icon set, WS Form lets you add standard HTML into existing builder settings. This means you can use the icon library or markup that best suits your site.
If you use Font Awesome or Dashicons, make sure that library is enqueued by your theme or another plugin on the front end.
## Demo
## Text-Like Inputs
Text-like fields such as Text, Email, URL, Phone, Password, and Number support Prefix and Suffix settings in the Basic tab.
To add an icon:
Click the settings icon on the field.
In the Basic tab, add your icon HTML directly into Prefix or Suffix setting.
Click Save & Close.
Example using Font Awesome:
Example using Dashicons:
A Prefix or Suffix containing only an icon is valid.
Prefix and Suffix use WS Form's built-in input group styling. If you want the icon positioned inside the input border instead, see the Custom CSS section below.
Learn more: Create a Field Prefix or Suffix
## Checkbox and Radio Labels
Checkbox and Radio fields support HTML in their option labels.
To add an icon:
Click the settings icon on the field.
Click the Checkboxes or Radios tab.
Add your icon HTML directly to the column you have mapped for Labels.
Adjust the ARIA Label setting to be text only.
Click Save & Close.
Example:
Premium
This works with standard checkbox and radio layouts, but it is especially useful when using Button-style options.
For Button-style checkboxes, see Style Checkboxes.
For Button-style radios, see Style Radios.
## Buttons
Button fields support HTML in the Label setting.
This applies to button field types such as Save and Reset, as well as other WS Form button fields.
To add an icon:
Click the settings icon on the field.
In the Basic tab, add your icon HTML directly into the Label setting.
Adjust the ARIA Label setting to be text only.
Click Save & Close.
Example:
Send
You can place the icon before or after the button text.
## Icon Markup Examples
### Font Awesome
### Dashicons
### Inline SVG
Inline SVG works without loading a separate icon library.
### Image
Using 1em helps the icon match the size of the surrounding text.
## Loading Icon Libraries
WS Form does not enqueue Font Awesome or Dashicons for you.
If your icons do not appear, check whether the icon library is loaded on the front end of your site.
### Enqueue Font Awesome
The recommended way to load Font Awesome is to follow the installation instructions provided by Font Awesome.
If you are already loading Font Awesome through your theme or another plugin, you do not need to load it again.
### Enqueue Dashicons
Dashicons are included with WordPress, but many themes do not load them on the front end.
Add this to your theme's functions.php file or code snippet plugin:
add_action('wp_enqueue_scripts', function() {
wp_enqueue_style('dashicons');
});
## Accessibility
Decorative icons should include: aria-hidden="true"
Decorative images should also use an empty alt attribute: alt=""
Do not rely on an icon alone to communicate important information. Use visible text where the meaning is important.
Ensure the ARIA Label setting is text only and does not include the icon markup.
## How to Add Timestamps to Google Sheets
URL: https://wsform.com/knowledgebase/how-to-add-timestamps-to-google-sheets/
Learn how to automatically add submission dates or timestamps to Google Sheets
If you are using the Google Sheets integration to send submissions to a sheet, you may want to include a date or timestamp with each entry. This helps with tracking, filtering, and reporting on form activity directly in your spreadsheet.
WS Form makes this easy using variables. You can add a submission date to your Google Sheet without needing to add any extra fields to your WordPress form.
Follow these steps to learn how:
## Add a Submission Date Column in Google Sheets
Start by opening the Google Sheet connected to your form. Add a new column where you want the submission date or timestamp to appear. For example, name the column Submission Date. This will be the target column for your form data.
## Configure a Custom Mapping in WS Form
In WordPress, open your form in the WS Form layout editor and then following these steps:
Click the Actions icon at the top of the layout editor. The Actions sidebar will open.
Open the existing Add to Google Sheets action (or create a new one).
In the Custom Mapping setting, click the Refresh icon,
Click the Add icon to add a custom mapping row.
In the Meta Value column, insert the current date by using the following variable: #blog_date
In the Google Sheets Column column, choose the Submission Date column.
In the Format column, choose Date.
Click Save & Close.
Publish the form if necessary.
## Test the Form
Now test your form and the Submission Date column in your Google Sheet should now contain a date when a new submission is submitted.
## Alternative Date / Time Formats
To insert the current date and time in a custom format, you can use #blog_date_custom, for example:
#blog_date_custom("m/d/Y H:i:s")
If you choose a format containing a date and time you should choose Date/Time for the Format.
Date formatting in WS Form follows the same conventions used when formatting PHP dates. For a list of available formatting string options, see the PHP date manual page.
Other variables that can be used in custom mapping are as follows:
#blog_date_custom("formatting string") #post_date_custom("formatting string") #server_date_custom("formatting string")
For example:
#server_date_custom("m/d/Y H:i:s")
These dynamic variables are processed at the time the form is submitted, so your date or timestamp will always reflect the exact submission time.
## How To Add Tooltips to Checkboxes and Radios
URL: https://wsform.com/knowledgebase/how-to-add-tooltips-to-checkboxes-and-radios/
If you are using the WS Form framework you can use the following HTML to add Tooltips to Checkboxes and Radios.
If you are using the WS Form framework you can use the following HTML to add Tooltips to Checkboxes and Radios.
## Demos
## Tutorial
You can enter tooltip HTML into the label column of checkbox and radio data grids.
Basic HTML Markup:
Label
The tabindex="0" attribute ensures that the user will be able to tab to the tooltip to activate it.
The text that displays inside of the tooltip is entered inside of the data-wsft-tooltip attribute.
Any icon you wish to use can be entered inside of the span element.
## Example
Label
## How to Allow Form Submissions by Domain Name
URL: https://wsform.com/knowledgebase/how-to-allow-form-submissions-by-domain-name/
In WS Form, you can easily allow WordPress form submissions based on the domain of the email address entered.
In WS Form, you can easily allow WordPress form submissions based on the domain of the email address entered.
There are two ways of doing this:
Using the Allow or Deny setting in Email fields.
Use a filter hook.
Each method is explained in more detail below.
## Using the Allow or Deny Setting in Email Fields
This method doesn't require any coding and provides a method of either allowing or denying specific email addresses or email address patterns.
Here's how to set that up:
Edit the settings of an Email field by clicking the icon.
Click on the Advanced tab.
Under Allow or Deny, set Method to Allow.
Click the add icon to add an email address you want to allow.
Click Save & Close.
If you want to allow a specific email address, simply enter it into the Email Address setting.
If you want to allow all email addresses of a certain domain, use the format: *@domain.com
## Using a Filter Hook
For more complex needs, such as allowing a large list of domains, the wsf_action_email_email_validate filter hook is ideal. This hook allows you to analyze and approve email addresses during form submissions.
The wsf_action_email_email_validate filter is supplied with four parameters:
$valid - True by default. Return this value in your function if the email validates.
$email - The email address being validated.
$form_id - The form ID the email address belongs to.
$field_id - The field ID the email address was entered into (This will be false for emails checked in actions).
Your filter hook function can return one of the following return values:
True - The email address is valid, no action will be taken by WS Form.
False - WS Form will show a standard error message indicating the email address is invalid.
String - WS Form will show the string you provide to indicate the email address is invalid.
### Sample Code
This example shows how to create a filter hook function that allows only specific domains. You can easily adapt this code to allow any other domains you wish. This code would typically be added to your theme's functions.php file, preferably in a child theme.
// Add filter for allowing only specific email addresses
add_filter( 'wsf_action_email_email_validate', 'wsf_action_email_email_validate_allowed_domains', 10, 4 );
// Hook function for wsf_action_email_email_validate filter
function wsf_action_email_email_validate_allowed_domains( $valid, $email, $form_id, $field_id ) {
if( filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
// Split email address by @
$email_array = explode( '@', $email );
// Extract domain
$domain = array_pop( $email_array );
// Check if domain exists in list of allowed domains
if( !in_array( $domain, wsf_allowed_domains() ) ) {
// Return an invalid feedback message to be shown on the field
return __( 'The email address provided is not from an allowed domain' );
}
}
return $valid;
}
// Array of allowed domains
function wsf_allowed_domains() {
return array(
'example.com',
'company.com',
'trusted.com'
// Add other domains here ...
);
}
## How to Block Form Submissions by Domain Name
URL: https://wsform.com/knowledgebase/how-to-block-form-submissions-by-domain-name/
In WS Form, you can easily prevent WordPress form submissions based on the domain of the email address entered.
In WS Form, you can easily prevent WordPress form submissions based on the domain of the email address entered.
There are two ways of doing this:
Using the Allow or Deny setting in Email fields.
Use a filter hook.
Each method is explained in more detail below.
## Using the Allow or Deny Setting in Email Fields
This method doesn't require any coding and provides a method of either allowing or denying specific email addresses or email address patterns.
Here's how to set that up:
Edit the settings of an Email field by clicking the icon.
Click on the Advanced tab.
Under Allow or Deny, set Method to Deny.
Click the add icon to add an email address you want to block.
Click Save & Close.
If you want to block a specific email address, simply enter it into the Email Address setting.
If you want to block all email address of a certain domain, use the format: *@domain.com
## Using a Filter Hook
For more complex needs, such as blocking a large list of domains, the wsf_action_email_email_validate filter hook is ideal. This hook allows you to analyze and reject unwanted email addresses during form submissions.
The wsf_action_email_email_validate filter is supplied with four parameters:
$valid - True by default. Return this value in your function if the email validates.
$email - The email address being validated.
$form_id - The form ID the email address belongs to.
$field_id - The field ID the email address was entered into (This will be false for emails checked in actions).
Your filter hook function can return one of the following return values
True - The email address is valid, no action will be taken by WS Form.
False - WS Form will show a standard error message indicating the email address is invalid.
String - WS Form will show the string you provide to indicate the email address is invalid.
### Sample Code
This example shows how to create a filter hook function that blocks disposable domains. You can easily adapt this code to block any other domains you wish. This code would typically be added to your themes functions.php file, preferably in a child theme.
// Add filter for disposable email addresses
add_filter( 'wsf_action_email_email_validate', 'wsf_action_email_email_validate_disposable_domains', 10, 4 );
// Hook function for wsf_action_email_email_validate filter
function wsf_action_email_email_validate_disposable_domains( $valid, $email, $form_id, $field_id ) {
if( filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
// Split email address by @
$email_array = explode( '@', $email );
// Extract domain
$domain = array_pop( $email_array );
// Check if domain exists in list of disposable domains
if( in_array( $domain, wsf_disposable_domains() ) ) {
// Return an invalid feedback message to be shown on the field
return __( 'The email address provided cannot be used' );
}
}
return $valid;
}
// Array of disposable domains
function wsf_disposable_domains() {
return array(
'0-180.com',
'0-30-24.com',
'0-420.com',
'0-900.com',
'0-aa.com',
'0-mail.com',
'0-z.xyz'
// Add other domains here ...
);
}
## How to Block Form Submissions by IP
URL: https://wsform.com/knowledgebase/how-to-block-form-submissions-by-ip/
WS Form gives you multiple ways to block form submissions by IP address. This can be useful for preventing spam.
WS Form gives you multiple ways to block form submissions by IP address. This can be useful for preventing spam.
IP address blocking occurs when the form is rendered. If a blocked IP is detected, WS Form will not render the form and will optionally show a message.
Note that IP address blocking is not processed when previewing a form.
## Methods
There are two methods of blocking IP addresses:
IP Blocklist Setting (In Form Settings > Spam)
wsf_submit_block_ips Filter Hook
## IP Blocklist Setting
Each form can have its own IP blocklist. If a blocked IP address is detected when the form is loaded, WS Form will prevent the form from rendering. Optionally, you can display a custom message instead.
### Enable IP Blocklist
To enable the IP blocklist feature:
Click the Form Settings icon at the top of the layout editor.
Click the Spam tab.
Check the Enable setting under IP Blocklist.
### Add IP Addresses
Click the Add icon under the IP Addresses setting.
Enter an IPv4 or IPv6 IP address.
Repeat this for each IP address you want to add.
### Optional - Blocked Message
If a blocked IP address is detected, can also show a message to the end user. Simply enter your own text in the Blocked Message setting. If you leave this setting blank WS Form will not render the form and not show a message.
## wsf_submit_block_ips Filter Hook
The wsf_submit_block_ips filter hook enables you to specify an array of blocked IP addresses that are checked when a form is submitted. WS Form will check the users IP address when the form is rendered. If a blocked IP address is found the form won't be rendered and an optional message will be shown.
By default this filter hook applies to all forms.
An example of using hook as as follows:
// Callback function for the wsf_submit_block_ips filter hook
function my_hook_function( $ips, $form, $submit ) {
// IPs to block
$ips[] = '192.0.2.0';
$ips[] = '2001:db8::';
// Return value
return $ips;
}
// Add a callback function for the wsf_submit_block_ips filter hook
add_filter( 'wsf_submit_block_ips', 'my_hook_function', 10, 3 );
## Related Hooks
wsf_submit_block_ips
wsf_submit_block_ips_message
wsf_submit_block_ips_message_type
## How to Block Form Submissions by Keyword
URL: https://wsform.com/knowledgebase/how-to-block-form-submissions-by-keyword/
WS Form gives you multiple ways to block keywords from being submitted through a form.
WS Form gives you multiple ways to block keywords from being submitted through a form. This can be useful for preventing spam, enforcing content standards, or restricting specific terms.
The keyword matching is case-insensitive, meaning it doesn't matter whether the word is in uppercase or lowercase.
To avoid false positives, WS Form performs whole word matching only. For example, if “art” is a blocked keyword, it will not trigger on safe words like “partial” or “startled.” This helps ensure that valid submissions aren't mistakenly flagged.
## Methods
There are two methods of blocking keywords:
Keyword Blocklist Setting (In Form Settings > Spam)
wsf_submit_block_keywords Filter Hook
Keyword Blocklist integration
## Keyword Blocklist Setting
Each form can have an independent keyword blocklist. If a keyword is found when the form is submitted, WS Form will invalidate the field containing the keyword and show an invalid feedback message. You can either use the default invalid feedback message on the field or specify a custom message.
### Enable Keyword Blocklist
To enable the keyword blocklist feature:
Click the Form Settings icon at the top of the layout editor.
Click the Spam tab.
Check the Enable setting under Keyword Blocklist.
### Add Keywords
Click the Add icon under the Keywords setting.
Enter a keyword. Keywords can also contain phrases.
Repeat this for each keyword you want to add.
### Optional - Set Invalid Feedback Message
If a blocked keyword is found in a submitted field, WS Form will display an error message next to that field. By default, it shows the field’s standard invalid feedback message.
To customize this message, simply enter your own text in the Invalid Feedback Message setting.
## wsf_submit_block_keywords Filter Hook
The wsf_submit_block_keywords WordPress filter hook enables you to specify an array of blocked keywords that are checked when a form is submitted. WS Form will check all string based input again the blocked keyword array. If a blocked keyword is found, invalid feedback will be shown on the field.
By default this filter hook applies to all forms.
An example of using hook as as follows:
// Callback function for the wsf_submit_block_keywords filter hook
function my_hook_function( $keywords, $form, $submit ) {
// Keywords to block
$keywords[] = 'ranking';
$keywords[] = 'seo';
// Return value
return $keywords;
}
// Add a callback function for the wsf_submit_block_keywords filter hook
add_filter( 'wsf_submit_block_keywords', 'my_hook_function', 10, 3 );
If you need more control with keyword matching, consider using the wsf_submit_field_validate filter hook.
### Related Hooks
wsf_submit_block_keywords
wsf_submit_block_keywords_message
## Keyword Blocklist Integration
The Keyword Blocklist integration for WS Form makes it effortless to block unwanted spam by scanning form submissions for over 1,300 high-signal keywords across categories like Adult, Finance, SEO, and more. It’s incredibly easy to use. Simply toggle the categories you want to enable, and WS Form takes care of the rest. With built-in defaults for the most common spam types and full control over which categories are active, you can fine-tune protection without writing a single line of code.
The Keyword Blocklist integration is available FREE for WS Form PRO users.
## How to Block Form Submissions by User Agent
URL: https://wsform.com/knowledgebase/how-to-block-form-submissions-by-user-agent/
This tutorial shows how to block submissions by user agent.
It is possible to block WordPress form submissions by a particular user agent by using the wsf_submit_field_validate filter hook.
An example filter hook function is shown below. This function will run for all forms on your form when they are submitted.
// My validation function
function wsf_submit_block_user_agent( $field_error_action_array, $field_id, $field_value, $section_repeatable_index, $post_mode, $submit ) {
// Only process validation if the form is submitted and not saved
if ( $post_mode !== 'submit' ) {
return $field_error_action_array;
}
// User agents to block
$user_agents_to_block = array(
'Linux aarch64'
);
// Check if $_SERVER and the User-Agent header exist
if (
isset( $_SERVER ) &&
isset( $_SERVER[ 'HTTP_USER_AGENT' ] )
) {
// Get user agent
$user_agent = $_SERVER[ 'HTTP_USER_AGENT' ];
// Check user agents to block
foreach( $user_agents_to_block as $user_agent_block ) {
// Check if user agent is present in the User-Agent string
if ( stripos( $user_agent, $user_agent_block ) !== false ) {
// Send a 403 Forbidden response and exit
header( 'HTTP/1.1 403 Forbidden' );
exit;
}
}
}
// Return $field_error_action_array to WS Form
return $field_error_action_array;
}
// Add a callback function for the wsf_submit_block_agent filter hook
add_filter( 'wsf_submit_field_validate', 'wsf_submit_block_user_agent', 10, 6 );
## How to Change Email Notification Settings
URL: https://wsform.com/knowledgebase/email-configuration/
When a form is saved or submitted, WS Form can send one or more emails acknowledging the form submission.
When a form is saved or submitted, WS Form can send one or more emails. You can change who an email is sent to by changing the To and From email addresses in the Send Email action settings.
To change your email settings:
When editing your form, click the Actions icon at the top of the page. The Actions sidebar will open on the right-hand side of the page. You will see a list of actions configured for your form.
Click the settings icon for the Send Email action.
If you would like to make the sidebar wider to make it easier to read, you can click the expand icon. To contract the sidebar back to the original size, click the contract button.
This will show the following email settings:
## From
Each email has a From email address and a display name. You can change this to any email address and display name you wish. You will notice that by default it uses #blog_admin_email and #blog_name for these values. WS Form converts these variables to the WordPress General Settings email address and site title respectively.
You could also set this to the value of one of your fields. For example, if you have an email field with an ID of 123, you could enter:
#field(123)
... into the From Email Address setting and WS Form will put the email address entered in the form as the from email address.
Some email platforms require that emails are sent from a registered / validated email address. In that case, we would recommend using the Reply To setting to enter the email address (or #field(123) variable) into. That way when you reply to an email acknowledgement it will prompt your email software to send the email to the Reply To address as opposed to the registered / validated email address.
## To
You can add any number of To email addresses for the email. Typically this will be to you or perhaps to the website visitor to acknowledge their inquiry. To add a To email address:
Click the Add icon.
Enter the email address.
Optionally enter a display name for the email address (e.g. Your name).
You can enter straight text or use a WS Form variable in this field. For more information about WS Form variables, click here.
By default, WS Form uses #blog_admin_email and#blog_name which will enter the email address and the name of your website you have configured in the WordPress Settings > General page.
Tip: Some email clients do not like emails that are sent to and from the same email address. We would recommend changing the from email address to something like do.not.reply@yourdomain.com to ensure these are different. Also some email gateways require you to register sender email addresses before you can use them. Ensure you have registered all from addresses if that is the case.
## How to Change the GDPR Checkbox Text
URL: https://wsform.com/knowledgebase/how-to-change-the-gdpr-checkbox-text/
This tutorial walks you through changing the default GDPR checkbox label in WS Form step by step.
Most WS Form templates already include a GDPR checkbox. By default, the checkbox label says:
I consent to #blog_name storing my submitted information so they can respond to my inquiry
The variable #blog_name is automatically replaced with your site’s title.
If you’d like to change the label on this checkbox, follow these steps:
Hover over the GDPR checkbox field and click the Settings icon.
In the sidebar, click the Checkboxes tab. This will display a data grid showing all of the checkboxes in this field, in this case a single row for the GDPR consent checkbox.
In the data grid, find the Label column and replace the text with whatever you’d like the checkbox to say.
Tip: You can still use WS Form variables here, such as #blog_name to keep the site title dynamic.
Click Save & Close at the bottom of the sidebar.
When you’re ready to make your changes live, click Publish.
## How to Change Which Style a Form Uses
URL: https://wsform.com/knowledgebase/how-to-change-which-style-a-form-uses/
This tutorial explains how to choose which style a form uses.
By default, all new forms are assigned to the Default style. You can also choose a specific style for a form as follows:
Click the Form Settings icon at the top of the layout editor.
Click the Styling tab.
Choose a style from the Style setting.
Click Save & Close.
Click Publish if you want to publish the change immediately.
## How to Change WordPress Login Error Messages
URL: https://wsform.com/knowledgebase/how-to-change-wordpress-login-error-messages/
By leveraging gettext, you can tailor the login error messages to better fit your site's tone, provide more detailed information, or translate messages into di…
If you're looking to customize the error messages displayed during the user login process in WordPress, a powerful tool at your disposal is the gettext WordPress filter hook. This hook allows for the interception and modification of text output by WordPress, including error messages, before they're shown to the user. By leveraging gettext, you can tailor the login error messages to better fit your site's tone, provide more detailed information, or translate messages into different languages.
An example of using this filter hook with the WS Form User Management login template is shown below:
function my_gettext_hook_function( $translated_text, $text, $domain ) {
if ('ws-form-user' === $domain) {
switch ( $text ) {
case 'Incorrect password.':
$translated_text = 'The password entered is incorrect. Please try again.';
break;
case 'Invalid email address.':
$translated_text = 'The email address entered is incorrect. Please try again.';
break;
}
}
return $translated_text;
}
add_filter( 'gettext', 'my_gettext_hook_function', 20, 3 );
Error messages generated by WS Form under the ws-form-user domain for login include:
Empty password.
Empty username.
Incorrect password.
Invalid email address.
Invalid username.
The WS Form User Management integration allows you to create custom WordPress forms for user login.
## How to Change WordPress Registration Error Messages
URL: https://wsform.com/knowledgebase/how-to-change-wordpress-registration-error-messages/
By leveraging gettext, you can tailor the registration error messages to better fit your site's tone, provide more detailed information, or translate messages…
If you're looking to customize the error messages displayed during the user registration process in WordPress, a powerful tool at your disposal is the gettext WordPress filter hook. This hook allows for the interception and modification of text output by WordPress, including error messages, before they're shown to the user. By leveraging gettext, you can tailor the registration error messages to better fit your site's tone, provide more detailed information, or translate messages into different languages.
An example of using this filter hook is shown below:
function my_gettext_hook_function( $translated_text, $text, $domain ) {
if ('default' === $domain) {
switch ( $text ) {
case 'Sorry, that email address is already used!':
$translated_text = 'That email is already registered. Please try another.';
break;
case 'Cannot create a user with an empty login name.':
$translated_text = 'The username is empty.';
break;
}
}
return $translated_text;
}
add_filter( 'gettext', 'my_gettext_hook_function', 20, 3 );
Error messages returned from the wp_insert_user function include:
Cannot create a user with an empty login name.
Nicename may not be longer than 50 characters
Not enough data to create this user.
Sorry, that email address is already used!
Sorry, that username already exists!
Sorry, that username is not allowed.
User URL may not be longer than 100 characters.
Username may not be longer than 60 characters.
Other error messages generated by WS Form under the ws-form-user domain for registration include:
Password not specified.
Passwords do not match.
The WS Form User Management integration allows you to create custom WordPress forms for user registration.
## How to Change Your Payment Method when Renewing
URL: https://wsform.com/knowledgebase/how-to-change-your-payment-method-when-renewing/
It is possible to change your payment method when renewing your license. You should do this prior to the license renewal date.
It is possible to change your payment method when renewing your license. You should do this prior to the license renewal date.
To change your payment method when renewing, please follow these steps:
Choose the same edition you currently own using one of these links:
Personal Edition
Freelance Edition
Agency Edition
On the checkout page click the link to renew your license key:
Important: Enter your existing license key.
If you have a Personal license, enter the license key for WS Form PRO.
If you have a Freelance or Agency license, enter the license key for that edition rather than the key for WS Form PRO itself.
Choose your new payment method and checkout.
## How to Create Select Optgroups Using Data Grids
URL: https://wsform.com/knowledgebase/how-to-create-select-optgroups-using-data-grids/
Learn how to create optgroups in WS Form Select fields using Data Grid Groups.
WS Form data grids support groups, making it easy to create