Notification Emails Not Send After Comment Approval in WordPress 2.5 and 2.5.1
In WordPress 2.5 and Wordpress 2.5.1, when the option is set to email post author whenever a comment is posted (comments_notify = 1), no notification email is generated or sent to notify the post author if the comment is held in moderation queue and is only approved later via edit-comments.php.
Prior to WordPress 2.5, an email is sent on approval to post author even if a comment is required to be approved and not posted instantly. However, notification that a comment is held for moderation and require administrator’s action to approve, delete or spam the message is working properly, with email sends to administrator’s email address (admin_email), not post author.
It’s a bug that has been introduced in WordPress 2.5, and slips into WordPress 2.5.1 when moderation.php functionality was moved into edit-comments.php. The bug will probably be fixed in WordPress 2.5.2 release. If you can’t wait, simply edit wp-includes/comment.php on WordPress blog directory on web server, and add the following lines of code:
Before:
break;
case 'approve':
$query = $wpdb->prepare("UPDATE $wpdb->comments SET comment_approved='1' WHERE comment_ID = %d LIMIT 1", $comment_id);
break;
case 'spam':
$query = $wpdb->prepare("UPDATE $wpdb->comments SET comment_approved='spam' WHERE comment_ID = %d LIMIT 1", $comment_id);
After:
break;
case 'approve':
$query = $wpdb->prepare("UPDATE $wpdb->comments SET comment_approved='1' WHERE comment_ID = %d LIMIT 1", $comment_id);
if ( get_option( 'comments_notify' ) == true ) {
wp_notify_postauthor( $comment );
}
break;
case 'spam':
$query = $wpdb->prepare("UPDATE $wpdb->comments SET comment_approved='spam' WHERE comment_ID = %d LIMIT 1", $comment_id);
Related Articles
- WordPress 2.5 Released for Free Download
- WordPress 2.5.1 Released for Download
- Drop.io Private Exchange - Free Interactive Files Sharing Storage Service with Comment Support
- WordPress 2.5 RC2 Released for Download
- Call to Undefined Function: wp_constrain_dimensions() When Uploading Images or image_downsize() in Gallery/Media Library in WordPress 2.5
- Media Buttons Disabler Plugin to Remove “Add Media” Icons in WordPress 2.5
- How to Fetch and Show RSS Feeds on WordPress Blog (Atom/RSS Aggregator Plugins)
- How to SEO Optimize WordPress 2.5 Blog Web Page Title Without Optimal Title Plugin
- Workaround to Override WordPress Shortcode and Display the [] Brackets Tags
- Make WordPress Blog More Secure Using Secret Key

































June 20th, 2008 11:29
Hello,
The code you printed under ‘before’ is different in that the one in wp-includes/comment.php. This is the code in comment.php:
case 'approve':$query = "UPDATE $wpdb->comments SET comment_approved='1' WHERE comment_ID='$comment_id' LIMIT 1";
break;
case 'spam':
$query = "UPDATE $wpdb->comments SET comment_approved='spam' WHERE comment_ID='$comment_id' LIMIT 1";
Which version of WP did you get that code from?
June 20th, 2008 11:53
version 2.5.
June 20th, 2008 11:57
Hi,
The code I posted is from 2.5.1. Do you think that replacing this code with the one you posted could fix this issue?
June 20th, 2008 12:28
Try to just add in the additional lines (the difference).
June 27th, 2008 20:49
Hello,
Tried it. It did not work. Thanks anyways.
July 11th, 2008 17:30
Thanks for the post ‘admin’ - I help manage a (non?)corporate blog, and my boss stopped getting email notifications since upgrading to 2.5.x - I do believe your suggested patch has fixed it.
So, again thanks very much!
September 4th, 2008 04:15
This WPMU behavior was driving me a bit nuts. Much thanks for sharing your solution!
September 22nd, 2008 05:42
Wow Cool !
Super Man
Nice Site
October 15th, 2008 07:26
In 2.6.1 it should look as this:
case 'approve':
$query = $wpdb->prepare("UPDATE wpdb->comments SET comment_approved='1' WHERE comment_ID = %d LIMIT 1", $comment_id);
if ( get_option('comments_notify') == true ) {
$comment = get_comment($comment_id);
wp_notify_postauthor($comment_id, $comment->comment_type);
}
The only change is adding:
== true