2

I have custom post type "Art masters". Each post is master's profile.

In their profiles isset custom fiels name "master_email". I need to send for master email notification every time if new comment is posted.

How i can call post new comment function for use wp_mail? Thank you for help!

2 Answers 2

7

You can try something like this in your functions.php

function send_comment_email_notification( $comment_ID, $commentdata ) {
    $comment = get_comment( $comment_id );
    $postid = $comment->comment_post_ID;
    $master_email = get_post_meta( $postid, 'master_email', true);
    if( isset( $master_email ) && is_email( $master_email ) ) {
        $message = 'New comment on <a href="' . get_permalink( $postid ) . '">' .  get_the_title( $postid ) . '</a>';
        add_filter( 'wp_mail_content_type', create_function( '', 'return "text/html";' ) );
        wp_mail( $master_email, 'New Comment', $message );
    }
}
add_action( 'comment_post', 'send_comment_email_notification', 11, 2 );
2
  • That's OK but 2 things need to be pointed out: 1. get_comment( $comment_id ) should be get_comment( $comment_ID ) 2. in order for this function to work, post meta (custom field) should have name - value pair declared: master_email - [email protected]
    – Dameer
    Commented Mar 27, 2013 at 7:35
  • Is there a way to send the mail only on 0 and 1 comments (not for spam comments)
    – Benjamin
    Commented Aug 19, 2020 at 21:21
0

You can try this. Example:[email protected]

add_filter('wp_mail_from','yoursite_wp_mail_from'); 

function yoursite_wp_mail_from($content_type) {
   return '[email protected]'; 
} 

add_filter('wp_mail_from_name','yoursite_wp_mail_from_name'); 

function yoursite_wp_mail_from_name($name) {
   return 'Helen Hou-Sandi'; 
} 

Not the answer you're looking for? Browse other questions tagged or ask your own question.