Submissions

  • JNext lesson
  • KPrevious lesson
  • FSearch lessons
  • EscClear search

When a form has “Save Submissions” enabled (the default), every submission is stored in the wp_cf_submissions database table.

Viewing Submissions

Per-Form Submissions

When editing a form, the Submissions tab lists all submissions for that form. Each row shows the submitted field values, date, and spam status.

All Submissions

Go to Core Forms > All Submissions to see submissions across all forms. This view includes a form name column so you can see which form each submission came from.

Spam Submissions

Go to Core Forms > Spam to see submissions flagged as spam. From here you can review and delete spam, or mark false positives as not spam.

Submission Detail View

Click on a submission to see its full detail view. This shows:

  • All submitted field values
  • Submission date and time
  • IP address
  • User agent
  • Referrer URL
  • Spam status
  • Reply history (if any replies have been sent)
  • A reply form to email the submitter

Editing Submissions

From the submission detail view, administrators can edit the submitted data. Changes are saved with a modified_at timestamp.

Replying to Submissions

The submission detail view includes a reply form. Enter a subject and message, and the reply is sent via email to the submitter. Reply history is stored in the wp_cf_submission_replies table and displayed in the submission detail view.

The “From” email for replies is configurable in Core Forms > Settings > Reply From Email. If not set, the WordPress admin email is used.

Searching Submissions

Both the per-form and all-submissions views support searching. The search queries the JSON data column, so you can search for any submitted value across all fields.

The all-submissions view also supports filtering by:

  • Form (dropdown)
  • Spam status
  • Date range

Bulk Actions

The submission list supports bulk actions:

  • Delete – Permanently remove selected submissions.
  • Mark as Spam – Flag selected submissions as spam.
  • Mark as Not Spam – Remove the spam flag from selected submissions.

Exporting Submissions

The Data Exporter extension adds a CSV export button to the submission list. Click Export to CSV to download all submissions for the current form as a comma-separated values file.

The export includes all submitted field values plus metadata (date, IP address, user agent, referrer URL).

Submission Data Structure

Submissions are stored as JSON in the data column. Each key is a field name and each value is the submitted value:

{
    "name": "John Doe",
    "email": "john@example.com",
    "message": "Hello, I need help.",
    "options": ["option1", "option3"]
}

Array values (from checkbox groups or multi-selects) are stored as JSON arrays.

File uploads are stored as objects with name, size, type, attachment_id, and url properties.

Submission Counts

The admin displays submission counts:

  • In the form list on the overview page
  • As notification badges in the admin menu (via the Notifications extension)
  • On the submissions tab of each form

Programmatic Access

Get submissions for a form

$submissions = cf_get_form_submissions( $form_id, array(
    'offset' => 0,
    'limit'  => 50,
) );

Get a single submission

$submission = cf_get_form_submission( $submission_id );

Get all submissions across forms

$submissions = cf_get_all_submissions( array(
    'form_id'   => 0,        // 0 for all forms
    'search'    => '',
    'is_spam'   => false,     // null for all, true for spam only, false for non-spam
    'date_from' => '2024-01-01',
    'date_to'   => '2024-12-31',
    'offset'    => 0,
    'limit'     => 50,
    'orderby'   => 'submitted_at',
    'order'     => 'DESC',
) );

Count submissions

$count = cf_count_form_submissions( $form_id );
$total = cf_count_all_submissions( array( 'is_spam' => false ) );

Search submissions

$results = cf_search_submissions( 'search term', $form_id );