VS Contact Form
VS Contact Form
Description
About
With this lightweight plugin you can create a contact form.
Main features of the plugin:
- Free and lightweight
- Support for Block Editor and Classic Editor
- Display form with block, shortcode or widget
- Fields for Name, Email, Subject and Message
- Privacy consent checkbox
- Customize your form via the settings page or with attributes
- List form submissions in your dashboard
- Built-in anti-spam features
- Translation ready
- Extensive documentation at WP plugin page
- Active support from developer at WP forum
How to use
After installation add the VS Contact Form block or the shortcode [contact] to a page to display your form.
You can also go to Appearance > Widgets and use the VS Contact Form widget.
Customize your form via the settings page or with attributes.
Settings page
The settings page is located at Settings > VS Contact Form.
Attributes
Settings and labels can be overridden by adding attributes to the block, shortcode, or widget.
This can be useful when having multiple contact forms on your website.
Misc:
- Add custom CSS class to form:
class="your-class-name" - Change email address for sending:
email_to="your-email-address" - Send to multiple email addresses (max 5):
email_to="first-email-address, second-email-address" - Change “From” email header:
from_header="your-email-address" - Change subject in email:
subject="your subject" - Change subject in auto-reply email to sender:
subject_auto_reply="your subject"
Field labels:
- Name:
label_name="your label" - Email:
label_email="your label" - Subject:
label_subject="your label" - Message:
label_message="your label" - Privacy consent:
label_privacy="your label" - Submit:
label_submit="your label"
Field placeholders:
- Name:
placeholder_name="your placeholder" - Email:
placeholder_email="your placeholder" - Subject:
placeholder_subject="your placeholder" - Message:
placeholder_message="your placeholder"
Field error labels:
- Name:
error_name="your label" - Email:
error_email="your label" - Subject:
error_subject="your label" - Sum:
error_sum="your label" - Message:
error_message="your label" - Message – more than 1 link is not allowed:
error_message_has_links="your label" - Message – links are not allowed:
error_message_has_links="your label" - Message – email addresses are not allowed:
error_message_has_email="your label" - Banned words:
error_banned_words="your label" - Privacy consent:
error_privacy="your label"
Messages:
- Displayed when sending succeeds:
thank_you_message="your message" - Displayed in the auto-reply email to sender:
auto_reply_message="your message"
Example: [contact email_to="your-email-address" subject="your subject" label_submit="your label"]
When using the block or the widget, don’t add the main shortcode tag or the brackets.
Example: email_to="your-email-address" subject="your subject" label_submit="your label"
Display form submissions in dashboard
Via the settings page you can activate form submissions being stored and displayed in your dashboard.
After activation go to menu item “Submissions”. Your form submissions will be listed here.
SMTP
SMTP (Simple Mail Transfer Protocol) is an internet standard for sending emails.
By default, WordPress uses the PHP mail() function for sending emails. But when using SMTP there’s less chance your form submissions are being marked as spam.
You must install an additional plugin for this, such as WP mail SMTP.
Cache
If you’re using a caching plugin and want to avoid conflicts with the contact form, exclude your contact page from caching. This can be done via the settings page of most caching plugins.
Have a question?
Please take a look at the FAQ section.
Translation
Translations are not included, but the plugin supports WordPress language packs.
More translations are very welcome!
The translation folder inside this plugin is redundant, but kept for reference.
Credits
Without help and support from the WordPress community I was not able to develop this plugin, so thank you!
Screenshots
Faq
The plugin will use the website language, set in Settings > General.
If translations are not available in the selected language, English will be used.
By default form submissions will be send to the email address set in Settings > General.
You can change this via the settings page or by using an attribute.
I have used a default “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 website domain.
The default “From” email header starts with “wordpress” and ends with your website domain.
You can change this by 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.
The plugin uses minimal styling and therefore also depends on the styling of your theme.
Do not add multiple blocks, shortcodes or widgets to the same page. This might cause a conflict.
But you can display a form by using the block or the shortcode and a form by using the widget.
If you want extra fields you should use another contact form plugin, such as WPForms.
An error message is displayed if plugin was unable to send form. Or nothing seems to happen after pressing submit.
- Install an SMTP plugin and try again
- If you are using an SMTP plugin, check the settings page of that plugin for mistakes
- With most SMTP plugins you can test the mail function by sending a test mail
- Or test the mail function with the Health Check & Troubleshooting plugin
- Disable caching and try again
- Check the built-in anti-spam features, by activating debugging via the settings page
Sometimes form submission fails because your hosting provider has disabled the PHP mail() function. Sending via SMTP will solve this.
For more info about SMTP check the “SMTP” section above.
For more info about caching check the “Cache” section above.
- Check the junk/spam folder of your mailbox
- If you are using attributes, check your attributes for mistakes
- Check the settings page for disabled email sending or a wrong email address
- Install an SMTP plugin and try again
- If you are using an SMTP plugin, check the settings page of that plugin for mistakes
- With most SMTP plugins you can test the mail function by sending a test mail
- Or test the mail function with the Health Check & Troubleshooting plugin
For more info about SMTP check the “SMTP” section above.
Of course, the default WordPress validating, sanitizing and escaping functions are included.
Also included are a sum field, hidden honeypot fields and a hidden time trap.
And you can limit the number of links and email addresses that is allowed in Message field.
If you receive a lot of spam you can choose to ignore form submissions with banned words, links or email addresses.
Sender can still fill out the form and include banned words, links or email addresses. But nothing happens with this form submission. So sender gets the impression form is successfully send and moves on.
You can activate this feature via the settings page.
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:
- Form contains a privacy consent checkbox
- You can disable collection of IP address
- Form submissions are safely stored in database, similar to how the default posts and pages are stored
- You can easily delete form submissions
- You can disable form submissions being stored in datebase
Yes you can! Obviously you cannot use the block, so use the shortcode instead.
The version number won’t give you info about the type of update (major, minor, patch). You should check the changelog to see whether or not the update is a major or minor one.
You like my plugin and want to make a donation? There’s a PayPal donate link at my website. Thank you!
Please open a topic in the WordPress.org support forum for this plugin.
Reviews
Great simple contact form plugin, but ...
By nmrockswp on October 25, 2025
Does what I need it to
By Chris Lovie-Tyler (chrislt) on April 19, 2024
I needed a simple form plugin that didn't come with all the bells and whistles like most of the others. This does what I need. Thanks!
Rarely you find someone so commited to what he puts out
By optimalprime on February 18, 2024
I had a problem with spam lately after years of not getting any really, which in itself is a great result already. I already liked the plugin for its simplicity and clean look, but after experiencing how Guido addressed my questions when we did got spam, I can only say this man is a true caring professional. You feel his intention is to try to make his extension better, being very informative with consistent communication along the way. I wish everyone was like him, would make everything much more fluent. This review is well deserved, It's not many times i write an unasked review, but I feld this time it wouldnt be fair if I didnt. Thanks a lot Guido, again.
I Love It
By Ivcata on October 6, 2023
I just love it.
Excellent Contact Form
By cognaccola on August 12, 2023
Simple to use, activate, drop [contact] in a page. Done
Looks good, works good. Period, what more do you want?
What most people are looking for
By thedoctorcoernel on November 28, 2022
Perfect and great plugin
By Rebel Republik (meszarovits) on July 23, 2022
Ottimo e semplice
By roberto toni on April 17, 2022
Really simple
By Aldoseri on January 10, 2022
Excelente!
By francogas on June 16, 2021
Changelog
Version 17.8
- Minor changes in code
Version 17.7
- Fixed errors flagged by PCP
- Added translation descriptions
- Output escaping for widget
- Minor changes in code
Version 17.6
- Fix: settings page
Version 17.5
- Minor changes in code
Version 17.4
- Added date to form submission
Version 17.3
- Privacy form label now accepts HTML markup
- Now you can, for example, include a link to your privacy policy
- Removed wrong header from main plugin file
Version 17.2
- Minor changes in code
Version 17.1
- Fix: textarea
Version 17.0
- Code improvements
- Improved form validation
- Bumped the “requires PHP” version to 7.4
- Bumped the “Requires at least” version to 6.0
Version 16.9
- Improved anti-spam features
- New: set the minimum time in seconds between page load and form submission
- In previous versions this “time trap” was a static value
- Updated settings page
For all versions please check file changelog.









