/** * Send a notification to subscribers */ public function notify_on_reply($id = 0, $comment = null) { if (empty($this->handler) || !Falcon::is_enabled_for_site()) { return false; } if (wp_get_comment_status($comment) !== 'approved') { return false; } // Is the post published? $post = get_post($comment->comment_post_ID); if (get_post_status($post) !== 'publish') { return false; } // Grab the users we should notify $users = $this->get_comment_subscribers($comment); if (empty($users)) { return false; } $message = new Falcon_Message(); // Poster name $message->set_author(apply_filters('falcon.connector.wordpress.comment_author', $comment->comment_author)); // Don't send notifications to the person who made the post $send_to_author = Falcon::get_option('bbsub_send_to_author', false); if (!$send_to_author && !empty($comment->user_id)) { $author = (int) $comment->user_id; $users = array_filter($users, function ($user) use($author) { return $user->ID !== $author; }); } // Sanitize the HTML into text $message->set_text($this->get_comment_content_as_text($comment)); $message->set_html($this->get_comment_content_as_html($comment)); $subject = apply_filters('bbsub_email_subject', 'Re: [' . get_option('blogname') . '] ' . html_entity_decode(get_the_title($post), ENT_QUOTES), $id, $post->ID); $message->set_subject($subject); $message->set_reply_address_handler(function (WP_User $user, Falcon_Message $message) use($comment) { return Falcon::get_reply_address('comment_' . $comment->comment_ID, $user); }); $options = array(); if ($this->handler->supports_message_ids()) { $options['references'] = $this->get_references_for_comment($comment); $options['message-id'] = $this->get_message_id_for_comment($comment); if (!empty($comment->comment_parent)) { $parent = get_comment($comment->comment_parent); $options['in-reply-to'] = $this->get_message_id_for_comment($parent); } else { $options['in-reply-to'] = $this->get_message_id_for_post($post); } } else { $message_ids = get_post_meta($id, self::MESSAGE_ID_KEY, $responses); $options['in-reply-to'] = $message_ids; } $message->set_options($options); $this->handler->send_mail($users, $message); return true; }