Contact Form Clean and Simple
A clean and simple AJAX contact form with Google reCAPTCHA, flexible CSS framework support, spam filtering, and REST API support for headless WordPress implementations. Clean: all user inputs are stripped in order to avoid cross-site scripting (XSS) vulnerabilities. Simple: AJAX enabled validation and submission for immediate response and guidance for your users (can be switched off). Flexible Styling: Choose your CSS framework – Bootstrap (default), Theme Native (inherits your theme’s styles), or Minimal (semantic classes for complete custom styling). REST API Support: Enable headless WordPress implementations to submit forms via authenticated REST API endpoints. Accessible: Built with accessibility in mind – proper ARIA attributes, keyboard navigation, screen reader support, and WCAG AA compliant color contrast. This is a straightforward contact form for your WordPress site. There is very minimal set-up required. Simply install, activate, and then place the short code [cscf-contact-form] on your web page. A standard set of input boxes are provided, these include Email Address, Name, Message and a nice big ‘Send Message’ button. When your user has completed the form an email will be sent to you containing your user’s message. To reply simply click the ‘reply’ button on your email client. The email address used is the one you have set up in WordPress under ‘Settings’ -> ‘General’, so do check this is correct. To help prevent spam all data is scanned can be scanned with Fullworks Anti Spam Pro. For this to work you must have the Fullworks Anti Spam Pro Plugin installed and activated. Fullworks Anti Spam Pro will also log all your messages, categorized as spam or not, automatically. For added piece of mind this plugin also allows you to add a ‘reCAPTCHA’. This adds a picture of a couple of words to the bottom of the contact form. Your user must correctly type the words before the form can be submitted, and in so doing, prove that they are human. Why Choose This Plugin? Granted there are many plugins of this type in existence already. Why use this one in-particular? Here’s why: Minimal setup. Simply activate the plugin and place the shortcode [cscf-contact-form] on any post or page. Safe. All input entered by your user is stripped back to minimise as far as possible the likelihood of any malicious user attempting to inject a script into your website. If the Fullworks Anti Spam Pro plugin is activated all form data will be scanned for spam. You can turn on reCAPTCHA to avoid your form being abused by bots, however Fullworks Anti Spam Pro will do this without reCAPTCHA. Ajax enabled. You have the option to turn on AJAX (client-side) validation and submission which gives your users an immediate response when completing the form without having to wait for the page to refresh. The form can integrate seamlessly into your website. Turn off the plugin’s default css style sheet so that your theme’s style sheet can be used instead. Flexible CSS styling: Choose from Bootstrap, Modern (with dark mode), Theme Native, or Minimal styling modes to match your site’s design. This plugin will only link in its jQuery file where it’s needed, it will not impose itself on every page of your whole site! Works with the latest version of WordPress. Original plugin written by an experienced PHP programmer, Megan Nicholas, the code is rock solid, safe, and rigorously tested as standard practice. Headless WordPress ready. REST API support allows you to submit forms from decoupled frontends, mobile apps, or any external application with proper authentication. Hopefully this plugin will fulfil all your needs. PHP 8 Ready Tested on PHP 8.4 How to Use Unless you want to change messages or add reCAPTCHA to your contact form then this plugin will work out of the box without any additional setup. Important: Check that you have an email address set-up in your WordPress ‘Settings’->’General’ page. This is the address that the plugin will use to send the contents of the contact form. To add the contact form to your WordPress website simply place the shortcode [cscf-contact-form] on the post or page that you wish the form to appear on. If you have Jetpack plugin installed disable the contact form otherwise the wrong form might display. Additional Settings This plugin will work out of the box without any additional setup. You have the option to change the default messages that are displayed to your user and to add reCAPTCHA capabilities. Go to the settings screen for the contact form plugin. You will find a link to the setting screen against the entry of this plugin on the ‘Installed Plugins’ page. Here is a list of things that you can change Message: The message displayed to the user at the top of the contact form. Message Sent Heading: The message heading or title displayed to the user after the message has been sent. Message Sent Content: The message content or body displayed to the user after the message has been sent. CSS Framework: Choose how the form is styled: Bootstrap (Default): Uses Bootstrap CSS classes for full Bootstrap compatibility. Best for themes already using Bootstrap. Modern (Card style): A beautiful, opinionated modern design with card-style layout, large inputs, and CSS variables for easy customization. Includes automatic dark mode support. Theme Native: Uses minimal classes with WordPress’s wp-element-button for the submit button. The form inherits your theme’s native form styles. Minimal: Uses semantic CSS classes only (cscf-field, cscf-input, etc.) for complete custom styling control. Use this plugin’s default stylesheet: The plugin comes with a default style sheet to make the form look nice for your user. Untick this if you want to use your theme’s stylesheet instead. The default stylesheet will simply not be linked in. This option is most relevant when using the Bootstrap CSS framework. Use client side validation (Ajax): When ticked the contact form will be validated and submitted on the client giving your user instant feedback if they have filled the form in incorrectly. If you wish the form to be validated and submitted only to the server then untick this option. Use reCAPTCHA: Tick this option if you wish your form to have a reCAPTCHA box. ReCAPTCHA helps to avoid spam bots using your form by checking that the form filler is actually a real person. To use reCAPTCHA you will need to get a some special keys from google https://www.google.com/recaptcha/admin/create. Once you have your keys enter them into the Public key and Private key boxes reCAPTCHA Public Key: Enter the public key that you obtained from here. reCAPTCHA Private Key: Enter the private key that you obtained from here. reCAPTCHA Theme: Here you can change the reCAPTCHA box theme so that it fits with the style of your website. Recipient Emails: The email address where you would like all messages to be sent. This will default to the email address you have specified under ‘E-Mail Address’ in your WordPress General Settings. If you want your mail sent to a different address then enter it here. You may enter multiple email addresses by clicking the ‘+’ button. Confirm Email Address: Email confirmation is now optional. To force your user to re-type their email address tick ‘Confirm Email Address’. It is recommended that you leave this option on. If you turn this option off your user will only have to enter their email address once, but if they enter it incorrectly you will have no way of getting back to them! Email Subject: This is the email subject that will appear on all messages. If you would like to set it to something different then enter it here. Override ‘From’ Address: If you tick this and then fill in the ‘From Address:’ box then all email will be sent from the given address NOT from the email address given by the form filler. **Option to allow enquiry to email themselves a copy of the message. Contact consent: This option allows you to be GDPR compliant by adding a ‘Consent to contact’ check box at the bottom of the form. Enable REST API: Turn on REST API support to allow headless WordPress implementations to submit forms. Required User Capability: Set the minimum WordPress user capability required to use the REST API (default: edit_posts). REST API for Headless WordPress This plugin includes REST API support, making it perfect for headless WordPress implementations, mobile applications, and decoupled frontend frameworks like React, Vue.js, or Angular. Enabling REST API Go to the plugin settings page Find the “REST API Settings” section Check “Enable REST API” Set the required user capability (default: edit_posts) Save your settings API Endpoint POST /wp-json/cscf/v1/submit Authentication The REST API requires WordPress user authentication. Users must be logged in and have the capability specified in settings (default: edit_posts). For headless implementations, you can use: – Application Passwords (WordPress 5.6+) – JWT Authentication plugins – OAuth plugins – Basic Authentication (development only) Request Format Send a POST request with JSON body: `json { “name”: “John Doe”, “email”: “
[email protected]”, “confirm_email”: “
[email protected]”, “message”: “Your message here”, “phone_number”: “+1234567890”, “contact_consent”: true, “email_sender”: false, “post_id”: 123 } ` Required fields: – name: Sender’s name – email: Sender’s email address – message: The message content Optional fields: – confirm_email: Required if email confirmation is enabled in settings – phone_number: Required if phone number is set as mandatory in settings – contact_consent: Required if contact consent is enabled in settings – email_sender: Set to true to send a copy to the sender – post_id: The ID of the page/post where the form would normally be displayed Response Format Success Response (200): json { "success": true, "message": "Message Sent" } Validation Error Response (400): json { "code": "validation_failed", "message": "Validation failed.", "data": { "status": 400, "errors": { "email": "Please enter a valid email address.", "message": "Please enter a message." } } } Authentication Error Response (401): json { "code": "rest_forbidden", "message": "Authentication required.", "data": { "status": 401 } } Example Implementation JavaScript (fetch API): `javascript const formData = { name: “John Doe”, email: “
[email protected]”, confirm_email: “
[email protected]”, message: “This is a test message from the REST API” }; fetch(‘https://yoursite.com/wp-json/cscf/v1/submit’, { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json’, ‘Authorization’: ‘Bearer YOUR_AUTH_TOKEN’ }, body: JSON.stringify(formData) }) .then(response => response.json()) .then(data => { if (data.success) { console.log(‘Message sent successfully!’); } else { console.error(‘Validation errors:’, data.data.errors); } }); ` Important Notes REST API is disabled by default for security reCAPTCHA is bypassed for REST API submissions (authentication provides security) All other form validations and spam filtering still apply Form submissions via REST API are processed identically to regular submissions Email notifications work the same way as standard form submissions Demo Demo site coming soon.
Top keywords
- form33×1.84%
- email31×1.73%
- message25×1.39%
- api19×1.06%
- address18×1.00%
- rest18×1.00%
- user18×1.00%
- rest api17×0.95%
- recaptcha16×0.89%
- wordpress16×0.89%
- contact15×0.84%
- default12×0.67%
The Innovative Form Builder – IvyForms
The Innovative WordPress Form Builder Plugin IvyForms is an innovative drag-and-drop form builder for WordPress that turns form creation into minutes of work instead of hours. Build contact forms, order forms, registration forms, surveys and any custom form you need – on a single screen, with no code and no developer. One-screen form creation, drag-and-drop fields, a real-time preview and ready-made templates mean less setup frustration, a faster launch, and more time to focus on the results your forms bring in. Why Build Your Forms with IvyForms Launch faster – Go from idea to published form in minutes with one-screen creation and ready-made templates, so your campaigns never wait on your forms. No code, no developer – Reorder fields and set labels, placeholders, colors and layout with simple visual controls – keeping your budget and your timeline intact. Grows with your skills – Beginners get a clear, welcoming interface, while advanced users get the flexibility to fine-tune every element. Never get stuck – Email support, detailed documentation with screenshots and videos, and onboarding tutorials mean faster answers and less downtime. From simple to complex – Whether it’s a basic contact form or a multi-step form, you get the same smooth, enjoyable building experience. IvyForms Lite | Free Features & Integrations Drag & Drop Form Builder Build professional forms in minutes – drag, drop and customize fields to get exactly what you need, without writing a single line of code. Gutenberg Block Drop any form straight into the WordPress block editor, so publishing a form is as easy as adding a paragraph. Elementor Integration Add and manage your forms natively inside Elementor and keep your entire page-building workflow in one place. Angie AI Let the Elementor AI agent build and edit forms for you, turning a plain description into a ready-to-use form. MCP Support Connect AI agents through the Model Context Protocol (WordPress 6.9+) so forms can be created and managed automatically – no manual clicking. Dozens of Ready-to-Use Templates Skip the blank page. Start from proven templates for contact, order, registration, booking, and feedback forms and publish in minutes. 20+ Form Fields Capture exactly the data you need – from names and emails to file uploads and product orders (full list below). Permissions Give the right people the right access with role- and user-based permissions, keeping your forms and data under control. File Upload Field Let users attach documents, images and files to their submissions – perfect for applications, support and job forms. Undo & Redo Experiment freely and step backward or forward at any time, so you never lose your work while building. Import / Export with Styles Move complete forms – styling included – between sites in seconds and save hours of rebuilding. Amelia Integration + Amelia Theme Connect IvyForms with Amelia bookings and apply the matching Amelia theme for a consistent booking experience. Google Sheets Integration Send every entry straight to Google Sheets for real-time collaboration, reporting and sharing – with no manual export. Embedded Forms Place any form anywhere on your site with a simple shortcode for maximum reach and flexibility. Submission Confirmations Guide users after they submit with a custom success message or a redirect to your thank-you page. Email Notifications Get instant email alerts on every submission so you can follow up on leads and never miss an entry. Spam Protection Keep submissions clean and trustworthy with built-in Google reCAPTCHA, hCaptcha and Turnstile. Entry Management View, filter, and manage every submission from your dashboard, so your data stays organized and actionable. Mobile-Friendly Forms Deliver a flawless, professional experience on mobile, tablet, and desktop and capture more submissions everywhere. Dark / Light Mode Match your admin style with sleek, dark and light options for a modern, comfortable workspace. Live Form Preview See your form exactly as users will as you build it, so you catch issues before you publish. Customization & Styles Adjust layouts, colors, spacing and appearance to match your brand – no CSS required. wpDataTables Integration Turn raw submissions into sortable, filterable tables and charts to spot trends and share insights fast. Slack Integration Get an instant Slack notification the moment someone submits a form, so your team can act on new leads, feedback and responses without leaving Slack. Form Fields in IvyForms Lite Text – Collect open-ended answers like names, messages or feedback. Number – Capture numeric data such as quantities, ages or amounts. Email – Validated email capture for leads and signups. Phone – Structured phone input with country-code selection. Website/URL – Accept and validate links or web addresses. Name – First/last name fields to personalize submissions. Address – Full address capture for shipping, events or bookings. Radio Button – Let users pick one option from a clear list. Checkbox – Allow multiple selections or consent opt-ins. Dropdown – Clean, organized menus for single or multi-select. Date – Easy date picking for bookings and scheduling. Time – Quick, accurate time selection. Rating – Star-style ratings for feedback and reviews. Slider – Pick a value along a range with a simple slider. GDPR Agreement – Add a consent checkbox for compliant data collection. HTML – Insert custom HTML content anywhere in the form. File Upload – Let users attach documents, images or files. Product – Add purchasable items for order and payment forms. Quantity – Let users set how many of an item they want. Total – Automatically calculate and display the order total. IvyForms Pro | Form Builder Features & Integrations Take your form building to the next level with IvyForms Pro – built for professionals who want smarter, more dynamic forms and deeper integrations. Multi-Step Forms Make long forms easy to complete by breaking them into logical steps. Multi-step forms improve the user journey, reduce drop-offs and increase submission rates – ideal for applications, onboarding and detailed registrations. Conversational Forms Turn any form into a friendly, one-question-at-a-time experience. Conversational forms keep users focused and engaged, lifting completion rates on surveys, quizzes and lead-generation forms. Multiple Confirmations with Conditional Logic Show the right follow-up to the right person. Based on how users answer, display a different success message or redirect them to a different thank-you page – so every submission ends with a relevant, personal response. Multiple Notifications with Conditional Logic Route every submission to the right inbox. Send different email notifications to different team members based on how users answer – so sales, support, and billing each get only the entries that matter to them. Smart, Conditional Forms Show or hide fields based on what users choose, so every visitor sees a shorter, more relevant form and completes it more often. Backend Entry Management Add and edit entries directly from your dashboard. Fix a typo, log a submission that came in by phone or update records without ever touching the database – full control over your data in one place. Integrations: Webhooks & REST API Connect IvyForms to the rest of your stack and automate the busywork. Push submissions to any system in real time with Webhooks, link thousands of apps through Zapier, or build fully custom workflows with the REST API. Multisheets Integration Go beyond a single spreadsheet. Sync entries across multiple Google Sheets for advanced reporting, team collaboration and cleaner data organization. Form Themes Apply polished, predefined style themes in a single click and give every form a professional, on-brand look – with no design work required. Pro Form Fields Unlock advanced fields built for richer data collection: Rich Text, Section, DateTime, Likert Scale, Net Promoter Score (NPS) and Multi-file upload – perfect for surveys, feedback, agreements and detailed submissions. If you want to use these advanced features, check our lifetime and annual plans and choose the one that suits your needs. You’ll get everything in Lite, all Pro features, and every future Lite feature we release. How to Use IvyForms Pro Using IvyForms Pro is simple, but one thing is worth clarifying up front: the Pro version works as an add-on to the free (Lite) plugin. That means you always need the Lite version installed and active – it’s the core engine. The Pro add-on then unlocks all premium features on top of it. Once both are active, the Pro tools appear right inside your form builder. From there you can create advanced forms, enable premium fields, use conditional logic, and access all the extra customization options that come with Pro – without changing your existing workflow. Coming Soon Square payments (Lite), Slack integration (Lite), Calculation field (Pro), Zapier (Pro), Repeater field (Pro), Save & continue later (Pro), Surveys (Pro), and email integrations. USEFUL LINKS FOR OUR FORMS Official Page || Documentation || Youtube || Instagram || Facebook || Blog || Pro Versions External services This plugin connects to the ipwho.is API to obtain country code information for phone number field localization. This feature helps improve user experience by auto-selecting the appropriate country code for phone input fields. What data is sent: – The plugin sends an IP address lookup request to ipwho.is when a form with a phone number field is loaded – No personal identifying information is explicitly sent, but the user’s IP address is implicitly transmitted as part of the request When data is sent: – Only when forms with phone number functionality are loaded and used This service is provided by “https://ipwhois.io”: – Terms of service: https://ipwhois.io/terms – Privacy policy: https://ipwhois.io/privacy