';
}elseif($likes_type == 'pinterest'){
echo '';
}else{
if($vote_data == false){
$vote_data = os_vote_get_post_vote_data($post_id);
} ?>
200, 'message' => os_vote_do_vote($post_id)));
break;
case 'unvote':
echo wp_send_json(array('status' => 200, 'message' => os_vote_do_unvote($post_id)));
break;
case 'read':
echo wp_send_json(array('status' => 200, 'message' => os_vote_get_post_vote_data($post_id)));
break;
}
}else{
echo wp_send_json(array('status' => 422, 'message' => 'Invalid data supplied'));
}
wp_die();
}
// --------------------------
// GET VOTE INFO ABOUT A POST
// --------------------------
function os_vote_get_post_vote_data($post_id = false){
$votes_count = get_post_meta($post_id, '_zilla_likes', true);
// create a post meta if the field does not exist yet
if(!$votes_count) add_post_meta($post_id, '_zilla_likes', 0, true);
$has_voted = os_vote_has_voted($post_id);
$vote_data = array('count' => $votes_count, 'has_voted' => $has_voted);
return $vote_data;
}
// -------------------------------
// CHECK IF USER HAS ALREADY VOTED
// -------------------------------
function os_vote_has_voted($post_id = false){
return isset($_COOKIE['os_vote_'. $post_id]);
}
// ----------
// ADD A VOTE
// ----------
function os_vote_do_vote($post_id = false){
$vote_data = os_vote_get_post_vote_data($post_id);
// if user has already voted - exit
if($vote_data['has_voted']) return $vote_data;
update_post_meta($post_id, '_zilla_likes', $vote_data['count'] + 1);
$cookie_expire_on = time()+60*60*24*30;
setcookie('os_vote_'. $post_id, $post_id, $cookie_expire_on, '/');
return os_vote_get_post_vote_data($post_id);
}
// -------------
// REMOVE A VOTE
// -------------
function os_vote_do_unvote($post_id = false){
$vote_data = os_vote_get_post_vote_data($post_id);
// check if user has voted for this post and there are any votes on this post
if($vote_data['has_voted'] && ($vote_data['count'] > 0)){
update_post_meta($post_id, '_zilla_likes', $vote_data['count'] - 1);
setcookie('os_vote_'. $post_id, $post_id, 1, '/');
return os_vote_get_post_vote_data($post_id);
}else{
return $vote_data;
}
}