WordPress Contact Forms FAQ: Frequently Asked Questions

Ehi! Questa pagina è disponibile solo in Inglese



Contact Forms: Frequently Asked Questions

Answers to common questions about the Contact Forms plugin by Cimatti. For additional help, visit the support forum on WordPress.org.

Table of Contents

  1. Getting Started
  2. Submissions and Data
  3. Email Notifications
  4. Customization
  5. Accessibility
  6. Privacy and GDPR
  7. Spam Protection
  8. Compatibility
  9. File Upload
  10. Troubleshooting

Getting Started

How do I create a form?

Go to Contact Forms > Forms and click “Add New”. Drag fields from the field panel on the left into the form area. Configure each field by expanding it (click the field title or the arrow). The preview tab shows how the form will look. Click Save when done.

The plugin comes with common fields already defined: First Name, Last Name, Email (autoreply), Address, City, State/Province, Country (dropdown with all countries), Message, Telephone, Captcha, and Turnstile. You can also create custom fields from Contact Forms > Fields.

How do I embed a form in a page?

There are three ways:

  1. Block editor (Gutenberg): Add the “Contact Form” block and select your form from the dropdown. A preview of the form fields is shown directly in the editor.
  2. Classic editor: Click the orange “C” button in the editor toolbar and choose a form from the modal.
  3. Shortcode: Copy the shortcode from the form list (Contact Forms > Forms) and paste it into any post, page, or widget area. The shortcode looks like .

How do I add custom fields?

Go to Contact Forms > Fields. Click “Add Field” and choose the field type (text field, select, checkbox group, etc.), give it a name, and configure its options. Once saved, the field appears in the field panel of every form editor, ready to be dragged into any form.

What field types are available?

Text Field, Text Area, Email, Autoreply Email, Telephone (with country prefix and E.164 validation), Checkbox, Select, Radio Buttons, Multiple Select, Multiple Checkboxes, Post Select, Multiple Post Checkboxes, Date, Color Picker, Hidden Value, File Upload, Password, Password and Confirmation, Custom HTML (for inserting static content in the form), Fieldset (for grouping fields), Captcha (reCAPTCHA v2 or math-based fallback), Cloudflare Turnstile, and Submit Button.


Submissions and Data

Does the plugin store form submissions?

Yes. Every submission is stored in your WordPress database. You can view, search, filter, and export submissions from Contact Forms > Submissions. The table shows all form fields as sortable columns.

How do I export submissions to Excel?

From the submissions list, use the “Export visible columns to Excel” or “Export all columns to Excel” buttons above the table. Combined with the filter and search options, you can export exactly the data you need. Only the columns visible in your screen options are included in the “visible columns” export.

What is the lead status feature?

Each submission can be assigned a lead status label such as “Lead”, “Job Candidate”, or any other custom status. This helps categorize and filter submissions. You can set the status from the single submission view. The lead status column is sortable and filterable in the submissions list.


Email Notifications

The form does not send emails

First, check if your WordPress installation can send the password recovery email. Contact Forms uses the same wp_mail() function as WordPress core. If password recovery emails do not work either, the issue is with your server’s email configuration, not the plugin.

Common causes:

To solve the issue, install an SMTP plugin (such as WP Mail SMTP, Post SMTP, or FluentSMTP) and configure it with your real email service credentials. SMTP plugins replace the unreliable default PHP mail transport with authenticated delivery.

Note: Contact Forms processes form submissions at plugins_loaded priority 20, giving SMTP plugins time to register their transport at the default priority 10.

How do I change the “From” name and email?

Go to Contact Forms > Settings and set the “From” field using the standard email format:

Your Name <[email protected]>

This becomes the default for all forms. You can override it per form in the form’s Messages tab.

Use the same format in the confirmation email’s “From” field to control what the visitor sees as the sender. Make sure the email address matches a domain you control, or your hosted email service is configured to send on its behalf.

What are tokens and how do I use them?

Tokens are placeholders you can use in email subjects, email bodies, success messages, and error messages. They are replaced with the actual values when the form is submitted.

Field tokens use the field ID as the token name:

System tokens provide submission metadata:

Token Description
{__submitted_day_month_year} Date when the form was submitted
{__submitted_hour} Time the form was submitted
{__created_day_month_year} Date when the form was first opened by the visitor
{__created_hour} Time the form was first opened
{__url} Full URL of the page with the form
{__uri} Page path (e.g. /contact-us/)
{__pid} Post/page ID
{__fid} Form ID
{__subid} Submission ID
{__referrer} Referrer URL (previous page)
{__ip} Visitor IP address
{__anonymized_ip} Anonymized IP (last octet replaced)
{__lang} Browser language
{__locale} Full browser locale
{__user_agent} Browser user agent string
{__platform} Operating system
{__submitted_txt} All submitted fields as plain text
{__submitted_html} All submitted fields as HTML table
{__submitted_json} All submitted fields as JSON
{__review_submission_url} Admin URL to view this submission
{__autoreply} Whether an autoreply email was sent (for conditional tags)
{__autoreply_email} The autoreply email address
{__confirmation_emails_message} Content of the confirmation email
{__tentatives} Number of submission attempts
{__submit_method} Submission method (AJAX or POST)

How do conditional tags work?

Conditional tags let you include content in emails or messages only when a certain value is present. The syntax is:

[form_if {token} [content to show when token has a value]]

Example: include the referrer only when available:

[form_if {__referrer} [The visitor came from: {__referrer}]]

This avoids showing “Referrer: (empty)” when there is no referrer. Conditional tags can be used in admin notification emails, confirmation emails, and on-screen messages.


Customization

What layout options are available?

Three layouts:

Set the layout in the form’s Appearance tab. All layouts are responsive and accessible.

How do I change the form language?

Each field label and default value can be overridden per form. When editing a form, expand a field and check “Override label” to change the label text. This lets you translate individual forms without affecting other forms that use the same field.

For example, you can change “First Name” to “Nombre”, “Message” to “Messaggio”, and “Submit” to “Invia” in a specific form while keeping the English labels in other forms.

The plugin is available in English, Italian, and Spanish. All plugin strings can be translated via WPML string translation (wpml-config.xml is included). To show a form in another language, duplicate the form and override the field labels with your translations.

Can I customize validation messages?

Yes. You can customize the “required” error message at two levels:

How do I add custom CSS classes to fields?

When editing a form, expand any field and you will find options for CSS Class and CSS ID. You can assign custom classes and IDs to the field wrapper, making it easy to target specific fields in your theme’s stylesheet. Radio buttons and checkboxes also support per-option CSS class and ID.

Can I change colors, borders, and button styles?

Yes. The form editor includes an Appearance tab where you can set colors, margins, border width, border radius, background color, padding, font size, and submit button styles for each form. These are applied as inline styles, so they work regardless of your theme’s CSS.


Accessibility

Is the plugin accessible?

Yes. Version 2.0 was built to meet WCAG 2.2 AA requirements. Specific accessibility features include:

Does it meet the European Accessibility Act requirements?

The European Accessibility Act (EAA) requires websites to meet accessibility standards starting June 2025. Contact Forms 2.0 was designed with WCAG 2.2 AA compliance, which covers the technical requirements referenced by the EAA. This includes proper form labeling, error identification, keyboard operability, and screen reader support.


Privacy and GDPR

How does data retention work?

You can set a global data retention period (days, months, or years) from Contact Forms > Settings. Each form can override the global setting. When submissions expire, they are cleaned up automatically via WP-Cron. You choose whether expired data is anonymized (personal data replaced with placeholders, keeping the record for statistics) or permanently deleted.

Can I anonymize submitted data?

Yes. You can anonymize individual submissions from the single submission view, or use bulk actions in the submissions list to anonymize multiple submissions at once. Anonymization replaces personal data (name, email, IP, message, etc.) with placeholders while keeping the submission record so that your charts and statistics remain accurate.

Does it integrate with the WordPress Privacy API?

Yes. The personal data exporter and eraser are both integrated. When a data export or erasure request is processed through WordPress (Tools > Export/Erase Personal Data), Contact Forms includes all relevant submission data. The eraser anonymizes the data by default, or permanently deletes it depending on your settings.

What happens to the data if I deactivate the plugin?

Nothing, by default. Your submission data stays in the database. If you want to clean up when deactivating, go to Contact Forms > Settings > Danger Zone and choose whether to keep data, anonymize it, or delete everything. This setting is only applied when you explicitly deactivate the plugin.


Spam Protection

How do I add Cloudflare Turnstile?

  1. Install and activate the Simple Cloudflare Turnstile plugin.
  2. Go to Settings > Cloudflare Turnstile and enter your site key and secret key (get them from the Cloudflare dashboard).
  3. In the Contact Forms editor, drag the Turnstile field into your form.

The Contact Forms settings page shows whether the Simple Cloudflare Turnstile plugin is installed and configured.

How do I use reCAPTCHA?

The Captcha field supports Google reCAPTCHA v2. To enable it:

  1. Register your site at google.com/recaptcha and choose reCAPTCHA v2.
  2. Go to Contact Forms > Settings and enter the site key and secret key in the reCAPTCHA section.
  3. Drag the Captcha field into your form.

If no reCAPTCHA keys are configured, the Captcha field uses a built-in math-based challenge instead.


Compatibility

Does it work with page caching plugins?

Yes. The plugin includes a resilience mechanism for AJAX submissions: if the WordPress nonce expires (common when pages are served from cache), it automatically retries up to 3 times before falling back to a standard POST submission. This ensures forms work even when the cached page has an expired nonce.

Is it compatible with WPML?

Yes. A wpml-config.xml file is included for WPML string translation. Field labels and form messages can be translated through WPML’s string translation interface.

Does it support the block editor (Gutenberg)?

Yes. A native Gutenberg block is included. Search for “Contact Form” in the block inserter, select your form from the dropdown, and see the form fields listed in the editor. The block renders the full form on the frontend.

The plugin does not work with another plugin I have installed

Contact Forms is compatible with most plugins, including popular SEO plugins, caching plugins, multilingual plugins, and page builders. If you find a specific conflict, check the support forum or report it there with details about the conflicting plugin and the behavior you observe.

Common causes of conflicts: JavaScript errors from other plugins (check the browser console), outdated plugin versions, or plugins that load their own version of jQuery or other libraries.


File Upload

What file types can visitors upload?

The default allowed extensions include: pdf, doc, docx, xls, xlsx, ppt, pptx, odt, ods, odp, txt, rtf, csv, jpg, jpeg, png, gif, webp, svg, heic, zip, rar, 7z, tar, gz. You can customize the allowed extensions per field from the field definition in Contact Forms > Fields. Server-side validation is case-insensitive.

Can I limit the upload file size?

The file size limit is determined by your PHP configuration (upload_max_filesize and post_max_size in php.ini). The maximum file size is displayed below the upload dropzone on the frontend. Contact your hosting provider if you need to change these limits.


Troubleshooting

Drag and drop does not work in the editor

Make sure you are running the latest version of WordPress and that all your plugins are up to date. A common cause is a JavaScript error from another plugin breaking the drag-and-drop library. Open your browser’s developer console (F12) and check for JavaScript errors. If you find errors from another plugin, try deactivating it temporarily to confirm the conflict.

The form does not appear on the page

Check these common causes:


Did not find the answer you were looking for? Visit the support forum on WordPress.org.

Le nostre competenze

Industria
alimentare
edile
editoriale
elettronica

manifatturiera
metalmeccanica
medicale
packaging
Artigianato
ceramica
food
moda
Commercio
distributori
rivenditori
negozi
Turismo
alberghi
agriturismi
strutture ricettive
Professionisti
consulenti
studi associati

Siamo in Romagna, lavoriamo con tutto il mondo

Ravenna
Faenza
Lugo
Bagnacavallo
Castel Bolognese
Ravenna

Emilia Romagna
Forlì
Imola
Cesena
Rimini

Italia
Bologna
Milano
Ferrara
Firenze
Palermo
Roma
Torino

Worldwide
Canada
UK
USA