GWiz IT Content Locker is a free, self-hosted lead-generation plugin for gating content, collecting email subscribers, connecting to popular email marketing platforms, and tracking conversions — without requiring a third-party SaaS service.
Key Features:
- Restricted Areas — Create multiple gated areas, each with its own URLs, settings, form, and email templates.
- Inline Shortcodes — Use
[gwiz_it_content_locker area="AreaName"]...[/gwiz_it_content_locker] to gate content inline without replacing the entire page.
- Hide by CSS Selector — Hide elements by class name (e.g.,
div.exampleclass) until the visitor signs up.
- Custom Form Builder — Drag-and-drop form fields with 9 field types. The email field is always required.
- Email Templates — Visual editors for confirmation and congratulations emails with placeholder support.
- Popup Template — Customize the overlay popup with a visual editor and form placeholder.
- Double Opt-In — Optionally require email confirmation before granting access.
- HMAC-Signed Cookies — Visitor cookies are HMAC-signed with configurable expiration per area.
- Signups Viewer — View, search, and export signups with customizable columns and CSV export (UTF-8 BOM for Excel).
- Statistics — Track views, submissions, and confirmations with date-range filtering.
- Clone & Export/Import — Duplicate restricted areas with a single click, or export/import area settings as ZIP backups (with optional contact migration). Includes forward-compatible version handling for safe backups.
- Debug Mode — Per-area toggle that shows a cookie-status toolbar on the frontend so you can verify the gate is working.
- Frontend Builder Support — Works with Elementor, Divi, and Beaver Builder.
- Performance Optimized — Frontend JS/CSS only loads on pages that actually use the shortcode or have matching hide selectors.
- Built-In Help Guide — A detailed, plain-English guide to every button and setting, accessible from the Help button on the Restricted Areas page.
Third-Party Integrations:
Sync confirmed signups automatically to your email marketing platform:
- ActiveCampaign — Add contacts to a list with optional tags.
- Brevo (formerly Sendinblue) — Add contacts to a list.
- ConvertKit — Add subscribers to a sequence or tag.
- Mailchimp — Add subscribers to an audience with optional tags.
- phpList — Add subscribers to a mailing list via the phpList REST API.
Spam protection options:
- Google reCAPTCHA v2 — Classic checkbox captcha.
- Google reCAPTCHA v3 — Invisible score-based captcha.
- ALTCHA (self-hosted) — Lightweight, privacy-friendly proof-of-work captcha with no external API calls.
External Services:
This plugin optionally connects to the following third-party services when configured by the site administrator. No data is sent to any external service until you explicitly enable and enter your API credentials for that service.
- ActiveCampaign — Syncs confirmed subscriber email addresses to your ActiveCampaign account via their API. (ActiveCampaign Privacy Policy)
- Brevo (formerly Sendinblue) — Syncs confirmed subscriber email addresses to your Brevo account via their API. (Brevo Privacy Policy)
- ConvertKit — Syncs confirmed subscriber email addresses to your ConvertKit account via their API. (ConvertKit Privacy Policy)
- Mailchimp — Syncs confirmed subscriber email addresses to your Mailchimp audience via their API. (Mailchimp Privacy Policy)
- phpList — Syncs confirmed subscriber email addresses to your self-hosted phpList installation via its REST API.
- Google reCAPTCHA — When enabled, loads the Google reCAPTCHA script to protect signup forms from spam. Sends the visitor IP address and browser information to Google for verification. (Google Privacy Policy)
All data transfer occurs over HTTPS. The ALTCHA captcha option is fully self-hosted and does not connect to any external service.
Shortcode Usage
Gate content inline using the shortcode:
[gwiz_it_content_locker area="AreaName"]This content is hidden until the visitor signs up.[/gwiz_it_content_locker]
The area attribute uses the area’s display name. If multiple areas share the same name, Windows-style deduplication applies: AreaName, AreaName2, AreaName3.
The exact shortcode for each area is shown in the area’s Settings modal.
Important — logged-in users never see the gate: if you are logged in (for example as an administrator), the plugin intentionally shows the unlocked content with no signup form, so you are never gated on your own site. If the wrapped text just appears with no form, you are almost certainly logged in. To see the gate as a visitor would, log out or open the page in a private/incognito browser window. To preview the gate while logged in, enable Debug Mode in the area’s Settings modal — that shows the form to logged-in administrators too. Developers can adjust this behavior with the gwiz_it_content_locker_bypass_logged_in filter.
Hooks
Filters
gwiz_it_content_locker_load_frontend — Control whether frontend assets load on the current page.
`
add_filter( ‘gwiz_it_content_locker_load_frontend’, function( $should_load, $post ) {
// Force-load on a specific page template.
if ( is_page_template( ‘template-custom.php’ ) ) {
return true;
}
// Prevent loading on the shop page.
if ( is_shop() ) {
return false;
}
return $should_load;
}, 10, 2 );
`
Parameters:
* $should_load (bool) — Whether assets should load. Default is auto-detected based on shortcode/selector presence.
* $post (WP_Post|null) — The current post object.