'; }elseif($likes_type == 'pinterest'){ echo ''; }else{ if($vote_data == false){ $vote_data = os_vote_get_post_vote_data($post_id); } ?> '; break; case 'outlined': echo ''; break; case 'squared': default: echo ''; break; } ?> 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; } }