[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fvdFXHotjqw2qukTRPqXX8cIsPeyZKT-xBPsXtgxX1iA":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":8,"download_link":24,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":34,"analysis":120,"fingerprints":331},"ghost-comment-manager","Ghost Comment Manager","0.1.5","devfluxr","https:\u002F\u002Fprofiles.wordpress.org\u002Fdevfluxr\u002F","\u003Cp>Ghost Comment Manager is designed to reduce the time you spend moderating comments. Instead of re-approving the same people over and over, you mark a person as Trusted one time. From then on:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Their new comments publish immediately.\u003C\u002Fli>\n\u003Cli>A subtle “ghost” indicator is shown to moderators only so you can spot and confirm at your convenience.\u003C\u002Fli>\n\u003Cli>Visitors see a normal comment; nothing changes on the public site.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Alongside this workflow improvement, the plugin includes a lightweight Shield that blocks common spam patterns without external services. A simple dashboard gives you live counts and a clear picture of what is happening.\u003C\u002Fp>\n\u003Cp>This plugin focuses on workflow, clarity, and speed. It plays nicely with Akismet or Antispam Bee if you already use them.\u003C\u002Fp>\n\u003Ch3>Why use this plugin\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Save time: stop re-approving loyal commenters.\u003C\u002Fli>\n\u003Cli>Stay safe: every trusted comment is highlighted to moderators until confirmed.\u003C\u002Fli>\n\u003Cli>Cut spam: built-in Shield blocks common abusive behavior before it reaches your queue.\u003C\u002Fli>\n\u003Cli>See everything: a simple dashboard with trusted totals and block reasons.\u003C\u002Fli>\n\u003Cli>Keep control: bulk trust\u002Funtrust, user-profile control, and comment-screen filters.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cp>Core workflow\u003Cbr \u002F>\n– Trust \u002F Untrust a user from the Comments list.\u003Cbr \u002F>\n– Auto-trust after X approved comments (configurable).\u003Cbr \u002F>\n– Ghosted auto-publish for trusted users (mod-only highlight until confirmed).\u003Cbr \u002F>\n– One-click Confirm to remove the ghost indicator.\u003Cbr \u002F>\n– Role exclusions so specific roles (for example Editors) publish normally without ghosting.\u003Cbr \u002F>\n– Custom ghost indicator icon and background color.\u003C\u002Fp>\n\u003Cp>Shield Lite (no external API)\u003Cbr \u002F>\n– Honeypot field that bots tend to fill.\u003Cbr \u002F>\n– Minimum submit time to stop instant bot posts.\u003Cbr \u002F>\n– Rate limits per IP (per minute and per hour).\u003Cbr \u002F>\n– Maximum links per comment.\u003Cbr \u002F>\n– Keyword and regular expression blocklist.\u003Cbr \u002F>\n– Auto-close comments on old posts after X days.\u003Cbr \u002F>\n– Minimum and maximum comment length.\u003Cbr \u002F>\n– Duplicate comment protection within a time window.\u003C\u002Fp>\n\u003Cp>Moderation UX\u003Cbr \u002F>\n– Comment-screen filters:\u003Cbr \u002F>\n  – Pending (New Users): only untrusted comments awaiting approval.\u003Cbr \u002F>\n  – Ghost (Trusted): approved comments still awaiting moderator confirmation.\u003Cbr \u002F>\n– Bulk actions: Trust or Untrust the user associated with selected comments.\u003Cbr \u002F>\n– Trust from the User Profile screen (checkbox).\u003C\u002Fp>\n\u003Cp>UI and Dashboard\u003Cbr \u002F>\n– Colorful dashboard cards for trusted users, ghost-pending count, and totals.\u003Cbr \u002F>\n– Shield Lite “blocks by reason” table.\u003Cbr \u002F>\n– Clean and organized settings pages.\u003Cbr \u002F>\n– “Pro Features” preview tab (coming soon items).\u003C\u002Fp>\n\u003Cp>Integrations and compatibility\u003Cbr \u002F>\n– Respects Akismet \u002F Antispam Bee: if a comment is flagged as spam, this plugin does not ghost-mark or auto-approve it.\u003Cbr \u002F>\n– Works with block themes and classic themes.\u003Cbr \u002F>\n– Multisite compatible on a per-site basis.\u003C\u002Fp>\n\u003Ch3>How it works (non-technical)\u003C\u002Fh3>\n\u003Ch3>🧠 Approve vs Trust\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Approve\u003C\u002Fstrong> = you approve \u003Cstrong>one\u003C\u002Fstrong> comment only.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Trust\u003C\u002Fstrong> = you approve the \u003Cstrong>person\u003C\u002Fstrong>.\u003Cbr \u002F>\nOnce a user is trusted, their future comments are \u003Cstrong>published instantly\u003C\u002Fstrong> (no moderation wait).\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Example:\u003C\u002Fstrong> You approve Sarah’s first few comments. After that, she’s trusted — her next comments appear immediately.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>👻 Ghost indicator (moderator-only)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Trusted users’ comments publish instantly \u003Cstrong>but can be optionally “ghosted”\u003C\u002Fstrong> (hidden from public) depending on your settings.  \u003C\u002Fli>\n\u003Cli>If ghosting applies:\n\u003Cul>\n\u003Cli>\u003Cstrong>Public visitors\u003C\u002Fstrong> do \u003Cstrong>not\u003C\u002Fstrong> see ghosted comments yet.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Moderators\u003C\u002Fstrong> see them with a ghost icon 👻 or colored background.  \u003C\u002Fli>\n\u003Cli>When you click \u003Cstrong>“Confirm (remove ghost)”\u003C\u002Fstrong>, the comment becomes visible to everyone.  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong>\u003Cbr \u002F>\nJohn is a trusted user. His comment posts immediately but shows a ghost icon only moderators see.\u003Cbr \u002F>\nYou review and click \u003Cstrong>Confirm\u003C\u002Fstrong> \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> it’s now public and the ghost mark disappears.\u003C\u002Fp>\n\u003Cp>If the user’s role is excluded in settings (for example, “Subscriber”), their comments publish \u003Cstrong>publicly right away\u003C\u002Fstrong> with \u003Cstrong>no ghost step\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3>⚙️ Auto-trust threshold\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>In \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Ghost Comment Manager \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> General\u003C\u002Fstrong>, set \u003Cstrong>Auto-trust after X approvals\u003C\u002Fstrong>.\u003Cbr \u002F>\n\u003Cstrong>Example:\u003C\u002Fstrong> set it to \u003Cstrong>3\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>When any commenter reaches \u003Cstrong>3 approved comments\u003C\u002Fstrong>, the plugin automatically trusts them.  \u003C\u002Fli>\n\u003Cli>Their future comments post instantly without waiting for moderation.  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Changing this number later affects \u003Cstrong>new users only\u003C\u002Fstrong>; existing trusted users stay trusted.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🔐 Role exclusions (no ghosting)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Choose which roles should \u003Cstrong>never\u003C\u002Fstrong> be ghosted.\u003Cbr \u002F>\n\u003Cstrong>Example:\u003C\u002Fstrong> check \u003Cstrong>Administrator\u003C\u002Fstrong> and \u003Cstrong>Editor\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Comments by these roles will always publish normally — no ghosting, no confirmation step.  \u003C\u002Fli>\n\u003Cli>This ensures your staff or editors aren’t delayed or hidden from public view.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🛡️ Shield Lite (Spam \u002F Abuse Guard)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Works quietly in the background to stop obvious spam before it reaches your moderation queue.  \u003C\u002Fli>\n\u003Cli>Uses:\n\u003Cul>\n\u003Cli>\u003Cstrong>Honeypot field\u003C\u002Fstrong> to trap bots  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Minimum submit time\u003C\u002Fstrong> (prevents instant spam posts)  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Rate limits\u003C\u002Fstrong>, \u003Cstrong>link limits\u003C\u002Fstrong>, and \u003Cstrong>keyword blocklist\u003C\u002Fstrong>  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>The default settings are safe and balanced.\u003Cbr \u002F>\nYou can fine-tune them anytime to match your community’s needs.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Step-by-step setup\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Install and activate the plugin.\u003C\u002Fli>\n\u003Cli>Open Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> General:\n\u003Cul>\n\u003Cli>Set “Auto-trust after X approvals” (0 disables auto-trust).\u003C\u002Fli>\n\u003Cli>Choose any roles to exclude from ghosting.\u003C\u002Fli>\n\u003Cli>Pick an icon and background color for the moderator-only ghost indicator.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Open Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Shield Lite:\n\u003Cul>\n\u003Cli>Keep Honeypot on.\u003C\u002Fli>\n\u003Cli>Set Minimum submit time (3–5 seconds is typical).\u003C\u002Fli>\n\u003Cli>Set rate limits (for example 6 per minute and 60 per hour).\u003C\u002Fli>\n\u003Cli>Set the maximum number of links (for example 2).\u003C\u002Fli>\n\u003Cli>Add any keywords or regular expressions to block.\u003C\u002Fli>\n\u003Cli>Optionally auto-close comments on posts older than X days.\u003C\u002Fli>\n\u003Cli>Adjust minimum\u002Fmaximum length and duplicate time window to taste.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Start using it:\n\u003Cul>\n\u003Cli>In Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> All Comments, click “Trust User” on a real commenter.\u003C\u002Fli>\n\u003Cli>Their next comments auto-publish with a moderator-only ghost indicator.\u003C\u002Fli>\n\u003Cli>Click Confirm to remove the indicator when you’re ready.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Using each feature\u003C\u002Fh3>\n\u003Cp>Trust \u002F Untrust from Comments\u003Cbr \u002F>\n– Where: Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> All Comments (hover a row).\u003Cbr \u002F>\n– Action: click “Trust User” or “Untrust User”.\u003Cbr \u002F>\n– Result: future comments from that user auto-publish (if trusted) and are ghost-flagged for moderators.\u003C\u002Fp>\n\u003Cp>Auto-trust after X approvals\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> General.\u003Cbr \u002F>\n– Action: set a number of approved comments required (0 disables).\u003Cbr \u002F>\n– Result: users become trusted automatically when they reach the threshold.\u003C\u002Fp>\n\u003Cp>Confirm (remove ghost)\u003Cbr \u002F>\n– Where: Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> All Comments on the trusted comment row.\u003Cbr \u002F>\n– Action: click “Confirm (remove ghost)”.\u003Cbr \u002F>\n– Result: the moderator-only highlight disappears; the comment remains published.\u003C\u002Fp>\n\u003Cp>Role exclusions\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> General.\u003Cbr \u002F>\n– Action: check roles that should not be ghosted.\u003Cbr \u002F>\n– Result: users with those roles publish normally without a ghost indicator.\u003C\u002Fp>\n\u003Cp>Ghost indicator style\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> General.\u003Cbr \u002F>\n– Action: set icon and color.\u003Cbr \u002F>\n– Result: the moderator-only highlight uses your chosen style.\u003C\u002Fp>\n\u003Cp>Shield Lite: Honeypot\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Shield Lite.\u003Cbr \u002F>\n– Action: keep “Honeypot” enabled.\u003Cbr \u002F>\n– Result: bots that fill the hidden field are blocked immediately.\u003C\u002Fp>\n\u003Cp>Shield Lite: Minimum submit time\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Shield Lite.\u003Cbr \u002F>\n– Action: set a minimum number of seconds (0 disables).\u003Cbr \u002F>\n– Result: submissions that happen too quickly are blocked.\u003C\u002Fp>\n\u003Cp>Shield Lite: Rate limits\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Shield Lite.\u003Cbr \u002F>\n– Action: set per-minute and per-hour limits (0 disables).\u003Cbr \u002F>\n– Result: repeated posting from the same IP is throttled.\u003C\u002Fp>\n\u003Cp>Shield Lite: Maximum links\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Shield Lite.\u003Cbr \u002F>\n– Action: set the link limit (0 means no limit).\u003Cbr \u002F>\n– Result: comments with too many links are blocked.\u003C\u002Fp>\n\u003Cp>Shield Lite: Keyword \u002F regex blocklist\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Shield Lite.\u003Cbr \u002F>\n– Action: enter one rule per line; plain words match case-insensitive; regular expressions in \u002Fpattern\u002F or \u002Fpattern\u002Fi form are supported.\u003Cbr \u002F>\n– Result: comments matching a rule are blocked.\u003C\u002Fp>\n\u003Cp>Shield Lite: Auto-close old posts\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Shield Lite.\u003Cbr \u002F>\n– Action: set days after which comments are closed (0 disables).\u003Cbr \u002F>\n– Result: new comments are blocked on very old posts.\u003C\u002Fp>\n\u003Cp>Shield Lite: Min \u002F Max length and Duplicate window\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Shield Lite.\u003Cbr \u002F>\n– Action: set minimum and maximum characters, and a duplicate-detection window in seconds (0 disables).\u003Cbr \u002F>\n– Result: very short, very long, or repeated comments are blocked.\u003C\u002Fp>\n\u003Cp>Filters on the Comments screen\u003Cbr \u002F>\n– Where: Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> All Comments.\u003Cbr \u002F>\n– Action: use the “GCM View” dropdown or the additional status links.\u003Cbr \u002F>\n– Result: see either Pending (New Users) or Ghost (Trusted) items instantly.\u003C\u002Fp>\n\u003Cp>Bulk actions: Trust \u002F Untrust\u003Cbr \u002F>\n– Where: Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> All Comments.\u003Cbr \u002F>\n– Action: select multiple comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> choose “Trust user of selected comments” or “Untrust user of selected comments” \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Apply.\u003Cbr \u002F>\n– Result: users associated with those comments are updated in bulk.\u003C\u002Fp>\n\u003Cp>Trust from the User Profile\u003Cbr \u002F>\n– Where: Users \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> All Users \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Edit user.\u003Cbr \u002F>\n– Action: check “Trusted Commenter” and update the profile.\u003Cbr \u002F>\n– Result: that user is trusted without needing to find a specific comment.\u003C\u002Fp>\n\u003Cp>Dashboard\u003Cbr \u002F>\n– Where: Ghost Comments \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Dashboard.\u003Cbr \u002F>\n– Shows: trusted user total, ghost-pending count, totals for auto-trusted, ghosts marked, ghosts confirmed, and a table of Shield Lite blocks by reason.\u003C\u002Fp>\n\u003Ch3>Compatibility, performance, privacy\u003C\u002Fh3>\n\u003Cp>Compatibility\u003Cbr \u002F>\n– Works with WordPress 6.0 and newer, classic and block themes.\u003Cbr \u002F>\n– Plays well with Akismet and Antispam Bee; if a comment is flagged as spam, it will not be ghost-marked or auto-approved by this plugin.\u003Cbr \u002F>\n– Multisite: activate per site or network-wide; settings are per site.\u003C\u002Fp>\n\u003Cp>Performance\u003Cbr \u002F>\n– Lightweight by design. No front-end JavaScript for visitors. Shield Lite uses simple server checks and transients.\u003C\u002Fp>\n\u003Cp>Privacy\u003Cbr \u002F>\n– Stores minimal user meta to remember trusted status and counters for the dashboard.\u003Cbr \u002F>\n– No data is sent to external services by this plugin.\u003C\u002Fp>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Cp>I trusted a user but their comment did not auto-publish\u003Cbr \u002F>\n– Confirm the user is logged in with the same account you trusted.\u003Cbr \u002F>\n– Check if another plugin is forcing all comments to be held for moderation.\u003Cbr \u002F>\n– If Akismet flagged the comment as spam, it will not auto-publish.\u003C\u002Fp>\n\u003Cp>Ghost highlight is not visible to moderators\u003Cbr \u002F>\n– Ensure you are logged in with a role that can moderate comments.\u003Cbr \u002F>\n– Confirm the comment belongs to a trusted user and has not already been confirmed.\u003Cbr \u002F>\n– Check the indicator color in settings; choose a more visible color if needed.\u003C\u002Fp>\n\u003Cp>Auto-trust threshold is set but users are not becoming trusted\u003Cbr \u002F>\n– The threshold only counts approved comments after you enabled it.\u003Cbr \u002F>\n– Set the threshold to a smaller number to test quickly.\u003C\u002Fp>\n\u003Cp>Too many legitimate comments are blocked\u003Cbr \u002F>\n– Lower the minimum submit time.\u003Cbr \u002F>\n– Increase rate limits or set them to 0 to disable.\u003Cbr \u002F>\n– Raise the maximum links or remove specific keywords\u002Fregexes from the blocklist.\u003Cbr \u002F>\n– Reduce duplicate window time.\u003C\u002Fp>\n\u003Ch3>Roadmap \u002F Pro\u003C\u002Fh3>\n\u003Cp>Coming soon in Pro:\u003Cbr \u002F>\n– Trust levels with scoring and optional expiry\u003Cbr \u002F>\n– Keyword rules with scoring and spam-gate thresholds\u003Cbr \u002F>\n– Team assignments and internal notes\u003Cbr \u002F>\n– Analytics with CSV export\u003Cbr \u002F>\n– Advanced role and post-type overrides\u003C\u002Fp>\n","Trust once → comments auto-publish with a moderator-only “ghost” flag. Includes a light spam shield, filters, bulk actions, and a clear dashboard.",20,197,0,"2025-10-16T12:48:00.000Z","6.8.5","6.0","7.4",[19,20,21,22,23],"comments","ghost","moderation","spam","trust","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fghost-comment-manager.0.1.5.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},1,30,94,"2026-04-04T05:23:50.402Z",[35,57,75,91,104],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":54,"download_link":55,"security_score":56,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"auto-approve-comments","Auto Approve Comments","2.8","Federico Andrioli","https:\u002F\u002Fprofiles.wordpress.org\u002Ffedeandri\u002F","\u003Cp>Auto approve comments by Commenter (email, name, url), User and Role (Akismet and wpDiscuz compatible).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Usage\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Open Comments -> Auto Approve Comments\u003C\u002Fli>\n\u003Cli>Go to Settings -> Discussion and check “Comment must be manually approved” \u003C\u002Fli>\n\u003Cli>Optionally install and activate Akismet (comments flagged as SPAM will never get auto approved) \u003C\u002Fli>\n\u003Cli>Configure your auto approval filters in “Commenters”, “Users” and “Roles”\u003C\u002Fli>\n\u003Cli>Save and you’re done\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>From now on all the comments that match at least one of the configurations in “Commenters”, “Users” or “Roles” will always be auto approved.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Commenters – example\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Add one Commenter per line, follow the example below:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>tom@myface.com\ntom@myface.com,Tom\ntom@myface.com,www.myface.com\ntom@myface.com,www.myface.com,Tom\ntom@myface.com,Tom,www.myface.com\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Users – example\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Add one Username per line, follow the example below:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>steveknobs76\njeffmezos012\nlarrymage98\nmarktuckerberg2004\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Roles – example\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Add one Role per line, follow the example below:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>contributor\neditor\nyourcustomrole\nsubscriber\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Developers\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Official Github repository:\u003Cbr \u002F>\nhttps:\u002F\u002Fgithub.com\u002Ffedeandri\u002Fauto-approve-comments\u003C\u002Fp>\n","Auto approve comments by Commenter (email, name, url), User and Role (Akismet and wpDiscuz compatible)",200,9999,64,5,"2021-06-15T12:24:00.000Z","5.8.13","3.8","",[52,53,19,21],"anti-spam","auto-approve","https:\u002F\u002Fgithub.com\u002Ffedeandri\u002Fauto-approve-comments","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fauto-approve-comments.2.8.zip",85,{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":31,"downloaded":65,"rating":13,"num_ratings":13,"last_updated":66,"tested_up_to":67,"requires_at_least":68,"requires_php":69,"tags":70,"homepage":73,"download_link":74,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"ai-comment-guard","AI Comment Guard","1.2.4","Tudor Constantin","https:\u002F\u002Fprofiles.wordpress.org\u002Ftud0r\u002F","\u003Cp>\u003Cstrong>AI Comment Guard\u003C\u002Fstrong> is a powerful WordPress plugin that uses artificial intelligence to automatically moderate comments on your website. Say goodbye to spam and inappropriate content with intelligent, customizable AI analysis.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>🤖 \u003Cstrong>Multiple AI Provider Support\u003C\u002Fstrong>: Choose from OpenAI (GPT-4\u002FGPT-3.5), Anthropic (Claude), or OpenRouter\u003C\u002Fli>\n\u003Cli>⚡ \u003Cstrong>Automatic Comment Processing\u003C\u002Fstrong>: Instantly analyze and moderate comments as they’re submitted\u003C\u002Fli>\n\u003Cli>🎯 \u003Cstrong>Smart Classification\u003C\u002Fstrong>: Automatically approve, reject, hold, or mark comments as spam\u003C\u002Fli>\n\u003Cli>📊 \u003Cstrong>Confidence Thresholds\u003C\u002Fstrong>: Set custom confidence levels for different actions\u003C\u002Fli>\n\u003Cli>📝 \u003Cstrong>Customizable AI Prompts\u003C\u002Fstrong>: Tailor the AI’s behavior to your specific needs\u003C\u002Fli>\n\u003Cli>📈 \u003Cstrong>Comprehensive Logging\u003C\u002Fstrong>: Track all AI decisions with detailed logs and statistics\u003C\u002Fli>\n\u003Cli>🔒 \u003Cstrong>Secure API Integration\u003C\u002Fstrong>: Your API keys are stored securely\u003C\u002Fli>\n\u003Cli>🌍 \u003Cstrong>Internationalization Ready\u003C\u002Fstrong>: Fully translatable to any language\u003C\u002Fli>\n\u003Cli>⚙️ \u003Cstrong>Easy Configuration\u003C\u002Fstrong>: Simple setup with intuitive admin interface\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>\u003Cstrong>Configure Your AI Provider\u003C\u002Fstrong>: Add your API key from OpenAI, Anthropic, or OpenRouter\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Set Your Preferences\u003C\u002Fstrong>: Customize thresholds and prompts to match your moderation style\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Let AI Do the Work\u003C\u002Fstrong>: Comments are automatically analyzed and actioned based on your settings\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Review and Refine\u003C\u002Fstrong>: Monitor performance through detailed logs and adjust settings as needed\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Perfect For\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Bloggers\u003C\u002Fstrong> who want to maintain quality discussions\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Business Websites\u003C\u002Fstrong> needing professional comment moderation\u003C\u002Fli>\n\u003Cli>\u003Cstrong>High-Traffic Sites\u003C\u002Fstrong> requiring automated spam protection\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Community Platforms\u003C\u002Fstrong> wanting consistent moderation standards\u003C\u002Fli>\n\u003Cli>\u003Cstrong>International Sites\u003C\u002Fstrong> needing multilingual comment analysis\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Privacy & Security\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>API keys are stored securely in your WordPress database\u003C\u002Fli>\n\u003Cli>No comment data is stored on third-party servers beyond AI processing\u003C\u002Fli>\n\u003Cli>GDPR compliant with optional logging that can be disabled\u003C\u002Fli>\n\u003Cli>All communications with AI providers use secure HTTPS connections\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin connects to an external service in order to analyze and moderate comments using artificial intelligence.\u003Cbr \u002F>\nYou can choose one of the following providers in the plugin settings:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>OpenAI API\u003C\u002Fstrong> (https:\u002F\u002Fopenai.com\u002F)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose:\u003C\u002Fstrong> Used to generate text analysis and classify comments.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent:\u003C\u002Fstrong> The comment content (text) and moderation instructions.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>When data is sent:\u003C\u002Fstrong> Each time a comment is submitted on your site and OpenAI is selected as the provider.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Where data is sent:\u003C\u002Fstrong> To OpenAI servers (https:\u002F\u002Fapi.openai.com\u002Fv1\u002Fchat\u002Fcompletions).  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Policies:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fterms-of-use\" rel=\"nofollow ugc\">Terms of Use\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fopenai.com\u002Fpolicies\u002Fprivacy-policy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Anthropic API\u003C\u002Fstrong> (https:\u002F\u002Fwww.anthropic.com\u002F)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose:\u003C\u002Fstrong> Used to analyze and classify comments through the Claude model.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent:\u003C\u002Fstrong> The comment content and analysis context.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>When data is sent:\u003C\u002Fstrong> Each time a comment is submitted and Anthropic is selected as the provider.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Where data is sent:\u003C\u002Fstrong> To Anthropic servers (https:\u002F\u002Fapi.anthropic.com\u002Fv1\u002Fmessages).  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Policies:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fconsumer-terms\" rel=\"nofollow ugc\">Terms of Service\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fprivacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>OpenRouter API\u003C\u002Fstrong> (https:\u002F\u002Fopenrouter.ai\u002F)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Purpose:\u003C\u002Fstrong> Routes requests to multiple AI models for comment analysis.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Data sent:\u003C\u002Fstrong> The comment content and parameters required for processing.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>When data is sent:\u003C\u002Fstrong> Each time a comment is submitted and OpenRouter is selected as the provider.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Where data is sent:\u003C\u002Fstrong> To OpenRouter servers (https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions).  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Policies:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fopenrouter.ai\u002Fterms\" rel=\"nofollow ugc\">Terms\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fopenrouter.ai\u002Fprivacy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.0 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.2 or higher\u003C\u002Fli>\n\u003Cli>An API key from OpenAI, Anthropic, or OpenRouter\u003C\u002Fli>\n\u003Cli>SSL certificate recommended for secure API communications\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Additional Information\u003C\u002Fh3>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cp>For support, feature requests, or bug reports, please visit:\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Ftudor-eusebiu-constantin\u002F\" rel=\"nofollow ugc\">LinkedIn Profile\u003C\u002Fa>\u003Cbr \u002F>\n* \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftudor-constantin\u002Fai-comment-guard\" rel=\"nofollow ugc\">GitHub Repository\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Contributing\u003C\u002Fh4>\n\u003Cp>We welcome contributions! If you’d like to contribute to the development of AI Comment Guard:\u003Cbr \u002F>\n* Report bugs or suggest features through the support forum\u003Cbr \u002F>\n* Submit pull requests on GitHub\u003Cbr \u002F>\n* Help translate the plugin to your language\u003C\u002Fp>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Developed by Tudor Constantin\u003C\u002Fli>\n\u003Cli>Thanks to the WordPress community for feedback and support\u003C\u002Fli>\n\u003Cli>Icons and graphics from WordPress Dashicons\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>License\u003C\u002Fh4>\n\u003Cp>AI Comment Guard is licensed under the GPL v2 or later.\u003C\u002Fp>\n\u003Cp>This program is free software; you can redistribute it and\u002For modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\u003C\u002Fp>\n\u003Cp>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\u003C\u002Fp>\n","Protect your WordPress site from spam with AI-powered comment moderation. Supports OpenAI, Anthropic, and OpenRouter providers.",471,"2025-12-09T17:13:00.000Z","6.9.4","5.0","7.2",[71,72,19,21,22],"ai","artificial-intelligence","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Ftudor-eusebiu-constantin\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fai-comment-guard.1.2.4.zip",{"slug":76,"name":77,"version":78,"author":79,"author_profile":80,"description":81,"short_description":82,"active_installs":83,"downloaded":84,"rating":13,"num_ratings":13,"last_updated":85,"tested_up_to":50,"requires_at_least":86,"requires_php":50,"tags":87,"homepage":89,"download_link":90,"security_score":56,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"ozh-auto-moderate-comments","Ozh' Auto Moderate Comments","1.0.1","Ozh","https:\u002F\u002Fprofiles.wordpress.org\u002Fozh\u002F","\u003Cp>When a post gets old, instead of simply closing the discussion, send comments and trackbacks to the moderation queue. This will greatly reduce spam.\u003C\u002Fp>\n\u003Cp>For documentation and tips, please refer to the official plugin page for \u003Ca href=\"http:\u002F\u002Fplanetozh.com\u002Fblog\u002Farchives\u002F2005\u002F02\u002F02\u002Fwordpress-plugin-auto-moderate-comments\u002F\" title=\"Auto Moderate Comments\" rel=\"nofollow ugc\">Auto Moderate Comments\u003C\u002Fa>\u003C\u002Fp>\n","When a post gets old, instead of simply closing the discussion, send comments and trackbacks to the moderation queue.",10,2873,"2010-09-18T12:33:00.000Z","1.5",[19,21,88,22],"ozh","http:\u002F\u002Fplanetozh.com\u002Fblog\u002F2005\u002F02\u002Fwordpress-plugin-auto-moderate-comments\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fozh-auto-moderate-comments.zip",{"slug":92,"name":93,"version":94,"author":92,"author_profile":95,"description":96,"short_description":97,"active_installs":13,"downloaded":98,"rating":25,"num_ratings":30,"last_updated":50,"tested_up_to":67,"requires_at_least":68,"requires_php":17,"tags":99,"homepage":101,"download_link":102,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":103},"cleanmod","CleanMod – AI Comment Moderation","0.1.0","https:\u002F\u002Fprofiles.wordpress.org\u002Fcleanmod\u002F","\u003Cp>CleanMod WordPress Plugin integrates CleanMod AI comment moderation to automatically detect and handle toxic comments on your WordPress site.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Automatic Moderation\u003C\u002Fstrong>: New comments are automatically sent to CleanMod’s moderation API\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flexible Behavior\u003C\u002Fstrong>: Configure how flagged and blocked comments are handled\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fail-Safe\u003C\u002Fstrong>: Comments still work even if the API is unavailable\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Native WordPress Integration\u003C\u002Fstrong>: Works with WordPress’s built-in comment system\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>When a new comment is submitted, the plugin intercepts it using WordPress’s \u003Ccode>pre_comment_approved\u003C\u002Fcode> filter\u003C\u002Fli>\n\u003Cli>The comment text is sent to CleanMod’s \u003Ccode>\u002Fapi\u002Fv1\u002Fmoderate\u003C\u002Fcode> endpoint\u003C\u002Fli>\n\u003Cli>Based on the \u003Ccode>decision\u003C\u002Fcode> returned (\u003Ccode>allow\u003C\u002Fcode>, \u003Ccode>flag\u003C\u002Fcode>, or \u003Ccode>block\u003C\u002Fcode>), the comment status is adjusted according to your settings\u003C\u002Fli>\n\u003Cli>If the API is unavailable, comments proceed normally (fail-open policy)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>External Services\u003C\u002Fh3>\n\u003Cp>This plugin relies on the CleanMod moderation service (https:\u002F\u002Fcleanmod.dev) to analyze and moderate comments. When a new comment is submitted on your WordPress site, the comment text is sent to CleanMod’s API for moderation analysis.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Service Provider:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fcleanmod.dev\" rel=\"nofollow ugc\">CleanMod\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Terms of Use:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fcleanmod.dev\u002Fterms\" rel=\"nofollow ugc\">https:\u002F\u002Fcleanmod.dev\u002Fterms\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Privacy Policy:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fcleanmod.dev\u002Fprivacy\" rel=\"nofollow ugc\">https:\u002F\u002Fcleanmod.dev\u002Fprivacy\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>By using this plugin, you acknowledge that comment data will be transmitted to CleanMod’s servers for moderation purposes. By default, CleanMod saves only the comment hash and not the text itself. Please review CleanMod’s terms of use and privacy policy to understand how your data is handled.\u003C\u002Fp>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Ch4>API Key\u003C\u002Fh4>\n\u003Cp>Get your API key from the \u003Ca href=\"https:\u002F\u002Fcleanmod.dev\u002Fdashboard\u002Fapi-keys\" rel=\"nofollow ugc\">CleanMod dashboard\u003C\u002Fa>.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Navigate to \u003Ccode>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> CleanMod\u003C\u002Fcode> in WordPress admin\u003C\u002Fli>\n\u003Cli>Enter your CleanMod API key\u003C\u002Fli>\n\u003Cli>Enable the plugin\u003C\u002Fli>\n\u003Cli>Configure moderation behavior\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Moderation Behavior\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>When decision is “flag”:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>No change\u003C\u002Fstrong>: Comment passes through normally (respects WordPress default settings)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hold for moderation\u003C\u002Fstrong>: Comment is held pending manual review\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>When decision is “block”:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Hold for moderation\u003C\u002Fstrong>: Comment is held pending manual review\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mark as spam\u003C\u002Fstrong>: Comment is automatically marked as spam\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>WordPress 5.0 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.4 or higher\u003C\u002Fli>\n\u003Cli>Valid CleanMod API key\u003C\u002Fli>\n\u003C\u002Ful>\n","Uses CleanMod to detect toxic comments and automatically hold or block them.",124,[71,19,100,21,22],"content-moderation","https:\u002F\u002Fgithub.com\u002Fshlomizadok\u002Fcleanmod-wp","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcleanmod.0.1.0.zip","2026-03-15T10:48:56.248Z",{"slug":105,"name":106,"version":107,"author":108,"author_profile":109,"description":110,"short_description":111,"active_installs":13,"downloaded":112,"rating":13,"num_ratings":13,"last_updated":113,"tested_up_to":15,"requires_at_least":68,"requires_php":50,"tags":114,"homepage":50,"download_link":119,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27},"email-validator-for-comments","Email Validator for Comments","1.8.3","Security Insight","https:\u002F\u002Fprofiles.wordpress.org\u002Fsecurityinsight\u002F","\u003Cp>\u003Cstrong>Stop fake or misused emails in your comment section.\u003C\u002Fstrong>\u003Cbr \u002F>\nThis plugin prevents spam and ensures valid email ownership by requiring users to confirm their email address before a comment is submitted.\u003C\u002Fp>\n\u003Cp>When a user leaves a comment, they’ll receive a one-time confirmation link by email. Their comment won’t appear until they click the link — no accounts, no passwords and no friction for real users.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Why Use It?\u003C\u002Fstrong>\u003Cbr \u002F>\n– Improves trust and deliverability.\u003Cbr \u002F>\n– Cuts down on abuse, spam and bot activity.\u003Cbr \u002F>\n– Ensures email addresses actually belong to the commenter.\u003Cbr \u002F>\n– Comments from verified users go straight to approved or pending in the future.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Email confirmation required before comment is accepted.\u003C\u002Fli>\n\u003Cli>Comments with unconfirmed emails are automatically deleted after 3 days.\u003C\u002Fli>\n\u003Cli>One-time confirmation — verified commenters skip confirmation next time.\u003C\u002Fli>\n\u003Cli>Lightweight, secure, and privacy-friendly.\u003C\u002Fli>\n\u003Cli>Admin tool to manually clear all verified email records.\u003C\u002Fli>\n\u003Cli>No account creation required.\u003C\u002Fli>\n\u003Cli>No third-party services or API keys needed.\u003C\u002Fli>\n\u003Cli>Only one confirmation email sent per hour to a single email address to prevent abuse.\u003C\u002Fli>\n\u003C\u002Ful>\n","Blocks comment submission until the user confirms their email address with a one-time link. No accounts or captchas required.",235,"2025-08-07T18:20:00.000Z",[115,19,116,117,118],"comment-moderation","email-confirmation","email-verification","spam-prevention","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Femail-validator-for-comments.1.8.3.zip",{"attackSurface":121,"codeSignals":262,"taintFlows":294,"riskAssessment":322,"analyzedAt":330},{"hooks":122,"ajaxHandlers":258,"restRoutes":259,"shortcodes":260,"cronEvents":261,"entryPointCount":13,"unprotectedCount":13},[123,128,134,138,143,147,151,156,158,161,165,168,172,175,178,182,187,191,195,199,202,205,208,213,215,218,222,227,229,233,235,239,243,247,251,253,256],{"type":124,"name":125,"callback":126,"file":127,"line":56},"action","plugins_loaded","closure","ghost-comment-manager.php",{"type":129,"name":130,"callback":131,"file":132,"line":133},"filter","manage_edit-comments_columns","add_col","inc\\Admin\\ListTableColumns.php",12,{"type":124,"name":135,"callback":136,"priority":83,"file":132,"line":137},"manage_comments_custom_column","render_col",13,{"type":124,"name":139,"callback":140,"file":141,"line":142},"admin_notices","maybe_show_notice","inc\\Admin\\Notice.php",8,{"type":124,"name":144,"callback":145,"file":146,"line":83},"admin_enqueue_scripts","admin_assets","inc\\Base\\Enqueue.php",{"type":124,"name":148,"callback":149,"file":146,"line":150},"wp_enqueue_scripts","frontend_assets",11,{"type":124,"name":152,"callback":153,"file":154,"line":155},"comment_unapproved_to_approved","maybe_trust_on_approval","inc\\Comments\\AutoTrustManager.php",9,{"type":124,"name":157,"callback":153,"file":154,"line":83},"comment_approved_to_approved",{"type":124,"name":159,"callback":160,"priority":83,"file":154,"line":150},"wp_set_comment_status","maybe_trust_on_transition",{"type":129,"name":162,"callback":163,"file":164,"line":83},"bulk_actions-edit-comments","register_bulk","inc\\Comments\\BulkActions.php",{"type":129,"name":166,"callback":167,"priority":83,"file":164,"line":150},"handle_bulk_actions-edit-comments","handle_bulk",{"type":124,"name":169,"callback":170,"file":171,"line":83},"restrict_manage_comments","toolbar_dropdown","inc\\Comments\\FiltersUi.php",{"type":129,"name":173,"callback":174,"file":171,"line":150},"comment_status_links","add_views_links",{"type":124,"name":176,"callback":177,"file":171,"line":133},"pre_get_comments","apply_filters",{"type":129,"name":179,"callback":180,"file":171,"line":181},"comments_clauses","pending_new_clauses",93,{"type":129,"name":183,"callback":184,"priority":83,"file":185,"line":186},"pre_comment_approved","maybe_auto_approve","inc\\Comments\\GhostPublisher.php",15,{"type":124,"name":188,"callback":189,"priority":83,"file":185,"line":190},"wp_insert_comment","maybe_mark_ghost",16,{"type":124,"name":192,"callback":193,"file":185,"line":194},"admin_post_gcmgr_confirm_ghost","confirm_ghost",17,{"type":129,"name":196,"callback":197,"priority":150,"file":185,"line":198},"comment_row_actions","add_confirm_action",18,{"type":129,"name":196,"callback":200,"priority":83,"file":201,"line":83},"add_row_actions","inc\\Comments\\RowActions.php",{"type":124,"name":203,"callback":204,"file":201,"line":150},"admin_post_gcmgr_trust","handle_trust",{"type":124,"name":206,"callback":207,"file":201,"line":133},"admin_post_gcmgr_untrust","handle_untrust",{"type":129,"name":209,"callback":210,"priority":155,"file":211,"line":212},"comment_text","maybe_wrap_ghost","inc\\Frontend\\RenderHooks.php",14,{"type":124,"name":214,"callback":140,"file":211,"line":194},"comment_form_before",{"type":129,"name":216,"callback":217,"priority":83,"file":211,"line":11},"comments_array","hide_ghosts_from_public",{"type":124,"name":219,"callback":220,"file":221,"line":133},"admin_menu","add_admin_pages","inc\\Pages\\Admin.php",{"type":124,"name":223,"callback":224,"file":225,"line":226},"admin_init","settings","inc\\Settings\\SettingsPage.php",7,{"type":124,"name":219,"callback":228,"file":225,"line":142},"submenu",{"type":124,"name":230,"callback":231,"file":232,"line":186},"comment_form_after_fields","render_hidden_fields","inc\\Shield\\ShieldLite.php",{"type":124,"name":234,"callback":231,"file":232,"line":190},"comment_form_logged_in_after",{"type":129,"name":236,"callback":237,"priority":46,"file":232,"line":238},"preprocess_comment","preprocess",19,{"type":124,"name":240,"callback":241,"priority":155,"file":232,"line":242},"pre_comment_on_post","rate_limit",22,{"type":129,"name":244,"callback":245,"priority":83,"file":232,"line":246},"wp_allow_comment","catch_duplicate_from_core",25,{"type":124,"name":248,"callback":249,"file":250,"line":83},"show_user_profile","render","inc\\Users\\ProfileField.php",{"type":124,"name":252,"callback":249,"file":250,"line":150},"edit_user_profile",{"type":124,"name":254,"callback":255,"file":250,"line":133},"personal_options_update","save",{"type":124,"name":257,"callback":255,"file":250,"line":137},"edit_user_profile_update",[],[],[],[],{"dangerousFunctions":263,"sqlUsage":264,"outputEscaping":266,"fileOperations":292,"externalRequests":13,"nonceChecks":142,"capabilityChecks":212,"bundledLibraries":293},[],{"prepared":142,"raw":13,"locations":265},[],{"escaped":267,"rawEcho":133,"locations":268},63,[269,272,273,275,276,278,280,282,284,286,288,290],{"file":225,"line":270,"context":271},89,"raw output",{"file":225,"line":25,"context":271},{"file":225,"line":274,"context":271},109,{"file":225,"line":98,"context":271},{"file":225,"line":277,"context":271},133,{"file":225,"line":279,"context":271},140,{"file":225,"line":281,"context":271},147,{"file":225,"line":283,"context":271},154,{"file":225,"line":285,"context":271},163,{"file":225,"line":287,"context":271},170,{"file":225,"line":289,"context":271},174,{"file":232,"line":291,"context":271},38,2,[],[295,314],{"entryPoint":296,"graph":297,"unsanitizedCount":13,"severity":313},"maybe_show_notice (inc\\Admin\\Notice.php:11)",{"nodes":298,"edges":310},[299,304],{"id":300,"type":301,"label":302,"file":141,"line":303},"n0","source","$_GET (x3)",52,{"id":305,"type":306,"label":307,"file":141,"line":308,"wp_function":309},"n1","sink","echo() [XSS]",65,"echo",[311],{"from":300,"to":305,"sanitized":312},true,"low",{"entryPoint":315,"graph":316,"unsanitizedCount":13,"severity":313},"\u003CNotice> (inc\\Admin\\Notice.php:0)",{"nodes":317,"edges":320},[318,319],{"id":300,"type":301,"label":302,"file":141,"line":303},{"id":305,"type":306,"label":307,"file":141,"line":308,"wp_function":309},[321],{"from":300,"to":305,"sanitized":312},{"summary":323,"deductions":324},"The ghost-comment-manager plugin v0.1.5 exhibits a generally strong security posture based on the provided static analysis.  A significant positive is the complete absence of SQL injection vulnerabilities, as 100% of SQL queries utilize prepared statements.  Furthermore, the plugin demonstrates good practices regarding output escaping, with 84% of outputs properly escaped.  The presence of nonce and capability checks on all identified entry points indicates a thoughtful approach to authorization and security.  The vulnerability history is also a strong positive, showing zero known CVEs, which suggests a well-maintained and secure codebase historically.",[325,328],{"reason":326,"points":327},"Some outputs are not properly escaped",4,{"reason":329,"points":292},"Two file operations present without further context","2026-03-16T23:03:06.575Z",{"wat":332,"direct":343},{"assetPaths":333,"generatorPatterns":337,"scriptPaths":338,"versionParams":339},[334,335,336],"\u002Fwp-content\u002Fplugins\u002Fghost-comment-manager\u002Fassets\u002Fcss\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Fghost-comment-manager\u002Fassets\u002Fjs\u002Fadmin.js","\u002Fwp-content\u002Fplugins\u002Fghost-comment-manager\u002Fassets\u002Fcss\u002Ffrontend.css",[],[335],[340,341,342],"ghost-comment-manager\u002Fassets\u002Fcss\u002Fadmin.css?ver=","ghost-comment-manager\u002Fassets\u002Fjs\u002Fadmin.js?ver=","ghost-comment-manager\u002Fassets\u002Fcss\u002Ffrontend.css?ver=",{"cssClasses":344,"htmlComments":348,"htmlAttributes":349,"restEndpoints":350,"jsGlobals":351,"shortcodeOutput":353},[345,346,347],"gcm-badge","gcm-badge-trusted","gcm-badge-ghost",[],[],[],[352],"gcmgrAdmin",[]]