Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Log into your WordPress admin (i.e., your dashboard)
Go to Plugins->Add New
Go to Upload New
Find the plugin zip (from your downloads section)
Activate the plugin
After activation, you will be taken to the plugin's settings screen.
Download the plugin zip file from .
Unzip the plugin zip in a place you can remember for the next steps
Log into your FTP program of choice for your website
Upload the unzipped folder into wp-content/plugins
After activation, you will be taken to the plugin's settings screen.
One requested feature was for allowing the timer to be canceled when a user is done editing.
If the timer is available, a "Cancel Timer" button will be shown.
Clicking "Cancel Timer" will stop editing for the comment.
Setting a license is required if you choose to want support and plugin updates.
Simply enter your license key and you'll receive feedback if the license is valid.
After a successful license, you'll see your subscription and license status.
You can also opt-in to beta releases.
If you have any issues setting your license, please .
Log into your admin dashboard
Head to the plugins screen
Search for Comment Edit Pro
Activate the plugin






Comment Edit Pro supports Akismet, reCAPTCHA 3, and Cloudflare Turnstile for spam protection.
Akismet Spam ProtectionreCAPTCHA 3 SupportCloudflare TurnstileWebhooks allow you to talk to third-party services when a comment is posted
When clicking on "Add New Webhook", a modal will display which will have the webhook options.
You'll need to add in a webhook URL, a request method, and request format.
Please refer to your webhook documentation on what the webhook is compatible with.
You're also able to set the Request Headers and Request Body. Your webhook documentation will have the parameters that you should set.
Finally, you can configure what triggers the webhook. By default, Comment Edit Pro will ping the webhook on approved and pending comments.
When editing a comment in the admin, you'll see a Webhooks section and it'll display the status of the webhook request.
Webhooks can be complicated, so if you run into any issues, please contact support.
Check out the integrations to third-party services
You can find existing integrations by visiting the Integrations tab in Comment Edit pro.
You'll find two available services:
ConvertKit
Mailchimp
Slack
Quickly disable comments and set the comment field defaults.
With the advanced settings, you can configure Comment Edit Pro to do some basic protection.
You're also able to set the various comment HTML settings.
If you're under attack by a spammer or you just need to disable comments for a while, you can use this option.
If you wish to hide all comments on your site, you can select this option.
Not recommended: Please don't disable this on a production site as it will expose you to spam.
If you need to disable spam protection for any reason, you can check this option.
Some of the integrations require knowledge of the HTML structure of your comment section. This section allows you to let Comment Edit Pro know about the comment structure.
If you need any help with this, .
Enabling comment editing is a great way for users to fix their own mistakes when leaving a comment.
As of Comment Edit Pro 3.0, there is no longer a requirement to have Comment Edit Lite installed. However, if you want comment editing, Comment Edit Lite must be activated.
reCAPTCHA 3 is an invisible captcha for your comment form
You can find reCAPTCHA in the Integrations tab for Comment Edit Pro.
Visit the documentation above on how to create your reCAPTCHA 3 keys. The interface will look like this:
If you don't want to show reCAPTCHA 3 for your logged-in users, you can check this option.
For advanced users, if you have a different comment form ID and/or submit button ID, you can enter those here (without the # sign).
reCAPTCHA ranks submissions on a scale of 0-1, with 1 being the best score.
By default, this is set to 0.5, but you can set this higher or lower depending on your audience.
Receive a Slack Notification for New and Edited Comments
Slack integration is now available for Comment Edit Pro. You can receive a Slack notification for new comments, and even edited comments.
To retrieve your Webhook URL for Slack, please follow the first 3 steps in the guide below.
Once your Slack webhook is set up and configured, you can now receive notifications each time a new comment is posted.
You can also choose to have comments in moderation sent, and also allow notifications upon an edited comment.
Allow commenters to mention other users in their comments
Enabling @ Mentions in the comment section allows others to mention people in their comments.
@ Mentions is in Beta: This feature has a lot of moving parts and it was decided to release the feature while it is still working out the finer details.
In addition, people who leave comments can opt-in to receiving notifications if someone has mentioned them in a comment.
If you are on the plugin's screen, search for Comment Edit Pro and click on the Settings link.
Alternatively, in the admin menu, head to Settings->Comment Edit Pro.
Set the comment status for each post type.
For each post type on the site, you can:
Hide the Comment Section
Enable discussion settings by default (for new items only)
You can modify any text string that is shown to the end user in the translations section.
Comment Logging is taking an extra precaution when users edit their comments. If you have a long timer or unlimited editing enabled, logging will store all edits of a comment.
The edited comment is stored on the individual comment in the admin, and you can easily revert back to the original comment.
Force pingbacks open, closed, or leave as-is.
If you ever want to blanket show or hide comments, the per-post-type settings will prove beneficial.










Akismet Settings: With the Akismet plugin installed, you can find the Akismet settings under Settings->Akismet or with Jetpack, Jetpack->Akismet.
Some users use Akismet for purposes other than comments. If you don't want Akismet protection for comments, you can disable this.
If you want to skip Akismet protection for logged-in users, you can disable this option.
With comment editing, each edited comment is checked for spam when Akismet is enabled.
You can disable this option if you want Akismet protection turned off for edited comments.
You can disable Akismet from checking any new pingbacks or trackbacks.
Gravatar is a service for hosting user avatars. If a user has a valid Gravatar, they can skip the spam check.

Visit the Flodesk settings in the Integrations tab. Click on "Enable Flodesk." You'll be prompted to enter your Flodesk API key
Log into your Flodesk account and hover over your profile section. From there, head to Integrations.
Click on the API Keys tab to create a new API key.
When creating a new API key, you'll be presented with a modal, where you can copy your key.
Input your API Key and click on "Connect to Flodesk."
If your credentials are correct, you'll be able to select between adding subscribers to a segment.
You'll want to select at least one Segment to assign subscribers to.
Adding Custom Fields is straightforward. Just map each custom field to a comment field.
You can also add your own custom fields.
You can also set the sign-up label, and whether double-opt-in is enabled.
The user will see a Subscribe checkbox, and if they subscribe, the user will be sent an email for an opt-in request.
When you adjust the timer, new comments will be able to edit for the number of minutes you have set.


Here's what the user will see when they are leaving a fresh comment on your site:
Please see below for how Comment Character Control works.

With Unlimited Editing enabled, users are shown a "Click to Edit" button with no timer present.
Users will be able to edit their comment as long as unlimited editing is enabled.

With Comment Logging and Stats enabled, when a user leaves a comment, it is stored for reference so you can keep track of edits for a particular comment.
You can check out the edits for the comment, and even restore a previous edit.
Here's a quick demo of reverting a comment.















There are common actions for Comment Edit Pro.
sce_core_license_{$action}Fires when a license action is performed. This is a dynamic action where {$action} can be: check_license, activate_license, or deactivate_license.
Parameters:
array $response - Response of the license action.
Since: 1.0.0
Example:
sce_mentions_subscribe_after_scriptsFires after scripts are printed in the header on the subscribe page.
Parameters:
string $sce_mentions_theme_name - The theme name.
Since: 1.0.0
Example:
sce_mentions_subscribe_after_stylesFires after styles are printed in the header on the subscribe page.
Parameters:
string $sce_mentions_theme_name - The theme name.
Since: 1.0.0
Example:
sce_mentions_subscribe_body_openFires when the body tag opens on the subscribe page.
Example:
sce_mentions_subscribe_bodyFires inside the main content area of the subscribe page.
Example:
sce_mentions_unsubscribe_after_scriptsFires after scripts are printed in the header on the unsubscribe page.
Parameters:
string $sce_mentions_theme_name - The theme name.
Since: 1.0.0
Example:
sce_mentions_unsubscribe_after_stylesFires after styles are printed in the header on the unsubscribe page.
Parameters:
string $sce_mentions_theme_name - The theme name.
Since: 1.0.0
Example:
sce_mentions_unsubscribe_body_openFires when the body tag opens on the unsubscribe page.
Example:
sce_mentions_unsubscribe_bodyFires inside the main content area of the unsubscribe page.
Example:
You can modify how Comment Edit Pro looks on the frontend through the appearance settings.
Within the Appearance tab, you can:
Show or hide the timer
Set the timer to Words or Compact
Change the button theme
Change the loading image
By default, the timer is shown. However, if you don't want to display a timer at all, you can uncheck this option.
By default, the timer is shown as words.
You can also choose compact to appear more like a countdown.
By default, there are no frontend styles applied to the editing buttons. You can change this by selecting a button theme.
If you select any of the button themes, you'll be asked if you'd like to enable icons.
Enabling icons is recommended to give your buttons a nice boost in appearance with contextual icons.
By default, the editing interface and buttons has no styles.
However, there are three themes you can take advantage of to spruce up the editing interface.
Get Subscribers From Your Comment Section
Mailchimp is by far the largest provider for newsletters. Adding Mailchimp to your comment section is a no-brainer and is an easy way to get more subscribers through comments.
With Mailchimp enabled in , you'll see a checkbox just above the submit button.
You'll find Mailchimp in the Integrations tab in Comment Edit Pro. If you're setting it up for the first time, you'll see an enable toggle switch.
Once Mailchimp is enabled, you can enter your Mailchimp API key.
Once you have entered your API key, you will need to save the options so that you can select a list.
Once a list is selected, you can configure and save the options.
You can customize:
The sign-up label: this will show above the comment submit button.
The checked state: you can check or uncheck the sign-up option.
Checked by default: having the box checked may affect spam protection in some countries.
With Mailchimp set up, you will now see a checkbox above the submit button for subscribing to a list.
If this feature proves popular and users request it, there is a plan to allow a Mailchimp list per post setting.
Sometimes comments are left in haste or in the moment, and the user would simply like to remove the comment rather than edit it. Allowing users to delete their comments is a nice way of self-policing their comments.
When a user edits a comment, they will see a button allowing them to delete their own comment.
When a user chooses to delete their own comment, a confirmation is shown.
The "Delete Only" option is designed to only show the Delete option when editing a comment. The Edit button isn't visible, but a Delete option instead.
When editing their comment, the Delete button is shown.
By default, a confirmation is shown to the user to prevent accidental clicks.
You can disable or enable this confirmation by toggling the setting.
Here is the behavior of a user deleting a comment.
As you can see, when a user deletes a comment, a status update shows and the comment is removed from view.
Expire your comments when posts are inactive, not just after several days.
The default behavior of WordPress is to expire a post after 14 days. This feature changes that up.
You can now set up expiration based on post activity. If a post gets updated, or a new comment is posted, the clock resets.
Since expiration goes off of last activity, the number of days will be the amount without any activity.
You can choose to enable this feature for some post types or all post types.
By enabling per-post overrides, each post, page, or post type will have a sidebar option so that you can set the expiration at the post label.
Protect your user's privacy by hiding their avatar
By default, WordPress will show a comment avatar next to a comment based on a user's email address.
These avatars are powered by .
With Gravatar Privacy Protection enabled, a commenter can choose not to display their avatar when their comment is loaded.
If you enable email notifications, you will receive an email with a before and after of the comment edit.
Within this section you can:
Enable email notifications
Set an email address to send the comments to


























// For check_license action
add_action( 'sce_core_license_check_license', function( $response ) {
// Log the license check response
error_log( 'License check: ' . print_r( $response, true ) );
} );
// For activate_license action
add_action( 'sce_core_license_activate_license', function( $response ) {
// Perform custom action when license is activated
if ( isset( $response['success'] ) && $response['success'] ) {
// License activated successfully
}
} );add_action( 'sce_mentions_subscribe_after_scripts', function( $theme_name ) {
// Add custom inline script after header scripts
echo '<script>console.log("Subscribe page loaded");</script>';
} );add_action( 'sce_mentions_subscribe_after_styles', function( $theme_name ) {
// Add custom inline styles after header styles
echo '<style>.custom-class { color: red; }</style>';
} );add_action( 'sce_mentions_subscribe_body_open', function() {
// Add custom content at the start of the body
echo '<div class="custom-wrapper">';
} );add_action( 'sce_mentions_subscribe_body', function() {
// Add custom content to the subscribe page body
echo '<p>Thank you for subscribing!</p>';
} );add_action( 'sce_mentions_unsubscribe_after_scripts', function( $theme_name ) {
// Add custom inline script after header scripts
echo '<script>console.log("Unsubscribe page loaded");</script>';
} );add_action( 'sce_mentions_unsubscribe_after_styles', function( $theme_name ) {
// Add custom inline styles after header styles
echo '<style>.custom-class { color: blue; }</style>';
} );add_action( 'sce_mentions_unsubscribe_body_open', function() {
// Add custom content at the start of the body
echo '<div class="custom-wrapper">';
} );add_action( 'sce_mentions_unsubscribe_body', function() {
// Add custom content to the unsubscribe page body
echo '<p>You have been unsubscribed successfully.</p>';
} );After a user checks the opt-in box, the avatar will be hidden.


Set an email address for the "From" field in the email.
Set the subject of the email
Recommended SMTP (Email) Plugin: WP Mail SMTP.
Here is a sample of the emails you will receive.
As you can see, the email contains the original comment and the edited one.
With logs enabled, you can also see a history of all the edits a commenter makes.






















Insert a comment form manually using a shortcode.
sce_comment_form ShortcodeThe sce_comment_form shortcode outputs the native WordPress comment form anywhere shortcodes are supported (Classic Editor, widgets, template content, etc.).
It mirrors WordPress’s built-in comment_form() functionality while adding control over where and how many comment forms appear, including support for multiple forms on a single page and cross-posting comments to a different post or page.
Outputs the default WordPress comment form for the current post.
comment_form() AttributesThis shortcode also supports all standard comment_form() arguments, including but not limited to:
id_form
id_submit
class_container
class_form
These are passed directly through to WordPress’s comment_form() function.
See for arguments. Non-array/object values can be passed straight through.
Outputs the default comment form for the current post.
Comments submitted through this form will be attached to post ID 42, regardless of where the shortcode appears.
Use case: Landing pages, sales pages, or hubs that funnel discussion to a single post.
Prevents the comment form from appearing on comment pagination pages such as:
Ensures that only the first rendered comment form is displayed, even if:
The theme outputs a comment form
Another shortcode instance appears later
Another plugin adds a comment form
Suppresses all comment forms on the page.
Use case: Temporarily disabling comments on specific pages without changing global discussion settings.
Useful for targeting the form with custom CSS or JavaScript.
The shortcode uses WordPress’s native comment_form() internally, ensuring compatibility with:
Core comment handling
Themes
Anti-spam plugins
This shortcode is especially useful when:
You’re working on Classic Editor or shortcode-based layouts
You need multiple comment forms on a single page
You want comments submitted to a different post
You want precise control over when and where comment forms appear
Get MailerLite Subscribers From Your Comment Section
MailerLite is a more polished and fully featured newsletter solution designed for marketers. It's also much easier to use than most newsletter solutions.
This guide works for the newer version of MailerLite. Please see the MailerLite Classic documentation on how to connect MailerLite Classic to your comment section.
Visit the MailerLite settings in the Integrations tab. Click on "Enable MailerLite." You'll be prompted to enter your MailerLite API key.
Log into your MailerLite account and find the Integrations tab on the left.
Find the section for API and click the "Use" button.
One on the APIs screen, click the button for "Generate New Token."
Name the token something memorable and create the token.
Once you've clicked on "Create Token", you're presented with your token (API key). Save this somewhere you can access it later such as in a password manager. You'll use this token in the Comment Edit Pro MailerLite integration settings.
Input your API Key and click on "Connect to MailerLite."
Groups are like tags, and if you have any, they'll be listed in this section.
You can also add your own Groups (tags) and refresh them if they are updated elsewhere.
With Custom Fields, you can map all of your MailerLite fields to the various comment fields available.
You're also able to refresh your Fields and add in new ones. If you need to delete any fields, I recommend doing so in the MailerLite interface.
You can also set the sign-up label, whether to enable double-optin, and to have the signup checkbox enabled or disabled by default.
The user will see a Subscribe checkbox; if they subscribe, they will be sent an email for an opt-in request.
If the user subscribes, you will be able to view the subscriber and see all of the mapped custom fields and groups.
It'll also have an opt-in date should you choose to disable double opt-in.
Enable custom avatars to add some fun to your comment section
Enabling comment avatars is simple. By default, the comment system uses a service called Gravatars. Not everyone has a Gravatar, so this functionality will allow all users to have their own avatars.
Gravatars and Privacy: Gravatars can potentially leak privacy information if your Gravatar is public and you attempt to leave an anonymous comment using your regular email address. Custom avatars hopes to solve this issue.
You can disable/enable avatars for Logged-in users and Anonymous users.
Further options allow you to customize the avatar size, and change the label that prompts the user to change their avatar.
When leaving a comment, you and your users can select an avatar to associate with your comment.
User selected avatars will show up in the comments section.
Logged-in users can edit their avatars at any time by clicking on their avatar in the comments section.
An admin or someone who can moderate comments can also change a commenter's avatar in the comments section in the admin.
Tools help make your commenting life much better.
There are several tools in Comment Edit Pro, with more to come. Currently there are two tools available, which allow you to set a comment expiration based on post activity, and the ability to enable/disable comments site-wide per post type.
Comment Expiration by Post ActivityComment ShortcutsPost Type Comment SettingsTurnstile is Cloudflare's non-interactive Captcha and is an alternative to reCAPTCHA 3.
is an alternative to reCAPTCHA 3 and is a non-interactive captcha replacement.
Turnstile can be used even if you do not host your sites with Cloudflare.
It works by sending a "challenge", and if that challenge succeeds, you should be able to complete an action (e.g., submitting a comment).
The challenge is dynamic, so if a particular challenge isn't effective anymore, the Turnstile widget can adapt to a new challenge automatically without having to do anything.










post
integer | null
null
The post ID the comment form should submit comments to. Defaults to the current post if not set.
class_submit
name_submit
Comment moderation workflows
Output buffering is used to safely capture and suppress additional comment forms when requested.
Multiple shortcode instances are supported on the same page.
Creating a block would be unnecessary or redundant
hide_secondary_comment_forms
boolean
false
Hides all other comment forms rendered after this one. Useful when multiple comment forms exist on a page.
hide_on_comment_pagination
boolean
false
Hides the comment form when viewing paginated comment pages (?cpage=2, etc.).
hide_all_comment_forms
boolean
false
Prevents any comment form from rendering (including this shortcode instance).
[sce_comment_form][sce_comment_form][sce_comment_form post="42"][sce_comment_form hide_on_comment_pagination="true"]/post-name/?cpage=2[sce_comment_form hide_secondary_comment_forms="true"][sce_comment_form hide_all_comment_forms="true"][sce_comment_form
id_form="custom-comment-form"
class_form="my-comment-form"
class_submit="my-submit-button"
]Visit the ConvertKit settings in the Integrations tab. Click on "Enable ConvertKit." You'll be prompted to enter your ConvertKit API key and secret key.
Log in to your ConvertKit account and go to the settings screen, which you can get to by clicking on your avatar on the top right.
Once on the settings page, scroll down until you see the Advanced section. Click on the Advanced section to get your API keys.
You will then be presented with your API Key and API Secret. These keys are what you would input into the ConvertKit integration.
Input your API Key and Secret Key into the settings and click on "Connect to ConvertKit."
If your credentials are correct, you'll be able to select between adding subscribers to a form, or add subscribers to just tags.
If you are choosing the form route, simply click on the form you'd like the subscribers added to.
Using Tags: if you choose to use Tags instead of forms, please be aware that users will be added without the 2nd opt-in in the double-opt-in workflow.
Additionally, you can add tags to the subscribers. If a tag doesn't exist, you can create a new one.
Adding Custom Fields to subscribers allows you to pass on extra information about that user to ConvertKit.
When you view a user's profile, these custom fields will be present.
You can also use custom values for the custom field. Just select "Custom Value" from the dropdown and you'll be presented with a text box. Click the "X" button to go back to the dropdown.
The last options allow you to set what the user sees on the frontend. You can set the opt-in checkbox text, and also whether the checkbox is enabled by default. To comply with spam rules, it is highly recommended to have this unchecked. Most countries require double-opt-in.
The users see a subscribe checkbox above the comment submit button.
Once the comment is posted, the commenter is sent a subscribe email.
If all is well, the subscriber is added to ConvertKit with the custom fields and tags associated with the subscriber.
Most themes display an "Edit" link when you are logged in and viewing a comment on the frontend.
The default behavior is to take you to the backend comments section.
Comment Edit Pro overrides this behavior and launches a modal where you can edit the comment without having to visit the admin.
If you are logged in and the author of the post or an Editor/Admin, you can simple click the "Edit" link for the individual comment.
Frontend editing depends on having an "Edit" button in the individual comment. If your theme does not provide this button, frontend editing will not work.
Here's a quick demo of frontend editing in action.
When the modal launches, you can edit just about every aspect of the comment.
The following features are available in the popup modal:
Edit the commenters name, email address, and URL
Edit the comment
Change the comment status (approved, pending, spam)
Delete the comment
A shortcut to the comment in the admin
The frontend moderation menu is a small meatball icon on the frontend of a comment.
It expands to reveal editing options:
Editing a comment
Approving a comment
Marking a comment as pending (moderated)
Marking a comment as spam
Deleting a comment
The moderation menu is designed for quick actions, but hidden in a way that isn't so obtrusive.
There are three themes available:


When enabling Turnstile, you can choose to enable it for logged-in users.
You'll also be prompted to retrieve a "Sitekey" and "Secret Key."
Turnstile's Getting Started section can help you retrieve your sitekey and secret key.
Additional options allow you to determine:
The language used (set to Auto for auto-detection)
The widget appearance (light or dark mode)
The widget size (compact or normal)
The final option, the Submit button ID, is so we can add Turnstile to the submit button on your comment form. Since every comment form is unique, you'll have to input the ID for the submit button if it's not a standard comment section.
When a user starts typing into the comment textarea, Turnstile is initiated.
A Turnstile widget is shown and if successful, it'll pass a token back.
Comment Edit Pro takes this token and verifies it when the comment is submitted.
















Get MailerLite Subscribers From Your Comment Section
If you want to add MailerLite to your comment form but have yet to migrate to the newer version, you can use the Classic option to connect to MailerLite.
Visit the MailerLite settings in the Integrations tab.
Click on "Enable MailerLite." You'll be prompted to whether to enable MailerLite Classic.
You'll want to enable to Toggle for "Enable MailerLite Classic."
Log into your MailerLite account and hover over your profile and find the Integrations section.
Find the section for API and click the "Use" button.
One on the APIs screen, you'll find your API key. You may need to create one if it doesn't exist yet.
Input your API Key and click on "Connect to MailerLite."
Groups are like tags, and if you have any, they'll be listed in this section.
You can also add your own Groups (tags) and refresh them if they are updated elsewhere.
With Custom Fields, you can map all of your MailerLite fields to the various comment fields available.
You're also able to refresh your Fields and add in new ones. If you need to delete any fields, I recommend doing so in the MailerLite interface.
You can also set the sign-up label, whether to enable double-optin, and to have the signup checkbox enabled or disabled by default.
The user will see a Subscribe checkbox. If they subscribe, they will receive an email with an opt-in request.
A successful subscriber adds the user to the correct groups and data mapped.
Enable some shortcuts, which are added to existing menu items unobtrusively.
Comment Shortcuts enable comment-related items that are shown in existing admin menu items.
For example, there is the Comments menu in the left sidebar. With Comment Shortcuts, you can add the main comment tabs in order to save you a few clicks.
You can configure what displays by heading to the Tools menu and clicking on Comment Shortcuts.









Here is a brief description of the available admin tabs.
The home tab displays the license status and has a card view of the major features of Comment Edit Pro. Each card has a shortcut to the admin panel setting.
The Avatars tab allows you to configure Comment Avatars and Gravatar Privacy Protection.
Comment Character Control enables a horizontal character meter below your comment form. It notifies the user of a comment that's too short or too long.
The Comment Editing options allow you to adjust how comment editing works for your users. You can enable Frontend editing, unlimited editing for logged-in users, set up email alerts, and even modify the translations.
The Integrations tab contains a few integrations such as Mailchimp and Slack integration.
With Mailchimp, you can get subscribers when users leave comments. For Slack, you can receive an alert for new comments.
The License screen allows you to input your Comment Edit Pro license so you can receive updates and support.
@ Mentions allows you to configure mentions in your comments section. Users can interact with other commenters, and commenters can opt-in to be alerted when they are mentioned.
Spam Protection currently supports three services:
Akismet
Cloudflare Turnstile
Google reCAPTCHA 3
These are all optional services and you should be fine if you have your own spam protection mechanisms.
Webhooks allow you to ping third-party services when comments are posted. If you would like an automatic workflow for comments, then connecting to a third-party service via a webhook is a perfect way to manage your comments.



From there, you can configure what displays, and even enable or disable the Count Bubbles next to each menu item.
The next option allows you to hide the comments menu bar item in the admin bar.
You can hide the menu item with one click. If you do have the admin bar item enabled, the next section will cover shortcuts within the admin bar item itself.
When in the admin, you can hover over the Comments admin bar menu item and see the available shortcuts, which are very similar to the options shown in the admin sidebar.
In the admin bar in the admin, you can view:
Approved comments
Pending comments
Spam comments
Trash comments
On the frontend, there are several more options if you are viewing a post with comments.
In addition to the shortcuts to the site's comments, there are several Post Shortcuts.
View approved comments for the post
View pending comments for a post
View spam comments for a post
View trashed comments for a post
There are several advanced options as well:
Close or open comments for a post
Hide or show comments for a post
Delete post comments
You can adjust what is shown in the admin bar through the shortcut options.
If you're ever in a situation where you need to remove all of the post's comments, you can do so with the Delete Post Comments shortcut.
It'll pop-up a modal where you can confirm deletion, and even skip the trash for the deleted comments.
The delete option will delete 30 comments at a time in order to not timeout on your server.



































Extend Comment Edit Pro programatically.
sce_button_extra_stop_timerFilter the SVG content for the stop timer button.
Parameters:
string $stop_timer_svg - The SVG content for the stop timer button. Default: empty string.
Return: string - The filtered SVG content.
Example:
sce_webhook_post_type_argsFilter the post type arguments used when registering the webhook post type.
Parameters:
array $post_type_args - Post type arguments prior to registering the post type.
Return: array - The filtered post type arguments.
Since: 3.0.0
Example:
sce_core_license_data_{$action}Filter the license data response for a specific action. This is a dynamic filter where {$action} can be: check_license, activate_license, or deactivate_license.
Parameters:
array $response - Response of the license action.
Return: array - The filtered license data.
Example:
sce_can_view_pending_commentsFilter to allow moderators to view pending comments.
Parameters:
bool $can_view_pending_comments - Whether to allow moderators to view pending comments. Default: true.
WP_Comment_Query $query - The comment query object.
Return: bool - Whether moderators can view pending comments.
Example:
sce_mentions_subscribe_body_textFilter the body text of the subscription success screen.
Parameters:
string $body - The body of the subscription success screen.
string $unsubscribe_url - The unsubscribe URL.
Return: string - The filtered body text.
Example:
sce_mentions_subscribe_templateFilter the template file path used for the subscription page.
Parameters:
string $template - The template file path.
Return: string - The filtered template file path.
Example:
sce_mentions_unsubscribe_body_textFilter the body text of the unsubscribe success screen.
Parameters:
string $body - The body of the unsubscribe success screen.
Return: string - The filtered body text.
Example:
sce_mentions_unsubscribe_templateFilter the template file path used for the unsubscribe page.
Parameters:
string $template - The template file path.
Return: string - The filtered template file path.
Example:
sce_mentions_subscribe_scripts_headerFilter the script handles to print in the header on the subscribe page.
Parameters:
array $script_header_handles - Array of script handles to output. Default: empty array.
string $sce_mentions_theme_name - The theme name.
Return: array - Array of script handles.
Since: 1.0.0
Example:
sce_mentions_subscribe_styles_headerFilter the style handles to print in the header on the subscribe page.
Parameters:
array $style_header_handles - Array of style handles to output. Default: empty array.
string $sce_mentions_theme_name - The theme name.
Return: array - Array of style handles.
Since: 1.0.0
Example:
sce_mentions_subscribe_scripts_footerFilter the script handles to print in the footer on the subscribe page.
Parameters:
array $script_footer_handles - Array of script handles to output. Default: empty array.
string $eff_theme_name - The theme name.
Return: array - Array of script handles.
Since: 1.0.0
Example:
sce_mentions_unsubscribe_scripts_headerFilter the script handles to print in the header on the unsubscribe page.
Parameters:
array $script_header_handles - Array of script handles to output. Default: empty array.
string $sce_mentions_theme_name - The theme name.
Return: array - Array of script handles.
Since: 1.0.0
Example:
sce_mentions_unsubscribe_styles_headerFilter the style handles to print in the header on the unsubscribe page.
Parameters:
array $style_header_handles - Array of style handles to output. Default: empty array.
string $sce_mentions_theme_name - The theme name.
Return: array - Array of style handles.
Since: 1.0.0
Example:
sce_mentions_unsubscribe_scripts_footerFilter the script handles to print in the footer on the unsubscribe page.
Parameters:
array $script_footer_handles - Array of script handles to output. Default: empty array.
string $eff_theme_name - The theme name.
Return: array - Array of script handles.
Since: 1.0.0
Example:
sce_integrations_localized_varsFilter the localized variables for the integrations admin script. Other integrations can add their own variables here.
Parameters:
array $localized_vars - The localized variables array.
Return: array - The filtered localized variables.
Since: 3.0.0
Example:
sce_avatar_sizeFilter the avatar size (used for both width and height).
Parameters:
int $size - The avatar size in pixels.
Return: int - The filtered avatar size.
Example:
sce_avatar_classesFilter the CSS classes applied to the avatar image.
Parameters:
array $classes - Array of CSS classes for the avatar output.
Return: array - The filtered array of CSS classes.
Example:
sce_gravatar_protection_sizeFilter the gravatar protection size (used for both width and height).
Parameters:
int $size - The gravatar protection size in pixels.
Return: int - The filtered gravatar protection size.
Example:
sce_gravatar_protection_classesFilter the CSS classes applied to the gravatar protection image.
Parameters:
array $classes - Array of CSS classes for the gravatar protection output.
Return: array - The filtered array of CSS classes.
Example:



















add_filter( 'sce_button_extra_stop_timer', function( $svg ) {
return '<svg>...</svg>';
} );add_filter( 'sce_webhook_post_type_args', function( $args ) {
$args['public'] = true;
return $args;
} );// For check_license action
add_filter( 'sce_core_license_data_check_license', function( $response ) {
// Modify the response data
return $response;
} );
// For activate_license action
add_filter( 'sce_core_license_data_activate_license', function( $response ) {
// Modify the response data
return $response;
} );add_filter( 'sce_can_view_pending_comments', function( $can_view, $query ) {
// Only allow viewing pending comments for administrators
return current_user_can( 'manage_options' );
}, 10, 2 );add_filter( 'sce_mentions_subscribe_body_text', function( $body, $unsubscribe_url ) {
return '<p>Custom subscription message</p>';
}, 10, 2 );add_filter( 'sce_mentions_subscribe_template', function( $template ) {
return get_stylesheet_directory() . '/templates/custom-subscribe.php';
} );add_filter( 'sce_mentions_unsubscribe_body_text', function( $body ) {
return '<p>Custom unsubscribe message</p>';
} );add_filter( 'sce_mentions_unsubscribe_template', function( $template ) {
return get_stylesheet_directory() . '/templates/custom-unsubscribe.php';
} );add_filter( 'sce_mentions_subscribe_scripts_header', function( $handles, $theme_name ) {
$handles[] = 'my-custom-script';
return $handles;
}, 10, 2 );add_filter( 'sce_mentions_subscribe_styles_header', function( $handles, $theme_name ) {
$handles[] = 'my-custom-style';
return $handles;
}, 10, 2 );add_filter( 'sce_mentions_subscribe_scripts_footer', function( $handles, $theme_name ) {
$handles[] = 'my-custom-footer-script';
return $handles;
}, 10, 2 );add_filter( 'sce_mentions_unsubscribe_scripts_header', function( $handles, $theme_name ) {
$handles[] = 'my-custom-script';
return $handles;
}, 10, 2 );add_filter( 'sce_mentions_unsubscribe_styles_header', function( $handles, $theme_name ) {
$handles[] = 'my-custom-style';
return $handles;
}, 10, 2 );add_filter( 'sce_mentions_unsubscribe_scripts_footer', function( $handles, $theme_name ) {
$handles[] = 'my-custom-footer-script';
return $handles;
}, 10, 2 );add_filter( 'sce_integrations_localized_vars', function( $vars ) {
$vars['myCustomVar'] = 'value';
return $vars;
} );add_filter( 'sce_avatar_size', function( $size ) {
return 100; // Set avatar size to 100px
} );add_filter( 'sce_avatar_classes', function( $classes ) {
$classes[] = 'my-custom-class';
return $classes;
} );add_filter( 'sce_gravatar_protection_size', function( $size ) {
return 120; // Set gravatar protection size to 120px
} );add_filter( 'sce_gravatar_protection_classes', function( $classes ) {
$classes[] = 'my-gravatar-class';
return $classes;
} );
Comment editing is enabled by installing Comment Edit Lite alongside Comment Edit Pro.
Please see the links below for the various comment editing features that Comment Edit Pro enables.
Enabling comment editing is a great way for users to fix their own mistakes when leaving a comment.
As of Comment Edit Pro 3.0, there is no longer a requirement to have Comment Edit Lite installed. However, if you want comment editing, must be activated.
Frontend Editing is by far the most favorite feature of Comment Edit Pro.
It's easy to enable. Just toggle the frontend editing option in the admin settings, save, and you're good to go.
Most themes display an "Edit" link when you are logged in and viewing a comment on the frontend.
The default behavior is to take you to the backend comments section.
Comment Edit Pro overrides this behavior and launches a modal where you can edit the comment without having to visit the admin.
If you are logged in and the author of the post or an Editor/Admin, you can simple click the "Edit" link for the individual comment.
Frontend editing depends on having an "Edit" button in the individual comment. If your theme does not provide this button, frontend editing will not work.
Here's a quick demo of frontend editing in action.
When the modal launches, you can edit just about every aspect of the comment.
The following features are available in the popup modal:
Edit the commenters name, email address, and URL
Edit the comment
Change the comment status (approved, pending, spam)
Delete the comment
The frontend moderation menu is a small meatball icon on the frontend of a comment.
It expands to reveal editing options:
Editing a comment
Approving a comment
Marking a comment as pending (moderated)
Marking a comment as spam
The moderation menu is designed for quick actions, but hidden in a way that isn't so obtrusive.
There are three themes available:
By default, users have 5 minutes to edit their comment. You can adjust this value to make the timer shorter or longer.
Be careful of long edit times. Comment editing is cookie based, so having a reasonable time is recommended.
When you adjust the timer, new comments will be able to edit for the number of minutes you have set.
Another popular feature is you can enable unlimited editing for logged-in users.
With Unlimited Editing enabled, users are shown a "Click to Edit" button with no timer present.
Users will be able to edit their comment as long as unlimited editing is enabled.
One requested feature was for allowing the timer to be canceled when a user is done editing.
If the timer is available, a "Cancel Timer" button will be shown.
Clicking "Cancel Timer" will stop editing for the comment.
Comment Logging is taking an extra precaution when users edit their comments. If you have a long timer or unlimited editing enabled, logging will store all edits of a comment.
The edited comment is stored on the individual comment in the admin, and you can easily revert back to the original comment.
With Comment Logging and Stats enabled, when a user leaves a comment, it is stored for reference so you can keep track of edits for a particular comment.
You can check out the edits for the comment, and even restore a previous edit.
Here's a quick demo of reverting a comment.
Sometimes comments are left in haste or in the moment, and the user would simply like to remove the comment rather than edit it. Allowing users to delete their comments is a nice way of self-policing their comments.
When a user edits a comment, they will see a button allowing them to delete their own comment.
When a user chooses to delete their own comment, a confirmation is shown.
The "Delete Only" option is designed to only show the Delete option when editing a comment. The Edit button isn't visible, but a Delete option instead.
When editing their comment, the Delete button is shown.
By default, a confirmation is shown to the user to prevent accidental clicks.
You can disable or enable this confirmation by toggling the setting.
Here is the behavior of a user deleting a comment.
As you can see, when a user deletes a comment, a status update shows and the comment is removed from view.
If you enable email notifications, you will receive an email with a before and after of the comment edit.
Within this section you can:
Enable email notifications
Set an email address to send the comments to
Set an email address for the "From" field in the email.
Set the subject of the email
Recommended SMTP (Email) Plugin: .
Here is a sample of the emails you will receive.
As you can see, the email contains the original comment and the edited one.
With logs enabled, you can also see a history of all the edits a commenter makes.
You can modify how Comment Edit Pro looks on the frontend through the appearance settings.
Within the Appearance tab, you can:
Show or hide the timer
Set the timer to Words or Compact
Change the button theme
Change the loading image
By default, the timer is shown. However, if you don't want to display a timer at all, you can uncheck this option.
By default, the timer is shown as words.
You can also choose compact to appear more like a countdown.
By default, there are no frontend styles applied to the editing buttons. You can change this by selecting a button theme.
If you select any of the button themes, you'll be asked if you'd like to enable icons.
Enabling icons is recommended to give your buttons a nice boost in appearance with contextual icons.
By default, the editing interface and buttons has no styles.
However, there are three themes you can take advantage of to spruce up the editing interface.
You can modify any text string that is shown to the end user in the translations section.
A shortcut to the comment in the admin
Deleting a comment


















































