wp_new_comment_notify_postauthor()WP 4.4.0

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() 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 );
}