Contact Form 7 (also known as CF7) is one of the oldest plugin in the market. Just like the name suggests, it is used to create a contact form.
In this article we will discuss why this plugin is still the king of Contact Form.
1. Dead Simple
By far the most lightweight and fastest contact plugin. The builder pictured above is basically just textarea
but it does allow more flexibility such as adding HTML wrapper.
It’s feature is also just enough to cover most use cases. One missing important one is a way to save submission which can be done with Flamingo, a plugin made by the same developer.
2. Developer Friendly
You can hook to almost any part of CF7. You can add complex validation, create dynamic default value, do something before/after submission, etc.
Let’s say we want visitor to be able to create a new post. We created a CF7 form with Title and Content field. Then we add the snippet below which will run after submission:
add_filter( 'wpcf7_before_send_mail', 'create_post_after_submission');
function create_post_after_submission( $form ) {
$sub = WPCF7_Submission::get_instance();
$data = $sub->get_posted_data();
// Check if correct form. You can get the FORM ID from the shortcode.
if( $data['_wpcf7'] == 1523 ) {
$post_data = [
'post_title' => $data['title'],
'post_content' => $data['content'],
'post_type' => 'post',
'post_status' => 'publish',
];
wp_insert_post( $post_data );
}
}
For more hooks, check out CF7 documentation.
One other thing that is often under-appreciated is how CF7 not creating new table in database. That is not the case with other popular contact plugins.
3. Totally Free
No paid add-on, no advertisement, and no annoying donate button. Just perfect. Despite being free, the developer is active in fixing bugs and adding new features.
4. Reliable
I have been using CF7 for almost 6 years and I never encounter any bug. It’s one of the few plugins that I always feel safe to keep up-to-date.
The Cons
- Slight learning curve – But after you’re get used to it, you will find CF7 faster to setup.
- Prone to mistake – You need to manually check if everything is in order, including the email. If your client needs to constantly change the form, avoid using CF7.
- Lacks 3rd party integration – If you need the form to connect a 3rd party service, try googling it. If not listed in Page 1, you need to create custom integration (use the same filter as snippet above).
Conclusion
Contact Form 7 is a simple contact form plugin that should work for majority of websites. It is lightweight, developer friendly, FREE, and reliable.
So far, the only time I don’t use CF7 is when a client needs to constantly create new form. In that case, it’s safer to use more advanced plugin like NinjaForm or GravityForm.