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 );