Ejemplo n.º 1
0
 public function subscribe()
 {
     $action_id = (int) $_POST['action_id'];
     $type = sanitize_text_field($_POST['type']);
     if (!wp_verify_nonce($_POST['__nonce'], 'subscribe_' . $action_id . '_' . $type)) {
         ap_send_json(ap_ajax_responce('something_wrong'));
         return;
     }
     if (!is_user_logged_in()) {
         ap_send_json(ap_ajax_responce('please_login'));
         return;
     }
     if ($type === 'category') {
         $subscribe_type = 'category';
     } elseif ($type === 'tag') {
         $subscribe_type = 'tag';
     } else {
         $subscribe_type = false;
     }
     $user_id = get_current_user_id();
     $is_subscribed = ap_is_user_subscribed($action_id, $user_id, $subscribe_type);
     if ($is_subscribed) {
         if ($subscribe_type === false) {
             $row = ap_remove_question_subscriber($action_id);
         } else {
             $row = ap_remove_subscriber($user_id, $action_id, $subscribe_type);
         }
         if (FALSE !== $row) {
             ap_send_json(ap_ajax_responce(array('message' => 'unsubscribed', 'action' => 'unsubscribed', 'container' => '#subscribe_' . $action_id . ' b', 'do' => 'updateHtml', 'html' => __('Follow question', 'ap'))));
         }
     } else {
         if ($subscribe_type === false) {
             ap_add_question_subscriber($action_id);
         } else {
             ap_add_subscriber($user_id, $action_id, $subscribe_type);
         }
         ap_send_json(ap_ajax_responce(array('message' => 'subscribed', 'action' => 'subscribed', 'container' => '#subscribe_' . $action_id . ' b', 'do' => 'updateHtml', 'html' => __('Unfollow question', 'ap'))));
     }
 }
Ejemplo n.º 2
0
/**
 * Subscribe a question
 * @param  integer  		$question_id
 * @param  boolean|integer 	$user_id
 * @return boolean|array
 */
function ap_add_question_subscriber($question_id, $user_id = false, $type = '', $secondary_id = '')
{
    $is_subscribed = ap_is_user_subscribed($question_id);
    if ($user_id === false) {
        $user_id = get_current_user_id();
    }
    if ($user_id < 1) {
        return false;
    }
    if (!$is_subscribed) {
        ap_add_subscriber($user_id, $question_id, $type, $secondary_id);
        $counts = ap_subscribers_count($question_id);
        //update post meta
        update_post_meta($question_id, ANSPRESS_SUBSCRIBER_META, $counts);
        return array('count' => $counts, 'action' => 'subscribed');
    }
    return false;
}