Home > Blog > Contact forms for WordPress

Contact forms for WordPress

Contact forms on websites are not just a substitution for communication through classical email; they can also be used for building lists of email addresses, sending responses that can be massively processed and many other things. In this article, we will present some of the favourite WordPress contact form plugins.

Ninja Forms

Ninja Forms is a free plugin for creating forms that can contain text fields, checkboxes, dropdown menus, dates, ratings, fields for personal information, and simple support for enquiries on products. You can create your layout with drag-and-drop operations from the side bar. A completed contact form can be sent to your email address or it can also be saved in a database. Additional settings like restrictions, instantaneous calculations and redirections are also possible. You can protect yourself from unwanted entries using a question-and-answer system or reCaptcha. Plugins available in the store also enable you to add additional functionalities to Ninja Forms.

Simple entry of a contact form for WordPress in Ninja forms

Formidable Forms Lite

The free version of Formidable Forms offers creating contact forms that contain text fields, checkboxes, dropdown menus, email entries and URL address entries. Elements of forms and their layout can be managed by dragging and dropping them from the side bar. Every created form can be adjusted in detail and the correctly completed forms are sent to your email address and saved in a database. There is also a built-in protection from unwanted spam mail in form of reCaptcha.

Contact Form 7

Contact Form 7 is one of the oldest and most commonly used plugins for WordPress contact forms. The numerous available fields can be additionally expanded through various plugins available in the store. Visitors can also add attachments to the form, which can also be limited. Using another plugin, you can also save entries to a database that can later be exported into various file types. Creating new forms is more demanding, but the plugin is very well documented on its official website. This plugin also supports protection against unwanted email using a system for blocking unwanted comments, hidden fields or reCaptche.


What about saving entries on the server?

Processing specific information and email addresses in the received emails can be very difficult and time-consuming, which is why one would want this information to be saved in a tabular form that can be exported or processed using different programs. Some plugins mentioned above have this function integrated in their core, while others require additional plugins for intercepting entries. One of the most popular plugins in this context is Contact Form 7 to Database Extension that can (despite its name) intercept data from almost fifteen different contact form plugins. With this plugin, we can also save attachments, export data to different file types (csv, xsl, ods, html, etc.), and we can generate special codes for contact forms on websites using an interactive builder program.

Currently, the installation is not performed through the central plugin store, instead you have to download a zip file and upload it using the interface for uploading plugins. If you want that the plugin is updated automatically, you have to install an additional plugin: GitHub Updater.

Sending forms does not work?

You created and correctly set up a contact form, but your website does not send it. The reason for this may be that your hosting provider disabled the mail() function, because incorrect use of this function may cause a server to be blacklisted for sending unwanted email. You can solve this problem by installing one of the plugins that support sending email via SMTP (e.g. Easy WP SMTP). With this plugin, you can then use a built-in SMTP email client or you can simply send email through an external email provider (Gmail, Outlook, etc.). Because sending email through an external provider requires you to enter your password, it is recommended that you create a separate account for all email coming from the server.