コード例 #1
0
function ap_question_subscribers($action_id = false, $type = '', $avatar_size = 30)
{
    global $question_category, $question_tag;
    if (!$action_id) {
        if (is_question()) {
            $action_id = get_question_id();
        } elseif (is_question_category()) {
            $action_id = $question_category->term_id;
        } elseif (is_question_tag()) {
            $action_id = $question_tag->term_id;
        }
    }
    if ($type == '') {
        $type = is_question() ? '' : 'term';
    }
    $subscribe_type = $type != '' && $type != 'subscriber' ? $type : 'subscriber';
    $subscribers = ap_get_subscribers($action_id, $subscribe_type);
    if ($subscribers) {
        echo '<div class="ap-question-subscribers clearfix">';
        echo '<div class="ap-question-subscribers-inner">';
        foreach ($subscribers as $subscriber) {
            echo '<a href="' . ap_user_link($subscriber->apmeta_userid) . '"';
            ap_hover_card_attributes($subscriber->apmeta_userid);
            echo '>' . get_avatar($subscriber->apmeta_userid, $avatar_size) . '</a>';
        }
        echo '</div>';
        echo '</div>';
    }
}
コード例 #2
0
 public function ap_after_update_answer($answer_id)
 {
     if (!ap_opt('notify_admin_edit_answer')) {
         return;
     }
     $current_user = wp_get_current_user();
     $answer = get_post($answer_id);
     $this->emails = array();
     if (ap_opt('notify_admin_email') != $current_user->user_email && ap_opt('notify_admin_edit_answer')) {
         $this->emails[] = ap_opt('notify_admin_email');
     }
     $subscribers = ap_get_subscribers($answer_id, 'a_all', 100, true);
     $post_author = get_user_by('id', $answer->post_author);
     if (!ap_in_array_r($post_author->data->user_email, $subscribers)) {
         $subscribers[] = (object) array('user_email' => $post_author->data->user_email, 'ID' => $post_author->ID, 'display_name' => $post_author->data->display_name);
     }
     if ($subscribers) {
         foreach ($subscribers as $s) {
             if (!empty($s->user_email) && $s->user_email != $current_user->user_email) {
                 $this->emails[] = $s->user_email;
             }
         }
     }
     if (!is_array($this->emails) || empty($this->emails)) {
         return;
     }
     $args = array('{answerer}' => ap_user_display_name($answer->post_author), '{editor}' => ap_user_display_name(get_current_user_id()), '{question_title}' => $answer->post_title, '{question_link}' => get_permalink($answer->post_parent), '{answer_content}' => $answer->post_content);
     $args = apply_filters('ap_edit_answer_email_tags', $args);
     $this->subject = $this->replace_tags(ap_opt('edit_answer_email_subject'), $args);
     $this->message = $this->replace_tags(ap_opt('edit_answer_email_body'), $args);
     $this->initiate_send_email();
 }