function vortex_system_dislike_button() { $nonce = $_POST['nonce']; if (!wp_verify_nonce($nonce, 'ajax-nonce')) { wp_die(); } $vortex_like_dislike = get_option("vortex_like_dislike"); if (!$vortex_like_dislike['v-switch-anon'] && !is_user_logged_in()) { exit; } $post_id = absint($_POST['post_id']); vortex_ra_cookie('dislikepost', $post_id, 'likepost'); $likes = 'vortex_system_likes'; $dislikes = 'vortex_system_dislikes'; $current_user_id = null; if (is_user_logged_in()) { $current_user_id = get_current_user_id(); $user_key = 'vortex_system_user_' . $current_user_id; } elseif ($vortex_like_dislike['v-switch-anon']) { $current_user_id = get_current_user_id(); $user_ip = sanitize_text_field($_SERVER['REMOTE_ADDR']); $user_key = 'vortex_system_user_' . $user_ip; if (vortex_ra_read_cookie('dislikepost', $post_id) == 'found') { $response = array('dislikes' => "exit"); echo json_encode($response); exit; } if (vortex_ra_read_cookie('likepost', $post_id) == 'found') { $response = array('likes' => "exit"); echo json_encode($response); exit; } } else { wp_die(); } //defaults for user when he first time dislikes a post $user_data = array('liked' => 'liked', 'disliked' => 'disliked'); $shall_we = apply_filters("vortex_one_vote", false); if (vortex_get_meta($post_id, $user_key, true) == '') { vortex_add_meta($post_id, $user_key, $user_data, true); } elseif ($shall_we && !(vortex_get_meta($post_id, $user_key, true) == '')) { $response = array('dislikes' => "exit"); echo json_encode($response); exit; } $user_data_new = array('liked' => 'liked', 'disliked' => 'nodisliked'); $singular = sanitize_text_field($vortex_like_dislike['v-singular-text']); $plural = sanitize_text_field($vortex_like_dislike['v-plural-text']); $current_user = vortex_get_meta($post_id, $user_key, true); $current_user_disliked = $current_user['disliked']; $liked_value = $current_user['liked']; //custom $login_number = apply_filters('vortex_login_number', 1); $logout_number = apply_filters('vortex_logout_number', 1); //END custom if (!is_user_logged_in() && $vortex_like_dislike['v-switch-anon']) { if ($current_user_liked == 'noliked') { $response = array('likes' => "exit"); echo json_encode($response); exit; } if ($current_user_liked == 'nodisliked') { $response = array('dislikes' => "exit"); echo json_encode($response); exit; } } if ($current_user_disliked == 'disliked' && $liked_value == 'noliked') { $current_likes = vortex_get_meta($post_id, $likes, true); if (!is_user_logged_in()) { $current_likes -= $logout_number; } else { $current_likes -= $login_number; } vortex_update_meta($post_id, $likes, $current_likes); $current_dislikes = vortex_get_meta($post_id, $dislikes, true); if (!is_user_logged_in()) { $current_dislikes += $logout_number; } else { $current_dislikes += $login_number; } vortex_update_meta($post_id, $dislikes, $current_dislikes); vortex_update_meta($post_id, $user_key, $user_data_new); do_action("vortex_post_dislike", '-likes', '+dislikes', $current_user_id, $post_id); if ($vortex_like_dislike['v_custom_text']) { $current_dislikes = $vortex_like_dislike['v_custom_text_post_dislike']; } if ($vortex_like_dislike['v_enable_delete'] && $current_dislikes >= $vortex_like_dislike['v_delete_number']) { wp_delete_post($post_id, true); } $response = array('dislikes' => $current_dislikes, 'likes' => $current_likes, 'both' => 'yes', 'singular' => $singular, 'plural' => $plural, 'title' => esc_html(get_the_title($post_id)), 'url' => esc_url(get_permalink($post_id)), 'id' => $post_id); echo json_encode($response); exit; } elseif ($current_user_disliked == 'disliked') { //he likes the post add +1 to likes //change the liked value so when he clicks again we can undo his vote $current_dislikes = vortex_get_meta($post_id, $dislikes, true); if (!is_user_logged_in()) { $current_dislikes += $logout_number; } else { $current_dislikes += $login_number; } vortex_update_meta($post_id, $dislikes, $current_dislikes); vortex_update_meta($post_id, $user_key, $user_data_new); do_action("vortex_post_dislike", 'nothing', '+dislikes', $current_user_id, $post_id); if ($vortex_like_dislike['v_enable_delete'] && $current_dislikes >= $vortex_like_dislike['v_delete_number']) { wp_delete_post($post_id, true); } } elseif ($current_user_disliked == 'nodisliked') { //he doesn't like the post anymore let's undo his vote and change his meta so we can add his vote back //if he changes his mind $current_dislikes = vortex_get_meta($post_id, $dislikes, true); if (!is_user_logged_in()) { $current_dislikes -= $logout_number; } else { $current_dislikes -= $login_number; } vortex_update_meta($post_id, $dislikes, $current_dislikes); do_action("vortex_post_dislike", 'nothing', '-dislikes', $current_user_id, $post_id); vortex_update_meta($post_id, $user_key, $user_data); $response = array('dislikes' => $current_dislikes, 'both' => 'no', 'singular' => $singular, 'plural' => $plural, 'title' => esc_html(get_the_title($post_id)), 'url' => esc_url(get_permalink($post_id)), 'id' => $post_id); echo json_encode($response); wp_die(); } if ($vortex_like_dislike['v_custom_text']) { $current_dislikes = $vortex_like_dislike['v_custom_text_post_dislike']; } $response = array('dislikes' => $current_dislikes, 'both' => 'no', 'singular' => $singular, 'plural' => $plural, 'title' => esc_html(get_the_title($post_id)), 'url' => esc_url(get_permalink($post_id)), 'id' => $post_id); echo json_encode($response); wp_die(); }
function vortex_system_comment_dislike_button() { $nonce = $_POST['nonce']; if (!wp_verify_nonce($nonce, 'ajax-nonce')) { wp_die(); } $vortex_like_dislike = get_option("vortex_like_dislike"); if (!$vortex_like_dislike['v-switch-anon-comment'] && !is_user_logged_in()) { exit; } $post_id = absint($_POST['post_id']); vortex_ra_cookie('dislikecom', $post_id, 'likecom'); $likes = 'vortex_system_likes'; $dislikes = 'vortex_system_dislikes'; if (is_user_logged_in()) { $current_user_id = get_current_user_id(); $user_key = 'vortex_system_user_' . $current_user_id; } elseif ($vortex_like_dislike['v-switch-anon-comment']) { $current_user_id = get_current_user_id(); $user_ip = sanitize_text_field($_SERVER['REMOTE_ADDR']); $user_key = 'vortex_system_user_' . $user_ip; } else { wp_die(); } //defaults for user when he first time dislikes a post $user_data = array('liked' => 'liked', 'disliked' => 'disliked'); $user_data_new = array('liked' => 'liked', 'disliked' => 'nodisliked'); //if this is the first time a user dislikes this post add the users data to the meta post if (get_comment_meta($post_id, $user_key, true) == '') { add_comment_meta($post_id, $user_key, $user_data, true); } $current_user = get_comment_meta($post_id, $user_key, true); $current_user_disliked = $current_user['disliked']; $liked_value = $current_user['liked']; if ($current_user_disliked == 'disliked' && $liked_value == 'noliked' || vortex_ra_read_cookie('likecom', $post_id) == 'found' && vortex_ra_read_cookie('dislikecom', $post_id) == 'notfound') { $current_likes = get_comment_meta($post_id, $likes, true); $current_likes--; update_comment_meta($post_id, $likes, $current_likes); $current_dislikes = get_comment_meta($post_id, $dislikes, true); $current_dislikes++; update_comment_meta($post_id, $dislikes, $current_dislikes); update_comment_meta($post_id, $user_key, $user_data_new); do_action("vortex_com_dislike", '-likes', '+dislikes', $current_user_id, $post_id); if ($vortex_like_dislike['v_custom_text_com']) { $current_dislikes = $vortex_like_dislike['v_custom_text_com_dislike']; } $response = array('dislikes' => $current_dislikes, 'likes' => $current_likes, 'both' => 'yes'); echo json_encode($response); exit; } elseif ($current_user_disliked == 'disliked' || vortex_ra_read_cookie('dislikecom', $post_id) == 'notfound') { //he likes the post add +1 to likes //change the liked value so when he clicks again we can undo his vote $current_dislikes = get_comment_meta($post_id, $dislikes, true); $current_dislikes++; update_comment_meta($post_id, $dislikes, $current_dislikes); update_comment_meta($post_id, $user_key, $user_data_new); do_action("vortex_com_dislike", 'nothing', '+dislikes', $current_user_id, $post_id); } elseif ($current_user_disliked == 'nodisliked' || vortex_ra_read_cookie('dislikecom', $post_id) == 'found') { //he doesn't like the post anymore let's undo his vote and change his meta so we can add his vote back //if he changes his mind $current_dislikes = get_comment_meta($post_id, $dislikes, true); $current_dislikes--; update_comment_meta($post_id, $dislikes, $current_dislikes); update_comment_meta($post_id, $user_key, $user_data); do_action("vortex_com_dislike", 'nothing', '-dislikes', $current_user_id, $post_id); $response = array('dislikes' => $current_dislikes, 'both' => 'no'); echo json_encode($response); wp_die(); } if ($vortex_like_dislike['v_custom_text_com']) { $current_dislikes = $vortex_like_dislike['v_custom_text_com_dislike']; } $response = array('dislikes' => $current_dislikes, 'both' => 'no'); echo json_encode($response); wp_die(); }