1. Home
  2. Knowledge Base
  3. Divi Areas Pro
  4. Snippets
  5. Contact Form 7 – close Popup after submit

Contact Form 7 – close Popup after submit

CF7 offers some JavaScript events that we can hook into. Using those events, we can create a small snippet to automatically close a Popup after a successful contact form submission:

<script>(function ($) {
	DiviArea.addAction('show_area', function (area) {
		area.find('.wpcf7').on('wpcf7submit', function (event) {
			var areaId = $(this).closest('[data-da-area]').data('da-area');

			// This CF7 form is not inside a Divi Area.
			if (!areaId) {
				return;
			}

			// Status "mail_sent" means, that the form submit is complete.
			if ('mail_sent' === event.detail.status) {
				DiviArea.hide(areaId);
			}
		});
	});
})(jQuery);
</script>

→ Open in the Script Generator

Here is another example that will close the Popup 2 seconds after the form submit, so the user has time to see the success message:

<script>(function ($) {
	DiviArea.addAction('show_area', function (area) {
		area.find('.wpcf7').on('wpcf7submit', function (event) {
			var areaId = $(this).closest('[data-da-area]').data('da-area');
			if (!areaId) {
				return;
			}

			if ('mail_sent' === event.detail.status) {
				// Close the Popup after 2 seconds:
				setTimeout(function () {
					DiviArea.hide(areaId);
				}, 2000);
			}
		});
	});
})(jQuery);
</script>

→ Open in the Script Generator

Contact Form 7 DOM events

Currently, CF7 implements the following events that we can hook into:

  • wpcf7invalid — Fires when an Ajax form submission has completed successfully, but mail hasn’t been sent because there are fields with invalid input.
  • wpcf7spam — Fires when an Ajax form submission has completed successfully, but mail hasn’t been sent because a possible spam activity has been detected.
  • wpcf7mailsent — Fires when an Ajax form submission has completed successfully, and mail has been sent.
  • wpcf7mailfailed — Fires when an Ajax form submission has completed successfully, but it has failed in sending mail.
  • wpcf7submit — Fires when an Ajax form submission has completed successfully, regardless of other incidents.Source: https://contactform7.com/dom-events/

Was this article helpful?

Related Articles

Need Support?

Can't find the answer you're looking for?
Get in touch with us