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();
 }
Example #2
0
 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();
 }