Comments: Ensure only approved comments trigger post author notifications

Posts that are trashed shouldn't trigger post author notifications. Adds unit tests to enforce this.

Merges [36119] to the 4.4 branch.
Props scottbrownconsulting, peterwilsoncc, swissspidy.
Fixes #35006.


git-svn-id: https://develop.svn.wordpress.org/branches/4.4@36146 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Dion Hulse 2016-01-02 03:34:35 +00:00
parent 9261c6e63a
commit 462b6016b7
2 changed files with 33 additions and 1 deletions

View File

@ -1805,7 +1805,7 @@ function wp_new_comment_notify_postauthor( $comment_ID ) {
}
// Only send notifications for approved comments.
if ( ! isset( $comment->comment_approved ) || 'spam' === $comment->comment_approved || ! $comment->comment_approved ) {
if ( ! isset( $comment->comment_approved ) || '1' != $comment->comment_approved ) {
return false;
}

View File

@ -278,6 +278,25 @@ class Tests_Comment extends WP_UnitTestCase {
$this->assertTrue( wp_notify_moderator( $c ) );
}
public function test_wp_new_comment_notify_postauthor_should_send_email_when_comment_is_approved() {
$c = self::factory()->comment->create( array(
'comment_post_ID' => self::$post_id,
) );
$sent = wp_new_comment_notify_postauthor( $c );
$this->assertTrue( $sent );
}
public function test_wp_new_comment_notify_postauthor_should_not_send_email_when_comment_is_unapproved() {
$c = self::factory()->comment->create( array(
'comment_post_ID' => self::$post_id,
'comment_approved' => '0',
) );
$sent = wp_new_comment_notify_postauthor( $c );
$this->assertFalse( $sent );
}
/**
* @ticket 33587
*/
@ -291,6 +310,19 @@ class Tests_Comment extends WP_UnitTestCase {
$this->assertFalse( $sent );
}
/**
* @ticket 35006
*/
public function test_wp_new_comment_notify_postauthor_should_not_send_email_when_comment_has_been_trashed() {
$c = self::factory()->comment->create( array(
'comment_post_ID' => self::$post_id,
'comment_approved' => 'trash',
) );
$sent = wp_new_comment_notify_postauthor( $c );
$this->assertFalse( $sent );
}
/**
* @ticket 12431
*/