New: ShopBar Theme — faster, lighter, refreshed

See what's new
WordPress

How to Know When a Form Was Submitted in WordPress

Editor Team

Spiracle Themes

6 min read

A form submission can land in three places: the form plugin’s entries screen, an email in your inbox, or somewhere else entirely through a webhook. Most “the form isn’t working” reports are actually one of those three going quiet while the other two keep working — and knowing which one you are looking at is the whole diagnosis.

This guide covers where submissions actually go per plugin, the sixty-second test that proves a form works, and the hooks that give you a signal without relying on email at all.

Where submissions go, by plugin

Plugin Stored entries Email notification Notes
WPForms Yes, in Pro (WPForms → Entries) Yes The free version sends email but does not keep a searchable entry record
Contact Form 7 No, by default Yes Storage needs the Flamingo add-on
Fluent Forms Yes, exportable to CSV Yes Entries available in the free version
Gravity Forms Yes (Forms → Entries) Yes Per-form notification routing

Contact Form 7 is the one people get bitten by. Its own plugin directory listing describes Flamingo as a “message storage plugin originally created for Contact Form 7, which doesn’t store submitted messages” — so if you are running CF7 alone, the email is the record. Lose the email and you have lost the submission.

The sixty-second test that proves a form works

  1. Open the form page in a private window, not your logged-in browser. Cached pages and logged-in-only views are why forms “work for me”.
  2. Submit with a real address you control — not [email protected], which spam filters treat as noise.
  3. Watch what happens on screen: a success message, a redirect to a thank-you page, or an unchanged form. A form that reloads with empty fields and no message has usually failed.
  4. Check the entries screen (if your plugin has one) before touching anything else.
  5. Check the inbox and the spam folder of the address configured in the notification.
  6. If mail logging is available — WP Mail SMTP has an email log — read the entry. It tells you whether WordPress handed the message off or the mailer errored.

That sequence separates the three failure modes cleanly: no entry and no email means the form never processed; an entry with no email means delivery failed; an email with no entry means the plugin does not store submissions.

It submitted, but no email arrived

Almost always one of six things:

Cause What you see Fix
PHP mail() is unreliable or disabled Nothing in any inbox, no error anywhere Install an SMTP plugin and send through a real mailbox
From address on a different domain Gmail/Outlook silently drops it; SPF and DKIM fail Use an address on your own domain, authenticated in SMTP
Recipient’s spam filter Email exists, in junk Add the sender to contacts, then fix DMARC alignment
Host mail limit hit Works, then stops after N messages/day Move to a transactional provider
Notification disabled or misaddressed Entries exist, no mail Check the plugin’s notification settings per form
Form uses AJAX and the request never completes Spinner, then nothing Look at the browser console for a failed request or a 403

Real-time signal without email

Email is a weak alerting channel: it fails quietly and it is easy to stop reading. If you want to know a submission happened, hook the submission itself. Every major plugin fires an action or webhook at the end of processing:

// WPForms
add_action( 'wpforms_process_complete',
    function ( $fields, $entry, $form ) {
        // $entry has the submitted values
    }, 10, 3 );

// Contact Form 7
add_action( 'wpcf7_mail_sent',
    function ( $contact_form ) {
        // fires after the mail is sent
    } );

// Gravity Forms
add_action( 'gform_after_submission',
    function ( $entry, $form ) {
        // $entry['id'], $entry[1], ...
    }, 10, 2 );

Point that at a Slack webhook, a Google Sheet via Apps Script, or your CRM, and the notification stops depending on a mail server you do not control. For most sites a single webhook to Slack replaces the whole “did the form fire?” anxiety — if the channel is quiet, the form is quiet.

Get a weekly digest instead of per-submission email

If the problem is not missing mail but the volume of it, WPForms now emails a weekly summary that opens with entry, view and spam counts compared to the previous week, then breaks the numbers down per form. It is a useful second signal: a form that has “gone quiet” is called out explicitly. Most form plugins have some equivalent, or you can build one with a scheduled WP-Cron job that counts entries.

What “no submissions at all” usually means

When even a test submission produces nothing — no entry, no email, no success message — check these before rewriting the form:

  • The form is not on the page anymore. A cache layer or a page rebuild can drop the shortcode block; the page still loads, the form is simply absent.
  • A JavaScript error. Open the console on the live page. One failed script from another plugin stops the form handler from binding.
  • Spam protection rejecting you. reCAPTCHA or hCaptcha misconfigured will refuse legitimate submissions, often with no visible message.
  • A CSS-hidden submit button. It happens after theme updates more often than anyone admits — the form renders, the button is behind an overlay.
  • The form posts to a URL that 403s. Security rules blocking admin-ajax.php look exactly like a broken form.

Deciding which signal to trust

For a business site, the entry record is the source of truth and email is the alert. Configure both: keep entries on so nothing is ever lost to a mail failure, and route notifications to an address someone actually monitors. If the alert is what you are trying to fix, setting up form notifications walks through the per-plugin configuration and the delivery fixes.

Forms are also the most common place a WordPress site silently breaks after an update, which is why “does the contact form still work?” is on the weekly checklist of our $99 care plan.

FAQ

Does WordPress store form submissions by default?

No. WordPress has no built-in form system. Whether submissions are stored depends entirely on the form plugin — WPForms Pro, Fluent Forms and Gravity Forms store entries; Contact Form 7 does not unless you add Flamingo.

How do I check if a form was submitted without logging in?

You cannot, from the site. Use a webhook to Slack or a Google Sheet, or have notifications sent to a shared inbox. Both give you visibility without an admin login.

Why did my form stop sending emails after an update?

Usually the notification settings survived but the mail path broke — a changed From address, a new security rule, or an updated SMTP plugin that needs re-authorising. Check the email log first; it is faster than guessing.

Written by

Editor Team

Content Specialist at Spiracle Themes

We are a team of WordPress enthusiasts passionate about creating beautiful themes and helping users build better websites.

Leave a Reply

Your email address will not be published. Required fields are marked *