Title: Echozat Leads Capture
Author: Echozat
Published: <strong>June 19, 2026</strong>
Last modified: June 19, 2026

---

Search plugins

![](https://ps.w.org/echozat-leads-capture/assets/banner-772x250.png?rev=3578578)

![](https://ps.w.org/echozat-leads-capture/assets/icon-128x128.png?rev=3578578)

# Echozat Leads Capture

 By [Echozat](https://profiles.wordpress.org/echozat/)

[Download](https://downloads.wordpress.org/plugin/echozat-leads-capture.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/echozat-leads-capture/#description)
 * [Reviews](https://wordpress.org/plugins/echozat-leads-capture/#reviews)
 *  [Installation](https://wordpress.org/plugins/echozat-leads-capture/#installation)
 * [Development](https://wordpress.org/plugins/echozat-leads-capture/#developers)

 [Support](https://wordpress.org/support/plugin/echozat-leads-capture/)

## Description

Echozat Leads Capture is a lightweight form builder for WordPress. Administrators
create forms using an intuitive shortcode syntax, embed them on any page or post
with `[echozat_leads_capture id="<hash>"]`, and view or export the collected submissions
from a dedicated admin section.

**Key features:**

 * **Visual shortcode editor** — click toolbar buttons to insert pre-built field
   shortcodes at the cursor position; no typing required.
 * **Supported field types** — Text, Email, URL, Tel, Number, Date, Textarea, Dropdown(
   select), Checkboxes, Radio buttons, Acceptance (terms checkbox), Math captcha,
   Google reCAPTCHA v2, and Submit button.
 * **Required fields** — append `*` to any field type (e.g. `[email* your-email]`)
   to make it required.
 * **Field attribute options** — pass inline `key:value` options inside any field
   shortcode to control HTML attributes: `placeholder`, `autocomplete`, `maxlength`,`
   minlength`, `pattern`, `min`, `max`, `step`, `rows`, and `cols`. Example: `[text
   your-name placeholder:Your Name maxlength:100]`.
 * **Per-form mail notifications** — configure To/From/Subject/Body with dynamic
   placeholders: `[field-name]`, `[form-title]`, `[form-id]`, `[submission-id]`,`[
   submission-date]`, `[site-name]`, and `[site-url]`.
 * **Per-form messages** — independently override success, error, validation error,
   spam, captcha error, file upload error, and already-submitted messages per form.
 * **Per-form Google reCAPTCHA v2** — store site key and secret key at the form 
   level.
 * **Submission management** — paginated response list per form with IP address,
   user agent, timestamp, and all field values as columns; inline AJAX response 
   detail view; cross-form “All Responses” listing with per-form filtering.
 * **Submission analytics** — the form detail page shows total submissions, submissions
   this month, submissions this week, and a 30-day daily submissions chart.
 * **CSV export** — download all responses for a form as a CSV file.
 * **Form duplication** — clone any existing form (copies all settings; responses
   are not copied) with a single click.
 * **Admin search** — search forms by title; search responses by field value, IP
   address, or date.
 * **Global SMTP settings** — route all `wp_mail` calls through a custom SMTP server(
   host, port, encryption, authentication).
 * **Spam protection** — honeypot field (silently discards bot submissions), IP-
   based rate limiting (5 submissions per minute by default), and duplicate-submission
   guard (same IP + data within 10 seconds).
 * **Security** — nonce verification on every admin and frontend action; all database
   queries use `$wpdb->prepare()`; all output is escaped.
 * **Clean uninstall** — activation creates two custom tables; uninstall drops them
   and removes all plugin options.

### Source Code

The complete, human-readable (uncompiled) source for this plugin’s JavaScript
 and
CSS is included in the plugin package, in the `assets/` directory:

 * `assets/admin/js/`, `assets/public/js/` — source JavaScript
 * `assets/admin/scss/`, `assets/admin/css/`, `assets/public/scss/` — source CSS

### External Services

This plugin optionally integrates with **Google reCAPTCHA v2** to provide bot and
spam protection on frontend forms. This feature is entirely opt-in: reCAPTCHA is
only active on a specific form when an administrator explicitly enters a Site Key
and Secret Key in that form’s settings and adds the `[recaptcha]` shortcode to the
form content.

**What data is sent and when:**

 * **Visitor’s browser  Google** — When a page containing a form with reCAPTCHA 
   enabled is loaded, the visitor’s browser loads the reCAPTCHA widget script directly
   from `https://www.google.com/recaptcha/api.js`. Google may collect standard browser
   information (IP address, browser type, cookies, etc.) as part of rendering and
   solving the challenge.
 * **Your server  Google** — When a visitor submits a form that has reCAPTCHA enabled,
   this plugin sends the reCAPTCHA response token and the visitor’s IP address to`
   https://www.google.com/recaptcha/api/siteverify` to verify that the challenge
   was solved correctly. No other form field data is included in this server-side
   request.

Both of the above requests only occur when reCAPTCHA is enabled on a specific form
and a visitor is interacting with that form.

**Service provider:** Google LLC

 * Terms of Service: https://policies.google.com/terms
 * Privacy Policy: https://policies.google.com/privacy
 * reCAPTCHA-specific terms: https://cloud.google.com/recaptcha/docs/faq

If you do not wish to use Google reCAPTCHA, simply do not configure a Site Key /
Secret Key in Form Settings and omit the `[recaptcha]` shortcode from your form 
content. The plugin functions fully without it; alternative spam protection (honeypot
field, IP-based rate limiting, math captcha) remains active regardless.

### Extensibility

The plugin exposes the following actions and filters for external code:

**Actions:**

 * `echoleadcap_after_submission` — fires after a response row is inserted; receives`(
   $response_id, $form_id, $data)`.
 * `echoleadcap_after_save_form` — fires after a form is created or updated; receives`(
   $form_id, $row, 'create'|'update')`.
 * `echoleadcap_after_delete_form` — fires after a form is deleted; receives `($
   form_id)`.

**Filters:**

 * `echoleadcap_before_save_form` — mutate form data before insert/update; receives`(
   $data, $form_id)`.
 * `echoleadcap_leads_trust_proxy_headers` — return `true` to trust the `X-Forwarded-
   For` header for client IP detection (off by default).

## Screenshots

[⌊Plugin dashboard — welcome screen with quick links to create a form, view all 
forms, and access settings.⌉⌊Plugin dashboard — welcome screen with quick links 
to create a form, view all forms, and access settings.⌉[

Plugin dashboard — welcome screen with quick links to create a form, view all forms,
and access settings.

[⌊All Forms — paginated listing of every form with title, embed shortcode, response
count, and action links.⌉⌊All Forms — paginated listing of every form with title,
embed shortcode, response count, and action links.⌉[

All Forms — paginated listing of every form with title, embed shortcode, response
count, and action links.

[⌊New Form — shortcode editor with the field-type toolbar for building a form without
typing shortcodes by hand.⌉⌊New Form — shortcode editor with the field-type toolbar
for building a form without typing shortcodes by hand.⌉[

New Form — shortcode editor with the field-type toolbar for building a form without
typing shortcodes by hand.

[⌊All Responses — cross-form response listing with per-form filtering, search, and
pagination.⌉⌊All Responses — cross-form response listing with per-form filtering,
search, and pagination.⌉[

All Responses — cross-form response listing with per-form filtering, search, and
pagination.

[⌊Plugin Settings — global SMTP configuration for routing all outgoing mail through
a custom mail server.⌉⌊Plugin Settings — global SMTP configuration for routing all
outgoing mail through a custom mail server.⌉[

Plugin Settings — global SMTP configuration for routing all outgoing mail through
a custom mail server.

[⌊Form detail — shortcode, creation date, response totals (all-time, monthly, weekly),
30-day chart, and action links.⌉⌊Form detail — shortcode, creation date, response
totals (all-time, monthly, weekly), 30-day chart, and action links.⌉[

Form detail — shortcode, creation date, response totals (all-time, monthly, weekly),
30-day chart, and action links.

[⌊Form Responses — paginated submissions table for a single form showing IP address,
date, and all field values.⌉⌊Form Responses — paginated submissions table for a 
single form showing IP address, date, and all field values.⌉[

Form Responses — paginated submissions table for a single form showing IP address,
date, and all field values.

[⌊Form Settings: Mail — per-form notification settings with To, From, Subject, and
Body fields and dynamic placeholders.⌉⌊Form Settings: Mail — per-form notification
settings with To, From, Subject, and Body fields and dynamic placeholders.⌉[

Form Settings: Mail — per-form notification settings with To, From, Subject, and
Body fields and dynamic placeholders.

[⌊Form Settings: Messages — per-form override for every user-facing message (success,
error, validation, spam, etc.).⌉⌊Form Settings: Messages — per-form override for
every user-facing message (success, error, validation, spam, etc.).⌉[

Form Settings: Messages — per-form override for every user-facing message (success,
error, validation, spam, etc.).

[⌊Form Settings: reCAPTCHA — per-form Google reCAPTCHA v2 Site Key and Secret Key
configuration.⌉⌊Form Settings: reCAPTCHA — per-form Google reCAPTCHA v2 Site Key
and Secret Key configuration.⌉[

Form Settings: reCAPTCHA — per-form Google reCAPTCHA v2 Site Key and Secret Key 
configuration.

## Installation

 1. Upload the `echozat-leads-capture` folder to the `/wp-content/plugins/` directory,
    or install the plugin through the **Plugins > Add New** screen in WordPress.
 2. Activate the plugin through the **Plugins** screen in WordPress.
 3. Navigate to **Echozat Leads** in the admin sidebar to create your first form.
 4. Click **Add New Form**, use the field-type toolbar to build your form, and click**
    Save**.
 5. Copy the generated shortcode (e.g. `[echozat_leads_capture id="abc123xyz"]`) and
    paste it into any page, post, or widget.

## FAQ

### How do I create a form?

Go to **Echozat Leads > Add New Form** in the WordPress admin. Give your form a 
title, then click the field-type buttons (Text, Email, Textarea, etc.) to insert
shortcodes into the editor. Add any surrounding HTML labels or copy as needed, then
click **Save**. A ready-to-use embed shortcode will appear on the form page.

### How do I embed a form on a page?

After saving a form, copy the shortcode displayed on the form detail page (e.g. `[
echozat_leads_capture id="abc123xyz"]`) and paste it into any page, post, block,
or widget where shortcodes are supported.

### How do I make a field required?

Append an asterisk (`*`) directly after the field type tag, with no space. For example:

    ```
    [text* your-name]
    [email* your-email]
    ```

Fields without an asterisk are optional.

### Can I use multiple forms on the same page?

Yes. Each form is identified by a unique hash, and all field IDs and name attributes
are prefixed with that hash, so multiple forms on the same page will not conflict.

### How do I add Google reCAPTCHA to a form?

Open the form via **Echozat Leads > All Forms** and click **Form Settings**. On 
the **reCAPTCHA** tab enter your Google reCAPTCHA v2 Site Key and Secret Key, then
save. Add the `[recaptcha]` shortcode inside your form content where you want the
widget to appear.

### How do I receive email notifications on new submissions?

Open the form via **Echozat Leads > All Forms** and click **Form Settings**. On 
the **Mail** tab, enable mail notifications and fill in the To, From, Subject, and
Body fields. The following placeholders are available in the subject and body:

 * `[field-name]` — replaced with the submitted value of any field whose name matches
 * `[form-title]` — the form’s title
 * `[form-id]` — the internal form ID
 * `[submission-id]` — the response row ID
 * `[submission-date]` — date and time of submission formatted using your WordPress
   date/time settings
 * `[site-name]` — your site name (from WordPress settings)
 * `[site-url]` — your site’s home URL

### Where can I configure SMTP for outgoing email?

Go to **Echozat Leads > Settings** and open the **SMTP** tab. Enter your SMTP host,
port, encryption type, and credentials. All `wp_mail` calls from WordPress will 
be routed through this server when a host is configured.

### How do I export responses to CSV?

Open the responses list for a form (**Echozat Leads > All Forms > View Responses**)
and click the **Export CSV** button at the top of the page.

### How do I duplicate a form?

On the **All Forms** list, click the **Duplicate** action link next to any form.
A copy of the form is created with all settings intact; existing responses are not
copied.

### Is the form compatible with page caching plugins?

The form is submitted via a standard HTML POST, so cached pages work normally. The
nonce token embedded in the form will expire after the default WordPress nonce lifetime(
24 hours). For very long cache TTLs, consider configuring your caching plugin to
exclude pages that contain the form shortcode, or regenerate nonces via AJAX.

### Does the plugin delete my data when deactivated?

No. Deactivating the plugin preserves all stored forms and responses. Data is only
removed when the plugin is fully uninstalled (deleted) through **Plugins > Installed
Plugins > Delete**.

### What PHP and WordPress versions are required?

PHP 7.4 or higher and WordPress 6.0 or higher.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Echozat Leads Capture” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Echozat ](https://profiles.wordpress.org/echozat/)

[Translate “Echozat Leads Capture” into your language.](https://translate.wordpress.org/projects/wp-plugins/echozat-leads-capture)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/echozat-leads-capture/),
check out the [SVN repository](https://plugins.svn.wordpress.org/echozat-leads-capture/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/echozat-leads-capture/)
by [RSS](https://plugins.trac.wordpress.org/log/echozat-leads-capture/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.
 * Form builder with shortcode editor and field-type toolbar.
 * Supported field types: text, email, URL, tel, number, date, textarea, select,
   checkbox, radio, acceptance, math captcha, Google reCAPTCHA v2, and submit.
 * Field attribute options: placeholder, autocomplete, maxlength, minlength, pattern,
   min, max, step, rows, cols.
 * Per-form mail notifications with dynamic placeholders: field values, form title,
   form ID, submission ID, submission date, site name, and site URL.
 * Per-form customisable user-facing messages: success, error, validation error,
   spam, captcha error, file upload error, and already-submitted.
 * Per-form Google reCAPTCHA v2 credentials stored in the forms table.
 * Global SMTP settings with AES-256-CBC encrypted password storage.
 * Paginated response list per form with IP address, user agent, timestamp, search,
   CSV export, inline AJAX detail view, and single-response detail page.
 * Cross-form “All Responses” listing with per-form filtering.
 * Form detail page with total, monthly, and weekly submission counts and a 30-day
   daily chart.
 * Form duplication — clone a form and all its settings with one click.
 * Admin search on the Forms list (by title) and Responses list (by value, IP, or
   date).
 * Extensibility hooks: `echoleadcap_after_submission`, `echoleadcap_after_save_form`,`
   echoleadcap_after_delete_form`, `echoleadcap_before_save_form`, `echoleadcap_leads_trust_proxy_headers`.
 * Honeypot spam protection, IP-based rate limiting, and duplicate-submission guard.
 * Activation creates `echozat_leads_forms` and `echozat_leads_responses` tables;
   uninstall drops them.

## Meta

 *  Version **1.0.0**
 *  Last updated **10 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [contact form](https://wordpress.org/plugins/tags/contact-form/)[form builder](https://wordpress.org/plugins/tags/form-builder/)
   [forms](https://wordpress.org/plugins/tags/forms/)[lead capture](https://wordpress.org/plugins/tags/lead-capture/)
   [leads](https://wordpress.org/plugins/tags/leads/)
 *  [Advanced View](https://wordpress.org/plugins/echozat-leads-capture/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/echozat-leads-capture/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/echozat-leads-capture/reviews/)

## Contributors

 *   [ Echozat ](https://profiles.wordpress.org/echozat/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/echozat-leads-capture/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://echozat.com/)