BACK TO DIRECTORY

Defer Forms for Contact Form 7

by Defer Studio

0.0
(0 ratings)

Defer Forms for Contact Form 7 turns Contact Form 7 into a modern visual form builder while keeping CF7’s reliability untouched. Drag-and-drop fields, build multi-step flows, capture submissions in a clean dashboard, and apply conditional logic — all without breaking any existing form.

Highlights

  • Visual drag-and-drop builder (React + dnd-kit)
  • Unlimited multi-step forms with progress bar
  • Submissions database with search, filter, and CSV export
  • Mark an entry replied or done, and answer it from the entry itself
  • Attachment storage — Contact Form 7 discards uploads; these are kept
  • Visual conditional logic (AND/OR rule builder)
  • Grid layout (1–4 columns, responsive)
  • Redirect after submit, to a page or a URL
  • Extra fields: star rating, country, password, dynamic text, product, quiz, character count
  • Import / export — move forms between sites as one JSON file
  • Revisions — the last ten versions of a form, with one-click rollback
  • Styling controls (colors, typography, spacing), plus a CSS class of your own per form
  • Spam protection (honeypot, time-trap, duplicate check)
  • Privacy: submissions join WordPress’s own export and erase tools
  • 20+ ready-made templates
  • Telegram, Slack and Discord: every submission posted into a chat or channel as it arrives
  • A webhook: every submission posted as JSON to an address of your own, which is how Zapier, Make and n8n reach the rest of what you use

The Features screen lists everything this plugin does, and nothing it does not.

Documentation

Full documentation — every feature, how each one works, and the developer hooks — is at https://rupashdas.github.io/defer-forms-for-contact-form-7/ and is linked from every screen’s Help tab.

For developers

Submissions can be filtered before they are stored and hooked once they are — enough to keep a form out of the table, redact a field, or forward every entry somewhere of your own. Every hook is listed under “Hooks” below.

Defer Forms extends Contact Form 7 — never replaces it, never breaks existing forms.

Hooks

Contact Form 7’s own hooks are untouched — wpcf7_before_send_mail, wpcf7_mail_components and the rest fire exactly as they always did. These are the ones this plugin adds.

A submission passes through the first four in this order: whether to store it, what to store, where to announce it, and what it became.

apply_filters( 'deferforms_store_submission', $store, $contact_form, $status )

Return false to keep an entry out of the table entirely. The mail is still sent; nothing is written. $status is either ‘submitted’ or ‘spam’.

apply_filters( 'deferforms_submission_data', $data, $contact_form, $status )

The fields on their way into the table. Redact a value, drop a field, or add one of your own. Keys beginning with an underscore are the plugin’s own bookkeeping and are never shown as answers.

do_action( 'deferforms_notify', $entry )

One submission, described once, for sending anywhere the Notifications screen does not already reach. $entry carries entry_id, form_id, title, when, at (ISO 8601), fields and link. Submitted entries only — spam never fires this.

do_action( 'deferforms_submission_stored', $id, $data, $contact_form, $status )

The entry exists and is complete: uploads are kept and $id can be linked to. Spam fires too, with $status saying so. This is where somebody else’s code runs, so it is last.

apply_filters( 'deferforms_capability', 'manage_options' )

The capability the admin screens and the REST routes require.

apply_filters( 'deferforms_attachment_limit', $bytes )

The ceiling on kept uploads across the site. Past it, submissions and their mail arrive as normal but files are no longer copied to the server.

do_action( 'deferforms_submissions_deleted', $rows )

Entries that have just been removed, with their data, so anything mirroring them elsewhere can keep up.

External services

This plugin can forward a submission to a chat service, or to an address of your own. All four destinations are off by default: nothing is sent until you enter your own credentials under Submissions Notifications and switch that destination on.

When a destination is switched on, each submission is posted to it at the moment the form is submitted. The message contains the form’s title, the time of the submission, every field name and the value the visitor entered, and a link back to the entry in your WordPress admin (which includes your site’s address). Submissions caught as spam are never sent. The “Send a test message” button on the Notifications screen posts one message containing no visitor data.

Telegram — messages are sent to the Telegram Bot API at https://api.telegram.org, using the bot token and chat ID you supply.
Terms of Service: https://telegram.org/tos — Privacy Policy: https://telegram.org/privacy

Slack — messages are sent to the Slack incoming webhook URL you supply, at https://hooks.slack.com.
Terms of Service: https://slack.com/terms-of-service — Privacy Policy: https://slack.com/trust/privacy/privacy-policy

Discord — messages are sent to the Discord webhook URL you supply, at https://discord.com.
Terms of Service: https://discord.com/terms — Privacy Policy: https://discord.com/privacy

Webhook — this one has no fixed service behind it. The submission is posted, as JSON, to whatever address you enter in the Webhook tab, and to no other. Nothing is sent anywhere until you enter one and switch it on, and the plugin neither chooses that address nor contacts it for any other reason. Whose service it belongs to, and what their terms and privacy policy are, is therefore yours to decide before you paste it in — commonly it is an automation service such as Zapier, Make or n8n, or a server of your own.

Source code

The admin screens are React, compiled with Vite into build/. The unminified source of every one of those files ships with the plugin, in ui/, alongside the build configuration (package.json, vite.config.js, tailwind.config.js, postcss.config.js). Run npm install && npm run build in the plugin folder to rebuild build/ from it.

The third-party library bundled under assets/vendor/flatpickr/ is flatpickr, MIT licensed.

Screenshots

The visual builder — every field in the form, in the order the visitor meets them.

The visual builder — every field in the form, in the order the visitor meets them.

Submissions — every entry in one list, with search, filters and CSV export.

Submissions — every entry in one list, with search, filters and CSV export.

An entry opened, with the reply box.

An entry opened, with the reply box.

A multi-step form as the visitor sees it, with its progress indicator.

A multi-step form as the visitor sees it, with its progress indicator.

Conditional logic — an AND/OR rule builder on any field.

Conditional logic — an AND/OR rule builder on any field.

Styling controls, shared by the front end and the builder preview.

Styling controls, shared by the front end and the builder preview.

The template library — 20+ ready-made forms.

The template library — 20+ ready-made forms.

Notifications — Telegram, Slack, Discord and a webhook.

Notifications — Telegram, Slack, Discord and a webhook.

Plugin Details

Active Installs
0
Total Downloads
52
Version
2.7.1
Requires WP
6.5
Requires PHP
8.0
Tested Up To
7.1
Added
2026-09-15
Last Updated
2026-09-15 7:05pm GMT

Ratings

5
0
4
0
3
0
2
0
1
0