wp_new_comment_notify_postauthor()
Sends a notification of a new comment to the post author.
Uses the notify_post_author filter to determine whether the post author should be notified when a new comment is added, overriding site setting.
Hooks from the function
Returns
true|false. True on success, false on failure.
Usage
wp_new_comment_notify_postauthor( $comment_id );
- $comment_id(int) (required)
- Comment ID.
Changelog
| Since 4.4.0 | Introduced. |
| Since 7.1.0 | The comment approval status is now checked before the notify_post_author filter, and invalid comment IDs return false without firing the filter. |
wp_new_comment_notify_postauthor() wp new comment notify postauthor code WP 7.1
function wp_new_comment_notify_postauthor( $comment_id ) {
$comment = get_comment( $comment_id );
if ( ! ( $comment instanceof WP_Comment ) ) {
return false;
}
$comment_id = (int) $comment->comment_ID;
$is_note = ( 'note' === $comment->comment_type );
/*
* Determine the default notification behavior. Notes are eligible regardless
* of approval status, based on the 'wp_notes_notify' option. Other comments
* are only eligible once approved, based on the 'comments_notify' option.
*/
if ( $is_note ) {
$maybe_notify = (bool) get_option( 'wp_notes_notify', 1 );
} elseif ( '1' !== $comment->comment_approved ) {
$maybe_notify = false;
} else {
$maybe_notify = (bool) get_option( 'comments_notify' );
}
/**
* Filters whether to send the post author new comment and note notification emails,
* overriding the site settings and defaults. By default, notifications are sent for
* all notes and for approved comments.
*
* @since 4.4.0
* @since 7.1.0 Comment approval status is checked before this filter,
* and the filter no longer fires for invalid comment IDs.
*
* @param bool $maybe_notify Whether to notify the post author about the new comment.
* @param int $comment_id The ID of the comment for the notification.
*/
$maybe_notify = apply_filters( 'notify_post_author', $maybe_notify, $comment_id );
/*
* wp_notify_postauthor() checks if notifying the author of their own comment.
* By default, it won't, but filters can override this.
*/
if ( ! $maybe_notify ) {
return false;
}
return wp_notify_postauthor( $comment_id );
}