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

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

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.