WP Manifestindependent plugin directory
manifest / email / wp-email-gate

Email Content Gate

WordPress plugin that gates content behind an email signup form

by Katie Allred · github.com/katiejallred/wp-email-gate

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/katiejallred/wp-email-gate/archive/refs/heads/main.zip

Gate post content behind a simple email capture form. Grow your newsletter with every article you publish.

Description

Email Content Gate lets you require an email address before readers can access the full content of any post. It is a lightweight, privacy-friendly lead generation tool designed for bloggers, publishers, and content creators.

How It Works

  1. Enable the gate on any post via the meta box in the editor.
  2. Visitors see a preview of the content along with an email capture form.
  3. After entering their email, the full content is revealed and a cookie remembers the unlock for 30 days.
  4. Captured emails are stored locally and optionally synced to your email provider.

Key Features

  • Three display modes -- Inline, Blur (NYT-style), or Overlay (modal). Set a global default or override per post.
  • Automatic or manual gating -- By default, content is gated after the first two paragraphs. Place a [gate_here] marker in your content to control exactly where the gate appears.
  • Gutenberg block and Classic Editor button -- Insert the gate marker visually in either editor.
  • Theme-aware design -- All colors, fonts, and button styles inherit from your active theme via CSS custom properties and wp-element-button classes. Works with block themes and classic themes alike.
  • Archive CTA card -- Gated posts display a high-conversion callout card on archive and homepage views with a value proposition, unlock button, and social proof line.
  • Provider integrations -- Sync captured emails to SendFox, Mailchimp, or any webhook endpoint.
  • Built-in analytics -- Track impressions, conversions, and conversion rates per post.
  • Leads management -- View, search, export (CSV), and bulk-resync leads from the admin dashboard.
  • API key encryption -- Provider API keys are encrypted at rest using AES-256-CBC.
  • Rate limiting -- Protects the unlock endpoint from abuse via IP-based transient throttling.
  • Privacy-first -- No external scripts loaded on the frontend. Only a cookie is set after unlock.
  • Translation-ready -- All strings (PHP and JavaScript) are wrapped in WordPress i18n functions.
  • Clean uninstall -- Removing the plugin deletes all tables, options, and post meta it created.

Installation

  1. Upload the wp-email-gate folder to the /wp-content/plugins/ directory, or install directly through the WordPress plugin screen.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. Go to Email Gate > Settings to choose your email provider and configure your API key.
  4. Edit any post and check Require Email to Read Full Post in the Email Content Gate meta box.

Frequently Asked Questions

How does the gate decide where to split the content?

By default, the gate appears after the first two <p> paragraphs. To control the split point, place the [gate_here] marker anywhere in your post content using the Gutenberg block or Classic Editor toolbar button.

What happens if a visitor has already unlocked content?

A cookie (wp_ecg_unlocked) is set for 30 days. While the cookie is present, all gated posts display their full content without the gate form.

Does this work with my theme?

Yes. The plugin inherits your theme's colors, fonts, and button styles through CSS custom properties and the standard wp-element-button class. It has been tested with block themes (Twenty Twenty-Five, etc.) and classic themes.

Where are the captured emails stored?

Emails are stored in a custom database table ({prefix}_email_gate_leads) on your server. If you configure a provider (SendFox, Mailchimp, or Webhook), emails are also synced to that service.

What is removed when I uninstall the plugin?

All custom database tables, plugin options, and post meta are deleted. No data is left behind.

Screenshots

  1. The inline gate form on a single post (inherits theme styling).
  2. The blur (NYT-style) gate mode.
  3. The overlay (modal) gate mode.
  4. The archive CTA card on the homepage.
  5. The Settings page with provider configuration and gate appearance options.
  6. The Leads management table with export and resync.
  7. The Analytics dashboard showing impressions and conversions.

Changelog

3.6.0

  • Added WordPress Customizer integration for visual gate styling (colors, fade, radius, typography, social proof).
  • Added [gate_here] shortcode-first architecture for native page builder compatibility.
  • Added smooth scroll-to-title after email unlock so readers start from the top.
  • Fixed Customizer settings not saving ("Setting does not exist" error) caused by AJAX early-return.
  • Refactored frontend JS: extracted reusable helpers, added requestAnimationFrame for smoother scroll.
  • Overhauled Help page with 12 comprehensive documentation cards.

3.5.0

  • Added database version tracking for automatic schema upgrades.
  • Added uninstall.php for complete cleanup on plugin deletion.
  • Internationalized all JavaScript strings (admin settings, Gutenberg block, TinyMCE button).
  • Fixed pointer-events bug that blocked teaser links under the gradient fade.
  • Updated setcookie to include SameSite=Lax attribute for modern browser compliance.
  • Cleaned up unused variables and stale docblocks.

3.4.0

  • Added archive CTA card with value proposition, social proof, and hover animation.
  • Added customizable Archive CTA settings (Value Proposition, Social Proof text).
  • Refined card design with centered flex layout, border, and background tint.

3.3.0

  • Redesigned gate form with theme-inheriting premium paywall aesthetic.
  • Added three display modes: Inline, Blur (NYT-style), and Overlay (Modal).
  • Added per-post gate style override via meta box.
  • Added gradient fade, lock icon on archive titles, and scroll-to-form anchor.

3.2.0

  • Added analytics dashboard with impressions, conversions, and conversion rates.
  • Added CSV export for leads (all or selected).
  • Added bulk resync for leads that failed initial provider sync.

3.1.0

  • Added Mailchimp and Webhook provider integrations.
  • Added AES-256-CBC encryption for stored API keys.
  • Added rate limiting for the unlock endpoint.

3.0.0

  • Multi-file architecture refactor with dedicated classes for admin, AJAX, frontend, providers, analytics, crypto, and leads table.
  • Added Gutenberg block and Classic Editor button for the [gate_here] marker.

2.0.0

  • Added SendFox integration and dynamic list fetching.
  • Added WP_List_Table for leads management.

1.0.0

  • Initial release. Local-only email capture with cookie-based unlock.

Upgrade Notice

3.5.0

Includes automatic database schema upgrades and clean uninstall support. Recommended for all users.