Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I am using the code below to send Comment notification and moderation emails to multiple email addresses for a client site.

I have a custom admin panel for this particular site. In my admin panel I have a field that holds a comma separated list of emails that should be notified anytime a comment is posted and needs approval or notified.

It works great however my client has 1 issue. As my client is also the Admin of the site, they are receiving a comment notification email to the email address that is under there account settings. So in addition to emailing my comma separated list of emails, it also em,ails the Admin account email.

I am looking for help on how I can disable it emailing the Admin account and ONLY sending an email to the emails in my custom setting which this code below is doing already.

Any ideas on how to do this please?

/**
 * Email Multiple people when a Comment is Posted
 */
add_action('comment_post', 'wp_notify_allmods');
function wp_notify_allmods($comment_id) {
    global $wpdb;

    $cn_recipients = get_option('custom_comment_emails');
    //$cn_recipients = 'jason.davis@gmail.com,David@email.com,Tracey@custom.com';
    //$moderated_only_option = get_option("cn_moderated_only");
    //
    $comment = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_ID='$comment_id' LIMIT 1");
    $post = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID='$comment->comment_post_ID' LIMIT 1");
    $blogname = get_option('blogname');
    $blogurl = get_option('siteurl');
    $comment_author_domain = @gethostbyaddr($comment->comment_author_IP);

    if (get_option('comment_moderation') == 1) {  //if we need to send comment moderation email
        $comments_waiting = $wpdb->get_var("SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'");
        $notify_message  = sprintf( __('A new comment on the post #%1$s "%2$s" is waiting for your approval'), $post->ID, $post->post_title ) . "\r\n";
        $notify_message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n";
        $notify_message .= sprintf( __('Author : %1$s (IP: %2$s , %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
        $notify_message .= sprintf( __('E-mail : %s'), $comment->comment_author_email ) . "\r\n";
        //$notify_message .= sprintf( __('URL    : %s'), $comment->comment_author_url ) . "\r\n";
        $notify_message .= sprintf( __('Whois  : http://ws.arin.net/cgi-bin/whois.pl?queryinput=%s'), $comment->comment_author_IP ) . "\r\n";
        $notify_message .= __('Comment: ') . "\r\n" . $comment->comment_content . "\r\n\r\n";
        $notify_message .= sprintf( __('Approve it: %s'),  $blogurl."/wp-admin/comment.php?action=mac&c=$comment_id" ) . "\r\n";
        $notify_message .= sprintf( __('Delete it: %s'), $blogurl."/wp-admin/comment.php?action=cdc&c=$comment_id" ) . "\r\n";
        $notify_message .= sprintf( __('Spam it: %s'), $blogurl."/wp-admin/comment.php?action=cdc&dt=spam&c=$comment_id" ) . "\r\n";
        $notify_message .= sprintf( __('Currently %s comments are waiting for approval. Please visit the moderation panel:'), $comments_waiting ) . "\r\n";
        $notify_message .= get_option('siteurl') . "/wp-admin/moderation.php\r\n";
        $subject = sprintf( __('[%1$s] Please moderate: "%2$s"'), $blogname, $post->post_title );
        $notify_message = apply_filters('comment_moderation_text', $notify_message, $comment_id);
        $subject = apply_filters('comment_moderation_subject', $subject, $comment_id);
        $message_headers = "";

        $cn_recipients_array = explode(",", $cn_recipients);

        foreach ($cn_recipients_array as $email) {
            @wp_mail($email, $subject, $notify_message, $message_headers);
        }
    } else {  //or just a regular "you've got a new comment" email
        if ($moderated_only_option != 1) { //if comments are not modded but update notifications are set to moderated only don't send
            $notify_message  = sprintf( __('New comment on your post #%1$s "%2$s"'), $comment->comment_post_ID, $post->post_title ) . "\r\n";
            $notify_message .= sprintf( __('Author : %1$s (IP: %2$s , %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
            $notify_message .= sprintf( __('E-mail : %s'), $comment->comment_author_email ) . "\r\n";
            $notify_message .= sprintf( __('URL    : %s'), $comment->comment_author_url ) . "\r\n";
            $notify_message .= sprintf( __('Whois  : http://ws.arin.net/cgi-bin/whois.pl?queryinput=%s'), $comment->comment_author_IP ) . "\r\n";
            $notify_message .= __('Comment: ') . "\r\n" . $comment->comment_content . "\r\n\r\n";
            $notify_message .= __('You can see all comments on this post here: ') . "\r\n";
            $subject = sprintf( __('[%1$s] Comment: "%2$s"'), $blogname, $post->post_title );
            $notify_message .= get_permalink($comment->comment_post_ID) . "#comments\r\n\r\n";
            $notify_message .= sprintf( __('Delete it: %s'), get_option('siteurl')."/wp-admin/comment.php?action=cdc&c=$comment_id" ) . "\r\n";
            $notify_message .= sprintf( __('Spam it: %s'), get_option('siteurl')."/wp-admin/comment.php?action=cdc&dt=spam&c=$comment_id" ) . "\r\n";
            $notify_message = apply_filters('comment_notification_text', $notify_message, $comment_id);
            $subject = apply_filters('comment_notification_subject', $subject, $comment_id);
            $message_headers = "MIME-Version: 1.0\n"
                . "$from\n"
                . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
            $message_headers = apply_filters('comment_notification_headers', $message_headers, $comment_id);

            $cn_recipients_array = explode(",", $cn_recipients);

            foreach ($cn_recipients_array as $email) {
                @wp_mail($email, $subject, $notify_message, $message_headers);
            }
        }
    }

    return true;
}
share|improve this question

1 Answer 1

up vote 3 down vote accepted

In the WordPress backend at Settings->Discussion there is a setting near the middle labeled "Email me Whenever".

enter image description here

Uncheck those two boxes. I believe that will prevent the system from sending those email, leaving only the emails that you send.

share|improve this answer
    
This is the route I though of right after I posted this, so far it seems to be working so I will accept this answer, thank you –  jasondavis Jul 3 '13 at 3:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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