We'll create fresh WordPress site with Essential Form – The lightest plugin for contact forms, ultra lightweight and no spam installed. You have 20 minutes to test the plugin after that site we'll be deleted.
Use the shortcode [essential_form] where you want a contact form with the fields: name, email, message, and agreement checkbox.
Essential Form has a very powerful inbuilt anti-spam system that will block all the robots. It will not be possible for robots to send you spam. Only humans will be able to do it manually.
Most of the time, in your contact form you just need the fields name, email, message, and an agreement checkbox. If you need more, this plugin is not for you. In that case install a Contact Form plugin like Contact Form 7.
Essential Form adds no HTTP requests. It consumes zero. When we say it’s the lightest contact form we are not joking at all.
The entire zip of the plugin is 14 kB. On the page where you add the shortcode it inlines a very tiny script of pure Vanilla JavaScript that is around 1 kilobyte. On the pages where you have no forms, of course, it doesn’t exist.
No jQuery, no libraries, nothing of this kind of bloated stuff.
The anti-spam system runs behind the scenes in a very clever way without the need for any annoying captcha or other similar systems which some times even fail.
Just to give you an idea of the security level of this plugin, the name of the Ajax action that manages the sending of the email is something like essential_form_fbe52b696, where the last part is different on every website.
A robot will never be able to guess the names of the functions that are involved during the process.
Morover, the submission is based on a random token that is always different at each form submission, and 20 random keys which are unique for every website.
All the anti-spam system works behind the scenes without disturbing the users, and most of all, it works.
If assigned, the shortcode will look like [essential_form label_emal=”Your email” lable_message=”Your message” button_text=”Send” agreement_text=”You agree with our privacy policy” success_message=”Thank you for your message!”]
If you don’t assign the parameters of the shortcode, the plugin will take the default settings.
You can also customize the contact forms throught the filter hook ‘essential_form_settings’.
Here an example.
add_filter( 'essential_form_settings',function( $options ){
return array(
'email_from' => '[email protected]',
'email_to' => '[email protected]',
'email_subject' => sprintf( esc_html__( 'Message from %s','your-domain' ),get_bloginfo( 'name' ) ),
'label_name' => __( 'Name','your-domain' ),
'label_email' => __( 'Email','your-domain' ),
'label_message' => __( 'Message','your-domain' ),
'button_text' => __( 'Send','your-domain' ),
'agreement_text' => __( 'By submitting this form I agree with the privacy policy','your-domain' ),
'success_message' => __( 'Form submitted successfully! Thank you for your message!','your-domain' ),
'name_missing_error' => __( 'Name is a required field!','your-domain' ),
'email_missing_error' => __( 'Email is a required field!','your-domain' ),
'email_not_valid_error' => __( 'Email not valid!','your-domain' ),
'message_missing_error' => __( 'Message is a required field!','your-domain' ),
'message_too_long_error' => __( 'This message is too long! Please, write not more than 50000 characters.','your-domain' ),
'missing_agreement_error' => __( 'You have to agree with our privacy policy to submit the form.','your-domain' )
);
} );
If you need to do a custom action after the sending of the email, you can use the action hook ‘essential_form_after_sending’.
Here an example.
add_action( 'essential_form_after_sending',function( $name,$email,$message,$post_id ){
//$name is the name of the user who submitted the contant form
//$message is the message which is sent through the contact form
//$post_id is the ID of the page where is included the contact form
//Your code here
},10,4 );
If you need to customize the message that is included in the email, use the filter hook ‘essential_form_message’.
Here you have an example.
add_filter('essential_form_message',function( $message,$name,$email,$post_id ){
if( isset( $_SERVER['REMOTE_ADDR'] ) ){
$message .= '<p>IP: '.sanitize_text_field( $_SERVER['REMOTE_ADDR'] ).'</p>';
}
return $message;
},10,4 );
If you need to customize the agreement text, use the filter hook ‘essential_form_agreement_text’.
Here you have an example.
add_filter( 'essential_form_agreement_text',function( $text ){
return 'By submitting this form I agree with the <a href="https://yourdomain.com/privacy-policy/">Privacy Policy</a>';
} );
The limits of Essential Form are many, but they are what make this plugin the best if you need a ultra-lightweight contact form with just name, email, comment, and privacy agreement.
If you need more, you can always install more complete but also heavier contact forms like:
Contact Form 7
WPForms
Forminator
Formidable Forms
Ninja Forms
and many other amazing plugins for contact forms.
By using Freesoul Deactivate Plugins to clean up all the other plugins, the form submission will be faster and without any conflict with third plugins.
You can see Essential Form in action on my blog post The Lightest Contact Form Plugin Ever
You don’t need any demo for the backend, because there are no settings for this plugin. Just use the shortcode [essential_form] where you want to add the form, and customized as mentioned in the description.