wp_notify_moderator( int $comment_id )
Notifies the moderator of the site about a new comment that is awaiting approval.
Description
Parameters
- $comment_id
-
(Required) Comment ID.
Return
(true) Always returns true.
Source
File: bp-core/bp-core-wp-emails.php
function wp_notify_moderator($comment_id) { global $wpdb; $maybe_notify = get_option( 'moderation_notify' ); /** * Filters whether to send the site moderator email notifications, overriding the site setting. * * @since BuddyPress 4.4.0 * * @param bool $maybe_notify Whether to notify blog moderator. * @param int $comment_ID The id of the comment for the notification. */ $maybe_notify = apply_filters( 'notify_moderator', $maybe_notify, $comment_id ); if ( ! $maybe_notify ) { return true; } $comment = get_comment($comment_id); $post = get_post($comment->comment_post_ID); $user = get_userdata( $post->post_author ); // Send to the administration and to the post author if the author can modify the comment. $emails = array( get_option( 'admin_email' ) ); if ( $user && user_can( $user->ID, 'edit_comment', $comment_id ) && ! empty( $user->user_email ) ) { if ( 0 !== strcasecmp( $user->user_email, get_option( 'admin_email' ) ) ) $emails[] = $user->user_email; } $switched_locale = switch_to_locale( get_locale() ); $comment_author_domain = @gethostbyaddr($comment->comment_author_IP); $comments_waiting = $wpdb->get_var("SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'"); // The blogname option is escaped with esc_html on the way into the database in sanitize_option // we want to reverse this for the plain text arena of emails. $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); $comment_content = wp_specialchars_decode( $comment->comment_content ); // Get customizer setting options $settings = bp_email_get_appearance_settings(); switch ( $comment->comment_type ) { case 'trackback': $title = sprintf( __( 'added new trackback on the post <a href="%s">"%s"</a> is waiting for your approval.', 'buddyboss' ), get_permalink($comment->comment_post_ID), $post->post_title ); $footer_message = sprintf( __('<a href="%s">Click here</a> to see all trackbacks on this post.', 'buddyboss' ), get_permalink( $comment->comment_post_ID ) . '#comments' ); $moderate_text = __('Moderate this trackback: ', 'buddyboss' ); break; case 'pingback': $title = sprintf( __( 'added new pingback on the post <a href="%s">"%s"</a> is waiting for your approval.', 'buddyboss' ), get_permalink($comment->comment_post_ID), $post->post_title ); $footer_message = sprintf( __('<a href="%s">Click here</a> to see all pingbacks on this post.', 'buddyboss' ), get_permalink( $comment->comment_post_ID ) . '#comments' ); $moderate_text = __('Moderate this pingback: ', 'buddyboss' ); break; default: // Comments $title = sprintf( __( 'added new comment on the post <a href="%s">"%s"</a> is waiting for your approval.', 'buddyboss' ), get_permalink($comment->comment_post_ID), $post->post_title ); $footer_message = sprintf( __('<a href="%s">Click here</a> to see all comments on this post.', 'buddyboss' ), get_permalink( $comment->comment_post_ID ) . '#comments' ); $moderate_text = __('Moderate this comment: ', 'buddyboss' ); break; } ob_start(); ?> <p> <?php if ( !empty( $comment->user_id ) ) { ?> <a href="<?php echo esc_attr( bp_core_get_user_domain( $comment->user_id ) ); ?>"> <?php echo $comment->comment_author; ?> </a> <?php } else { echo $comment->comment_author; } ?> <?php echo $title; ?> </p> <table cellspacing="0" cellpadding="0" border="0" width="100%"> <?php if ( !empty( $comment->user_id ) ) { ?> <tr> <td align="center"> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tbody> <tr> <td valign="middle" width="65px" style="vertical-align: middle;"> <a style="display: block; width: 47px;" href="<?php echo esc_attr( bp_core_get_user_domain( $comment->user_id ) ); ?>" target="_blank" rel="nofollow"> <?php $avatar_url = bp_core_fetch_avatar( array( 'item_id' => $comment->user_id, 'width' => 100, 'height' => 100, 'type' => 'full', 'html' => false, ) ); ?> <img src="<?php echo esc_attr( $avatar_url ); ?>" width="47" height="47" style="margin:0; padding:0; border:none; display:block; max-width: 47px; border-radius: 50%;" border="0"> </a> </td> <td width="88%" style="vertical-align: middle;"> <div style="color: <?php echo esc_attr( $settings['body_secondary_text_color'] ); ?>; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: <?php echo esc_attr( $settings['body_text_size'] . 'px' ); ?>; line-height: <?php echo esc_attr( $settings['body_text_size'] . 'px' ); ?>; letter-spacing: -0.24px;"> <?php echo bp_core_get_user_displayname( $comment->user_id ); ?> </div> </td> </tr> </tbody> </table> </td> </tr> <tr> <td height="24px" style="font-size: 24px; line-height: 24px;"> </td> </tr> <?php } ?> <tr> <td> <table cellspacing="0" cellpadding="0" border="0" width="100%" style="background: <?php echo esc_attr( $settings['quote_bg'] ); ?>; border: 1px solid <?php echo esc_attr( $settings['body_border_color'] ); ?>; border-radius: 4px; border-collapse: separate !important"> <tbody> <tr> <td height="5px" style="font-size: 5px; line-height: 5px;"> </td> </tr> <tr> <td align="center"> <table cellpadding="0" cellspacing="0" border="0" width="88%" style="width: 88%;"> <tbody> <tr> <td> <div style="color: <?php echo esc_attr( $settings['body_text_color'] ); ?>; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: <?php echo esc_attr( $settings['body_text_size'] . 'px' ); ?>; letter-spacing: -0.24px; line-height: <?php echo esc_attr( floor( $settings['body_text_size'] * 1.625 ) . 'px' ) ?>;"> <?php echo wpautop($comment_content); ?> </div> </td> </tr> </tbody> </table> </td> </tr> <tr> <td height="5px" style="font-size: 5px; line-height: 5px;"> </td> </tr> </tbody> </table> </td> </tr> <tr> <td height="24px" style="font-size: 24px; line-height: 24px;"> </td> </tr> <tr> <td> <a href="<?php echo get_comment_link( $comment ); ?>" target="_blank" rel="nofollow" style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; color: <?php echo $settings['highlight_color']; ?>; text-decoration: none; display: block; border: 1px solid <?php echo $settings['highlight_color']; ?>; border-radius: 100px; width: 84px; text-align: center; height: 32px; line-height: 32px;"><?php _e( 'Reply', 'buddyboss' ); ?></a> </td> </tr> <tr> <td> <div style="color: <?php echo esc_attr( $settings['body_text_color'] ); ?>; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: <?php echo esc_attr( $settings['body_text_size'] . 'px' ); ?>; letter-spacing: -0.24px; line-height: <?php echo esc_attr( floor( $settings['body_text_size'] * 1.625 ) . 'px' ) ?>;"> <p><?php echo $footer_message; ?></p> <?php $approve_comment = sprintf( __( '<a href="%s">Approve</a>', 'buddyboss' ), admin_url( "comment.php?action=approve&c={$comment_id}#wpbody-content" ) ); $trash_comment = ''; $delete_comment = ''; if ( EMPTY_TRASH_DAYS ) { /* translators: Comment moderation. 1: Comment action URL */ $trash_comment = sprintf( __( '<a href="%s">Trash</a>', 'buddyboss' ), admin_url( "comment.php?action=trash&c={$comment_id}#wpbody-content" ) ); } else { /* translators: Comment moderation. 1: Comment action URL */ $delete_comment = sprintf( __( '<a href="%s">Delete</a>', 'buddyboss' ), admin_url( "comment.php?action=delete&c={$comment_id}#wpbody-content" ) ); } /* translators: Comment moderation. 1: Comment action URL */ $spam_comment = sprintf( __( '<a href="%s">Spam</a>', 'buddyboss' ), admin_url( "comment.php?action=spam&c={$comment_id}#wpbody-content" ) ); ?> <p><?php echo $moderate_text; ?><?php echo $approve_comment; ?><?php if( !empty( $trash_comment ) ) { echo ', '.$trash_comment; } ?><?php if( !empty( $delete_comment ) ) { echo ', '.$delete_comment; } ?><?php echo ', '.$spam_comment; ?></p> </div> </td> </tr> </table> <?php $notify_message = ob_get_clean(); /* translators: Comment moderation notification email subject. 1: Site name, 2: Post title */ $subject = sprintf( __( '[%1$s] Please moderate: "%2$s"', 'buddyboss' ), $blogname, $post->post_title ); $message_headers = ''; /** * Filters the list of recipients for comment moderation emails. * * @since BuddyPress 3.7.0 * * @param array $emails List of email addresses to notify for comment moderation. * @param int $comment_id Comment ID. */ $emails = apply_filters( 'comment_moderation_recipients', $emails, $comment_id ); /** * Filters the comment moderation email text. * * @since BuddyPress 1.5.2 * * @param string $notify_message Text of the comment moderation email. * @param int $comment_id Comment ID. */ $notify_message = apply_filters( 'comment_moderation_text', $notify_message, $comment_id ); /** * Filters the comment moderation email subject. * * @since BuddyPress 1.5.2 * * @param string $subject Subject of the comment moderation email. * @param int $comment_id Comment ID. */ $subject = apply_filters( 'comment_moderation_subject', $subject, $comment_id ); /** * Filters the comment moderation email headers. * * @since BuddyPress 2.8.0 * * @param string $message_headers Headers for the comment moderation email. * @param int $comment_id Comment ID. */ $message_headers = apply_filters( 'comment_moderation_headers', $message_headers, $comment_id ); add_filter( 'wp_mail_content_type', 'bp_email_set_content_type' ); foreach ( $emails as $email ) { $email_notify_message = bp_email_core_wp_get_template( $notify_message, get_user_by( 'email', $email ) ); @wp_mail( $email, wp_specialchars_decode( $subject ), $email_notify_message, $message_headers ); } remove_filter( 'wp_mail_content_type', 'bp_email_set_content_type' ); if ( $switched_locale ) { restore_previous_locale(); } return true; }
Changelog
Version | Description |
---|---|
BuddyPress 1.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.