Very Simple Contact Form



This is a very simple responsive translatable contact form.

Form only contains fields for Name, Email, Subject and Message. And a simple captcha (random number).

Use a shortcode to display your form on a page or use the widget.

You can personalize your form via the settingspage or by adding attributes to the shortcode or the widget.

It’s also possible to list form submissions in your dashboard.

How to use

After installation add shortcode [contact] on your page to display the form.

Or go to Appearance > Widgets and add the widget to your sidebar.

By default form submissions will be send to your site’s admin email address (set in Settings > General). It’s also possible to send a confirmation email to sender.


Via Settings > VSCF you can:

  • Keep form submissions and settings when uninstalling plugin
  • Activate the listing of form submissions in your dashboard
  • Activate confirmation email to sender
  • Activate a privacy checkbox on form
  • Disable the collection of IP address
  • Change form labels and messages

Settings and labels can be overwritten when using the relevant (shortcode) attributes below.

Shortcode attributes

  • Change admin email address: [contact email_to="your-email-here"]
  • Send to multiple email addresses: [contact email_to="first-email-here, second-email-here"]
  • Change “From” email header: [contact from_header="your-email-here"]
  • Hide subject field: [contact hide_subject="true"]
  • Change email subject: [contact subject="your subject here"]
  • Activate confirmation email to sender: [contact auto_reply="true"]
  • Scroll back to form location after submit: [contact scroll_to_form="true"]

Field labels:

  • Change name label: [contact label_name="your label here"]
  • Change email label: [contact label_email="your label here"]
  • Change subject label: [contact label_subject="your label here"]
  • Change captcha label: [contact label_captcha="your label here"]
  • Change message label: [contact label_message="your label here"]
  • Change privacy label: [contact label_privacy="your label here"]
  • Change submit label: [contact label_submit="your label here"]

Field error labels:

  • Change name error label: [contact error_name="your label here"]
  • Change email error label: [contact error_email="your label here"]
  • Change subject error label: [contact error_subject="your label here"]
  • Change captcha error label: [contact error_captcha="your label here"]
  • Change message error label: [contact error_message="your label here"]

Form messages:

  • Change sending failed message: [contact message_error="your message here"]
  • Change sending succeeded (“thank you”) message: [contact message_success="your message here"]
  • Change “thank you” message in confirmation email: [contact auto_reply_message="your message here"]

You can also add multiple attributes. Use a single whitespace to separate multiple attributes.

  • Example: [contact email_to="your-email-here" subject="your subject here"]

Widget attributes

The widget supports the same attributes. Enter them without shortcode itself and without brackets.

Example 1:

  • If shortcode attribute is: [contact email_to="your-email-here"]
  • Widget attribute will be: email_to="your-email-here"

Example 2:

  • If shortcode attribute is: [contact email_to="your-email-here" subject="your subject here"]
  • Widget attribute will be: email_to="your-email-here" subject="your subject here"

List form submissions in dashboard

Via Settings > VSCF you can activate the listing of form submissions in your dashboard.

After activation you will notice a new menu item called “Submissions”.

Plugin Contact Form DB is also supported.


SMTP (Simple Mail Transfer Protocol) is an internet standard for sending emails.

WordPress supports the PHP mail() function by default, but when using SMTP there’s less chance your form submissions are being marked as spam.

You should install an additional plugin for this. You could install for example:

Because I’m not the developer of these SMTP plugins, I will not give support. And use them at your own risk.


Please take a look at the FAQ section.


Not included but plugin supports WordPress language packs.

More translations are very welcome!


Without the WordPress codex and help from the WordPress community I was not able to develop this plugin, so: thank you!



  • Very Simple Contact Form (Twenty Seventeen theme).
  • Very Simple Contact Form (Twenty Seventeen theme).
  • Very Simple Contact Form widget (Twenty Seventeen theme).
  • Very Simple Contact Form widget (dashboard).
  • Very Simple Contact Form settingspage (dashboard).
  • Very Simple Contact Form settingspage (dashboard).
  • Very Simple Contact Form settingspage (dashboard).
  • Very Simple Contact Form submissions (dashboard).


Please check Description section for installation info.


About the FAQ

The FAQ applies to the most recent plugin version, as they are regularly updated to include support for newly added or changed plugin features.

How do I set plugin language?

Plugin will use the site language, set in Settings > General.

If plugin isn’t translated into this language, language fallback will be English.

What is the default email subject?

By default the email subject contains the name of your site, followed by the subject that sender has filled in. If subject field is hidden it only contains the name of your site.

You can change this subject using an attribute.

This subject will also be used in the confirmation email to sender.

Why is the “from” email address not from sender?

I have used a default so called “From” email header to avoid form submissions being marked as spam.

Best practice is using a “From” email header (an email address) that ends with your site domain.

That’s why the default “From” email header starts with “wordpress” and ends with your site domain.

You can change the “From” email header using an attribute.

Your reply to sender will use another email header, called “Reply-To”, which is the email address that sender has filled in.

What do you mean with “thank you” message?

A “thank you” message is displayed after submitting the form and in the confirmation email to sender.

It’s the message: Thank you! You will receive a response as soon as possible.

You can change this message via Settings > VSCF or using an attribute.

Can I use multiple shortcodes?

Do not use multiple shortcodes on the same page. This might cause a conflict.

But you can use the shortcode on a page and the widget in your sidebar.

Why does form submission fail?

An error message is displayed if plugin was unable to send form. This might be a server issue.

Your hosting provider might have disabled the PHP mail() function of your server. Ask them for more info about this.

They might advice you to install a SMTP plugin.

Why am I not receiving form submissions?
  • Please also check the junk/spam folder of your mailbox
  • Check installation info above and check shortcode (attributes) for mistakes
  • Install another contact form plugin to determine whether it’s caused by my plugin or something else
  • In case you’re using a SMTP plugin, please check their settingspage for mistakes
Why does the captcha not display properly?

The captcha (random number) uses a php session and cookie to temporary store the number.

Your hosting provider might have disabled the use of sessions. Ask them for more info about this.

Or your browser blocks cookies. You should enable cookies.

Does this plugin has anti-spam features?

Of course, the native WordPress sanitization and escaping functions are included.

It also contains 2 (invisible) honeypot fields and a simple captcha (random number).

Does VSCF meet the conditions of the GDPR?

The General Data Protection Regulation (GDPR) is a regulation in EU law on data protection and privacy for all individuals within the European Union.

I did my best to meet the conditions of the GDPR:

  • You can activate a privacy checkbox on form
  • You can disable the collection of IP address
  • The cookie (used for the captcha) does not store personal data
  • Form submissions are safely stored in database, similar to how the native posts and pages are stored
  • You can easily delete form submissions from database
Why no Semantic versioning?

At time of initial plugin release I wasn’t aware of the Semantic versioning (sequence of three digits).

How can I make a donation?

You like my plugin and you’re willing to make a donation? Nice! There’s a PayPal donate link at my website.

Other question or comment?

Please open a topic in plugin forum.


Not a useful form because of the automated email recipient setup

I found this form very easy to use, but one of the biggest problems for our company is that the form is automatically set to send to the site admin. In many businesses, the site admin is not the person who deals with customer service or website inquiries. This just puts added burden on the site admin to review and forward the form submission.

As later noted by Guido:
There is a workaround to change the email recipient in the short code

However, that is not intuitive, and it is not built into the program as most other contact/form plugins have done. So my review remains at three stars.

Drop-in replacement for resource-heavy Contact Form 7

BRILLIANT plugin. Having confirmed the veracity of claims that Contact Form 7 (CF7) is a BIG resource hog, I replaced it with this – Very Simple Contact Form (VSCF). Not only is VSCF lighter…it’s even SIMPLER than CF7!

I’m using Elementor, btw. Type in ‘very…’ in the Elements search box and the plugin element appears. Simply drag the element over and BAM! You have a contact form.

The new contact form immediately occupied the same area the CF7 one did. Thus, this was a drop-in replacement, with a load off resources. Uninstall that bloated CF7 and use this instead.

I am happy !!

This plugin working together ideally without this plugin – WordPress Easy SMTP.
respect for author. Thank you !!


The form is easy to install and works quite fine. I had a small issue which, perhaps, was due to my own server. The plugin is not cluttered with extra features but it is very flexible, which is a plus. The GDPR compliant privacy checkbox is a plus as well. And, last but not least, Guido (its author) is definitely very kind and prompt in answering. Most suggested!

The best contact form ever 🙂

Simple, fast and good looking contact form, it’s all I need.
In addition, very good support. My request for adding standard bootstrap classes was implemented very quickly. Many thanks!

Read all 29 reviews

Contributors & Developers

“Very Simple Contact Form” is open source software. The following people have contributed to this plugin.


“Very Simple Contact Form” has been translated into 21 locales. Thank you to the translators for their contributions.

Translate “Very Simple Contact Form” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


Version 9.1

  • file vscf-style: removed reset CSS from the #vscf wrapper
  • did this to avoid a conflict with Twenty Nineteen theme
  • added new icon for form submissions in dashboard
  • some textual changes

Version 9.0

  • had to remove the alternative captcha again (introduced in version 8.9)
  • the captcha is currently the only way to avoid resubmitting form upon page refresh
  • the alternative captcha wasn’t able to avoid this
  • have made file structure more clear
  • so added files vscf-page-shortcode and vscf-widget-shortcode
  • these 2 files contain the shortcode for page and widget
  • and file vscf-form now only contains the html form itself
  • removed file vscf-widget-form
  • changed css class “error” and “hide” into “vscf-error” and “vscf-hide”
  • added prefix to both classes to avoid unexpected css being added from your theme or other plugins
  • fix in text domain
  • removed unnecessary notifications from changelog (such as “updated readme file” and “updated FAQ”)

Version 8.9

  • added files vscf-validate and vscf-submission
  • relocated validation and sending & saving from shortcode files to these 2 new files
  • new setting: generate random number without using a PHP session
  • this is less secure. use this if default captcha is not working properly
  • added tabbed navigation on settingspage
  • some textual changes (thanks Tom)

Version 8.8

  • fix: captcha in file vscf-widget-form

Version 8.7

  • request: added (shortcode) attributes for all field labels and form messages again
  • using an attribute will always overwrite it’s corresponding settingspage field
  • added file vscf-labels (relocated labels from shortcode files to this new file)
  • added stripslashes() and htmlspecialchars_decode() filter for form and form submission
  • now unexpected backslashes are removed when using single or double quote
  • and certain HTML entities are converted to normal characters
  • changed required version to 4.7 because of new filter sanitize_textarea_field()

For all versions please check file changelog.