The comment_duplicate_trigger WordPress PHP action fires immediately after a duplicate comment is detected.
Usage
add_action('comment_duplicate_trigger', 'your_custom_function', 10, 1);
function your_custom_function($commentdata) {
// your custom code here
}
Parameters
$commentdata(array): Comment data.
More information
See WordPress Developer Resources: comment_duplicate_trigger
Examples
Preventing comment duplication
Prevent duplicate comments by displaying a custom message.
add_action('comment_duplicate_trigger', 'prevent_duplicate_comments', 10, 1);
function prevent_duplicate_comments($commentdata) {
wp_die(__('Duplicate comments are not allowed.', 'your-text-domain'));
}
Logging duplicate comments
Log duplicate comments to a text file.
add_action('comment_duplicate_trigger', 'log_duplicate_comments', 10, 1);
function log_duplicate_comments($commentdata) {
$log_message = 'Duplicate comment detected: ' . $commentdata['comment_content'] . PHP_EOL;
error_log($log_message, 3, 'duplicates.log');
}
Send email notification for duplicate comments
Send an email to the site administrator when a duplicate comment is detected.
add_action('comment_duplicate_trigger', 'notify_admin_about_duplicate', 10, 1);
function notify_admin_about_duplicate($commentdata) {
$to = get_option('admin_email');
$subject = __('Duplicate comment detected', 'your-text-domain');
$message = __('A duplicate comment was detected:', 'your-text-domain') . ' ' . $commentdata['comment_content'];
wp_mail($to, $subject, $message);
}
Add a custom prefix to duplicate comments
Add a custom prefix to the content of duplicate comments before saving them.
add_action('comment_duplicate_trigger', 'add_duplicate_prefix', 10, 1);
function add_duplicate_prefix($commentdata) {
$commentdata['comment_content'] = '[DUPLICATE] ' . $commentdata['comment_content'];
return wp_new_comment($commentdata, true);
}
Store duplicate comments as drafts
Change the status of duplicate comments to ‘draft’ before saving them.
add_action('comment_duplicate_trigger', 'save_duplicate_as_draft', 10, 1);
function save_duplicate_as_draft($commentdata) {
$commentdata['comment_approved'] = '0';
return wp_new_comment($commentdata, true);
}