{"id":137,"date":"2026-02-12T17:35:48","date_gmt":"2026-02-12T17:35:48","guid":{"rendered":"https:\/\/activelayer.com\/docs\/wordpress-plugin\/"},"modified":"2026-02-12T17:50:49","modified_gmt":"2026-02-12T17:50:49","slug":"wordpress-plugin","status":"publish","type":"documentation","link":"https:\/\/activelayer.com\/docs\/wordpress-plugin\/","title":{"rendered":"ActiveLayer WordPress Plugin"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"before-you-start\">Before You Start<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This handbook is for WordPress administrators, editors, and site owners using the ActiveLayer plugin. Bring your WordPress admin access, an active ActiveLayer API key, and at least one supported form plugin (or native comments) to follow along.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"quick-start\">Quick Start Checklist<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>ActiveLayer \u2192 Settings<\/strong> in your WordPress dashboard.<\/li>\n\n\n\n<li>Paste your ActiveLayer API key and click <strong>Verify Key<\/strong>. Look for the green check mark confirmation.<\/li>\n\n\n\n<li>Decide whether to enable <strong>Tracking Mode<\/strong> (logs without blocking) or <strong>Debug Logging<\/strong> (requires <code>WP_DEBUG<\/code>).<\/li>\n\n\n\n<li>Under <strong>Integration Settings<\/strong>, tick each provider you want ActiveLayer to protect.<\/li>\n\n\n\n<li>Click <strong>Save Changes<\/strong>.<\/li>\n\n\n\n<li>Enable the ActiveLayer toggle inside each form builder (WPForms, Ninja Forms, etc.) for every form that needs protection.<\/li>\n\n\n\n<li>Submit a test entry and confirm it appears in <strong>ActiveLayer \u2192 Submissions<\/strong> with the expected status.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"admin-area\">Understand the Admin Area<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dashboard:<\/strong> real-time snapshot of spam caught, clean traffic, and queue health. Ideal for daily check-ins.<\/li>\n\n\n\n<li><strong>Submissions:<\/strong> searchable archive with metadata. Filter by <code>pending<\/code>, <code>clean<\/code>, <code>spam<\/code>, or <code>failed<\/code>.<\/li>\n\n\n\n<li><strong>Logs:<\/strong> visible only when <code>WP_DEBUG<\/code> and Debug Logging are on. Great for diagnosing configuration or API issues.<\/li>\n\n\n\n<li><strong>Admin notices:<\/strong> Watchdog warnings surface at the top of the admin area if the queue stalls or cron stops running.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"submission-status\">Submission Status Glossary<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Status<\/th><th>What it means<\/th><th>Action needed<\/th><\/tr><\/thead><tbody><tr><td><code>pending<\/code><\/td><td>Waiting for the ActiveLayer verdict. Emails pause unless Tracking Mode is on.<\/td><td>None\u2014verdicts arrive in seconds.<\/td><\/tr><tr><td><code>clean<\/code><\/td><td>Passed validation. Emails released, or never paused in Tracking Mode.<\/td><td>Optional if you&#8217;re auditing submissions.<\/td><\/tr><tr><td><code>spam<\/code><\/td><td>Blocked as spam. Emails remain paused.<\/td><td>Optional\u2014delete or restore manually if needed.<\/td><\/tr><tr><td><code>failed<\/code><\/td><td>Queue or API unavailable. Emails restored automatically.<\/td><td>Investigate if frequent; Watchdog usually warns you.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-it-works\">How ActiveLayer Protects Your Site<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Safe by default:<\/strong> if the API key is missing or an integration is disabled, ActiveLayer steps aside and nothing is blocked.<\/li>\n\n\n\n<li><strong>Background verdicts:<\/strong> most providers queue submissions, pause emails, and resume once the verdict is <code>clean<\/code>.<\/li>\n\n\n\n<li><strong>Automatic fallbacks:<\/strong> if the queue or API fails, ActiveLayer releases emails and marks the submission <code>failed<\/code>.<\/li>\n\n\n\n<li><strong>Contact Form 7 exception:<\/strong> CF7 runs synchronously\u2014spam is blocked before submission completes.<\/li>\n\n\n\n<li><strong>Tracking Mode:<\/strong> great for trials; logs everything but never alters the user experience.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"playbooks\">Integration Playbooks<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Each integration follows the same flow: enable globally, turn it on per form, and understand how emails behave while the verdict is pending.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">WordPress Comments<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable globally:<\/strong> <code>ActiveLayer \u2192 Settings \u2192 WP Comments<\/code> \u2192 tick <strong>Enable spam protection<\/strong>.<\/li>\n\n\n\n<li><strong>Adjust behaviour:<\/strong> expand <strong>Advanced Settings<\/strong> to tune auto-approval, spam behaviour, logged-in user rules, trackbacks, pingbacks, and comment length.<\/li>\n\n\n\n<li><strong>During review:<\/strong> pending comments stay in moderation until clean verdicts arrive. Manual moderation remains available.<\/li>\n\n\n\n<li><strong>Failsafe:<\/strong> ActiveLayer restores comments to their original status if something breaks.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">WPForms<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable globally:<\/strong> <code>ActiveLayer \u2192 Settings \u2192 WPForms<\/code>.<\/li>\n\n\n\n<li><strong>Enable per form:<\/strong> builder \u2192 <strong>Settings \u2192 Spam Protection &amp; Security \u2192 ActiveLayer<\/strong> \u2192 tick the checkbox.<\/li>\n\n\n\n<li><strong>Email flow:<\/strong> entries are queued and emails pause until clean verdicts. Forms that skip entry storage (or when Sync Mode is forced globally) are checked before creation.<\/li>\n\n\n\n<li><strong>Failsafe:<\/strong> API or queue hiccups release emails immediately and mark the submission <code>failed<\/code>. The related entry ID appears in Submissions.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Formidable Forms<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable globally:<\/strong> <code>ActiveLayer \u2192 Settings \u2192 Formidable Forms<\/code>.<\/li>\n\n\n\n<li><strong>Enable per form:<\/strong> builder \u2192 <strong>Settings \u2192 Form Settings \u2192 ActiveLayer Protection<\/strong>.<\/li>\n\n\n\n<li><strong>Email flow:<\/strong> email actions are captured, stored, and replayed after clean verdicts. Spam verdicts keep them blocked.<\/li>\n\n\n\n<li><strong>Failsafe:<\/strong> if no <strong>Record Submission<\/strong> action exists, ActiveLayer replays emails immediately. Tracking Mode skips interception.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ninja Forms<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable globally:<\/strong> <code>ActiveLayer \u2192 Settings \u2192 Ninja Forms<\/code>.<\/li>\n\n\n\n<li><strong>Enable per form:<\/strong> builder \u2192 <strong>Settings \u2192 Restrictions \u2192 Enable ActiveLayer Protection<\/strong> (on by default for new forms).<\/li>\n\n\n\n<li><strong>Email flow:<\/strong> email actions are intercepted and replayed only after clean verdicts. Spam verdicts keep them suppressed.<\/li>\n\n\n\n<li><strong>Failsafe:<\/strong> Tracking Mode skips interception; API\/queue failures replay emails instantly to avoid user-facing delays.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Contact Form 7<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Enable globally:<\/strong> <code>ActiveLayer \u2192 Settings \u2192 Contact Form 7<\/code>.<\/li>\n\n\n\n<li><strong>Enable per form:<\/strong> edit the form \u2192 <strong>ActiveLayer<\/strong> tab \u2192 tick <strong>Enable ActiveLayer spam protection<\/strong>.<\/li>\n\n\n\n<li><strong>Email flow:<\/strong> verification happens inline. Clean submissions proceed immediately; spam shows the standard CF7 spam message.<\/li>\n\n\n\n<li><strong>Failsafe:<\/strong> Tracking Mode prevents blocking. Tag key fields for best accuracy (see below).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"cf7-tagging\">Tagging Contact Form 7 Fields<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ActiveLayer needs to know which CF7 fields map to name, email, message, and other metadata. Add <code>activelayer:*<\/code> options directly to each tag. Use every option only once per form.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Data<\/th><th>Option<\/th><th>Example Tag<\/th><\/tr><\/thead><tbody><tr><td>Sender name<\/td><td><code>activelayer:name<\/code><\/td><td><code>[text* your-name placeholder \"Your Name\" activelayer:name]<\/code><\/td><\/tr><tr><td>Email<\/td><td><code>activelayer:email<\/code><\/td><td><code>[email* your-email activelayer:email]<\/code><\/td><\/tr><tr><td>Website (optional)<\/td><td><code>activelayer:url<\/code><\/td><td><code>[url your-site placeholder \"https:\/\/example.com\" activelayer:url]<\/code><\/td><\/tr><tr><td>Message<\/td><td><code>activelayer:message<\/code><\/td><td><code>[textarea* your-message activelayer:message]<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tips:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add the option on the same line as other tag settings\u2014no extra configuration required.<\/li>\n\n\n\n<li>Tag every relevant field; missing data (especially email) reduces accuracy.<\/li>\n\n\n\n<li>After tagging, revisit the <strong>ActiveLayer<\/strong> tab and confirm protection is still enabled.<\/li>\n\n\n\n<li>Submit a test message to ensure the submission appears under <strong>ActiveLayer \u2192 Submissions<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faq\">Common Questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What does the Watchdog warning mean?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The queue has not processed submissions recently. Visit <strong>Tools \u2192 Scheduled Actions<\/strong> to inspect WP Cron or check whether a security plugin is blocking Action Scheduler.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How long do verdicts take?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Usually a few seconds. If <code>pending<\/code> entries linger for minutes, investigate cron configuration or API connectivity.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is Tracking Mode for?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">It lets you observe detection accuracy without ever delaying emails\u2014ideal for staging sites or for gathering data before enforcing blocks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"support\">Need Help?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Contact ActiveLayer support to troubleshoot queue issues, tagging, or configuration\u2014we are happy to guide you through setup and optimisation.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Support inbox:<\/strong> <a href=\"mailto:support@activelayer.com\">support@activelayer.com<\/a><\/li>\n\n\n\n<li><strong>Account assistance:<\/strong> Reach out to your ActiveLayer account manager.<\/li>\n<\/ul>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"template":"","docs_cat":[8],"class_list":["post-137","documentation","type-documentation","status-publish","hentry","docs_cat-wordpress-plugin"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/activelayer.com\/wp-json\/wp\/v2\/documentation\/137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/activelayer.com\/wp-json\/wp\/v2\/documentation"}],"about":[{"href":"https:\/\/activelayer.com\/wp-json\/wp\/v2\/types\/documentation"}],"author":[{"embeddable":true,"href":"https:\/\/activelayer.com\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":2,"href":"https:\/\/activelayer.com\/wp-json\/wp\/v2\/documentation\/137\/revisions"}],"predecessor-version":[{"id":145,"href":"https:\/\/activelayer.com\/wp-json\/wp\/v2\/documentation\/137\/revisions\/145"}],"wp:attachment":[{"href":"https:\/\/activelayer.com\/wp-json\/wp\/v2\/media?parent=137"}],"wp:term":[{"taxonomy":"docs_cat","embeddable":true,"href":"https:\/\/activelayer.com\/wp-json\/wp\/v2\/docs_cat?post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}