Categories

Never Moderate Registered Users

Author: Scott Reilly
Version: 3.0
First released: 2010-09-13
Last update: 2026-06-29
Compatibility: WP 6.0 – 7.0.4
Download: [ zip ]
Description:

Never moderate or mark as spam comments made by registered users, regardless of the apparent spamminess of the comment.

Extended Description

This plugin prevents comments from registered users (or, alternatively, those with specified capabilities) from ever going into the moderation queue or getting automatically marked as spam, regardless of the apparent spamminess of the comment.

To be recognized as a registered user, the user must be logged into your site at the time they post their comment. The plugin applies to front-end submissions and authenticated REST API requests only; it does not affect comment imports, CLI tools, cron jobs, or other programmatic creation without a logged-in user.

This plugin assumes that you trust your registered users. It will automatically approve any comment made by registered users, even if the comment stinks of spam. Therefore, it is recommended that you do not allow users to register themselves (uncheck the setting “Anyone can register” in the WordPress admin under Settings -> General).

However, when open registration is enabled, the plugin automatically requires users to have a capability above the site’s default role before their comments bypass moderation or spam checks. For example, when the default role is subscriber, users must have at least the contributor role (which has the edit_posts capability). You can customize this behavior using the ‘c2c_never_moderate_registered_users_open_registration_caps’ filter. See the developer documentation for details.

You can further restrict which users bypass moderation by enabling “Trust only privileged users to bypass comment moderation and spam checks” on the Settings -> Discussion admin page. That setting requires users to be able to publish posts or moderate comments before their comments bypass moderation or spam checks. You can also use the ‘c2c_never_moderate_registered_users_caps’ filter to specify trusted roles and capabilities in custom code. See the FAQ for an example.

This plugin is a partial successor to my now-defunct Never Moderate Admins or Post Author plugin. The primary purpose of that plugin was to prevent admins and the post’s author from being moderated. WordPress eventually integrated that functionality. However, that plugin also allowed you to prevent registered users from being moderated, which is still a valid need not directly facilitated by WordPress, thus this plugin was spun out.

Links: Plugin Homepage | Plugin Directory Page | GitHub | Author Homepage

Developer Documentation

Developer documentation can be found in DEVELOPER-DOCS.md. That documentation covers the numerous hooks provided by the plugin. Those hooks are listed below to provide an overview of what’s available.

  • c2c_never_moderate_registered_users_open_registration_caps : Customize the capabilities required to bypass moderation when open registration is enabled.
  • c2c_never_moderate_registered_users_privileged_caps : Customize the capabilities that identify privileged users when the Discussion setting is enabled.
  • c2c_never_moderate_registered_users_caps : Customize the capabilities that are automatically trusted, any one of which a user must have in order to never get moderated.
  • c2c_never_moderate_registered_users_approved : Customize granular control for whether a comment by a registered user that would otherwise be moderated or marked as spam should automatically be approved.
  • c2c_never_moderate_registered_users_auto_approved : Fires when the plugin auto-approves a comment that would otherwise have been moderated or marked as spam.

Find out more at the plugin’s WordPress Plugin Repository page.

Installation

  1. Install via the built-in WordPress plugin installer. Or install the plugin code inside the plugins directory for your site (typically /wp-content/plugins/).
  2. Activate the plugin through the ‘Plugins’ admin menu in WordPress
  3. Optional: Enable “Trust only privileged users to bypass comment moderation and spam checks” on the Settings -> Discussion admin page if you want to limit the feature to users who can publish posts or moderate comments.
  4. Optional: Use one or more of the provided hooks in custom code to control specific capabilities that should be exempted from moderation and spam or to control the feature on a comment-by-comment basis.

Release Log

3.0 (2026-06-19)

  • Change: Don’t consider the default role on open registration sites as trusted
    • When open registration is enabled, require a minimum capability above the site’s default role before bypassing moderation or spam checks
    • Closed registration sites are unaffected
  • New: Add c2c_never_moderate_registered_users_open_registration_caps filter to customize open registration trust requirements
  • New: Add “Trust only privileged users” checkbox to Settings > Discussion
    • Requires the publish_posts or moderate_comments capability before bypassing moderation or spam checks
    • Replaces default trust behavior, including the open registration minimum capability, when enabled
  • New: Add c2c_never_moderate_registered_users_privileged_caps filter to customize privileged user capabilities
  • New: Add c2c_never_moderate_registered_users_auto_approved action that fires when a comment is auto-approved by the plugin
  • Change: Limit auto-approval
    • Process front-end and authenticated REST API requests (as always)
    • Now ignore import, CLI, cron, and other programmatic creation without a session; default WP handling will apply
  • Change: Ensure the comment’s user_id matches the logged-in user
  • New: Add function to get the version of the plugin
  • Fix: Correctly check for user existence
  • Change: Reorganize plugin into namespaced classes under includes/
    • Trust_Policy for capability and trust logic
    • Comment_Moderator for the pre_comment_approved filter
    • Admin_Settings for the Discussion settings UI
    • Hooks and Options for hook and option name constants
  • Change: Remove global helper functions and function_exists() guards
  • Change: Use exit instead of die() when bailing on direct file invocation
  • Change: Tweak extended description in readme.txt
  • Change: Document that c2c_never_moderate_registered_users_approved may run twice per front-end submission since WP 6.7
  • Change: Note compatibility through WP 7.0+
  • Change: Drop compatibility for WordPress versions older than 6.0
  • Change: Require at least PHP 8.0+ and note compatibility through PHP 8.5+
  • Change: Add ‘Requires at least’ and ‘Requires PHP’ headers to main plugin file
  • Change: Update copyright date (2026)
  • Change: Remove unused global
  • Change: Fix minor documentation typos or omissions

2.3.6 (2025-04-14)

  • Change: Note compatibility through WP 6.8+
  • Change: Note compatibility through PHP 8.3+
  • Change: Update copyright date (2025)

2.3.5 (2024-08-21)

  • Change: Shorten plugin description
  • Change: Note compatibility through WP 6.6+
  • Change: Update copyright date (2024)
  • Change: Reduce number of ‘Tags’ from readme.txt
  • Change: Remove development and testing-related files from release packaging

Copyright & Disclaimer

Copyright © 2010-2026 by Scott Reilly (aka coffee2code)

This program is free software; you can redistribute it and/or
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.

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.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Discussion / Support

Have any questions, comments, or suggestions? Please provide them via the plugin’s WordPress.org support forum. I’ll do my best to reply in a timely fashion and help as best I can.

Unfortunately, I cannot provide guaranteed support, nor do I provide support via any other means.

Was this plugin useful useful to you? Consider giving it a rating. If you’re inclined to give it a poor rating, please first post to the support forum to give me a chance to address or explain the situation.

One reply on “Never Moderate Registered Users”