OwlCyberSecurity - MANAGER
Edit File: jobsearch-chat-ajax.php
<?php //$absolute_path = __FILE__; //$path_to_file = explode('wp-content', $absolute_path); //$path_to_wp = $path_to_file[0]; //require_once($path_to_wp . '/wp-load.php'); class Jobsearch_Ajax_Chat { public function callback($param) { global $wpdb, $jobsearch_chat_settings, $jobsearch_plugin_options, $jobsearch_chat_share_files, $jobsearch_download_locations; $current_user_id = get_current_user_id(); // $jobsearch_chat_share_files = true; add_filter('upload_dir', 'jobsearch_chat_files_upload_dir', 10, 1); $wp_upload_dir = wp_upload_dir(); define('JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL', $wp_upload_dir['url'] . "/"); define('JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_PATH', $wp_upload_dir['path'] . "/"); remove_filter('upload_dir', 'jobsearch_chat_files_upload_dir', 10, 1); $jobsearch_chat_share_files = false; $jobsearch_download_locations = false; // /* * File extensions * */ $allFiles = array('unknown', 'rar', 'zip', 'mp3', 'mp4', 'mov', 'flv', 'wmv', 'avi', 'doc', 'docx', 'pdf', 'xls', 'xlsx', 'zip', 'rar', 'txt'); $docFiles = 'unknown|rar|zip|mp3|mp4|mov|flv|wmv|avi|doc|docx|pdf|xls|xlsx|zip|rar|txt|php|html|css'; $supported_image = array( 'gif', 'jpg', 'jpeg', 'png', 'swf', 'JPG' ); $supported_image_full_formate = array( 'image/gif', 'image/jpg', 'image/jpeg', 'image/png', 'image/swf', 'image/JPG' ); $php_pusher_auth = isset($jobsearch_plugin_options['jobsearch-php-pusher-auth-key']) ? $jobsearch_plugin_options['jobsearch-php-pusher-auth-key'] : ''; $php_pusher_secret = isset($jobsearch_plugin_options['jobsearch-php-pusher-auth-secret']) ? $jobsearch_plugin_options['jobsearch-php-pusher-auth-secret'] : ''; $php_pusher_app_id = isset($jobsearch_plugin_options['jobsearch-php-pusher-app-id']) ? $jobsearch_plugin_options['jobsearch-php-pusher-app-id'] : ''; $php_pusher_cluster = isset($jobsearch_plugin_options['jobsearch-php-pusher-auth-cluster']) ? $jobsearch_plugin_options['jobsearch-php-pusher-auth-cluster'] : ''; $options = array( 'cluster' => $php_pusher_cluster, 'useTLS' => true ); $pusher = new Pusher\Pusher( $php_pusher_auth, $php_pusher_secret, $php_pusher_app_id, $options ); if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_delete_user_friend') { global $wpdb; $wpdb->query('DELETE FROM ' . $wpdb->prefix . 'chatfriendlist WHERE f_id = "' . $_POST['f_user_id'] . '"'); $data = array( 'friend_id' => get_current_user_id(), 'deleted_id' => $_POST['user_real_id'], ); $pusher->trigger('presence-admin-chat', 'del-user-friend', $data); } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_delete_message') { global $wpdb; $res = $wpdb->query('DELETE FROM ' . $wpdb->prefix . 'chatmessages WHERE chat_id = "' . $_POST['chat_id'] . '"'); $data = array( 'delete_msg' => $res, 'chat_id' => $_POST['chat_id'], ); $pusher->trigger('presence-admin-chat', 'del-message', $data); echo $res; } if (isset($_POST['action']) && $_POST['action'] == 'uploadFile') { require_once ABSPATH . 'wp-admin/includes/image.php'; require_once ABSPATH . 'wp-admin/includes/file.php'; require_once ABSPATH . 'wp-admin/includes/media.php'; // $current_user = wp_get_current_user(); $file_name_filtered = preg_replace('/[^A-Za-z0-9\-\(\) ]/', '.', basename($_FILES['userfile']['name'])); $file_name = str_replace(' ', '-', trim(basename($file_name_filtered))); $target_path = JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_PATH; // $jobsearch_chat_share_files = true; add_filter('upload_dir', 'jobsearch_chat_files_upload_dir', 10, 1); $wp_upload_dir = wp_upload_dir(); $upload_file_path = $wp_upload_dir['path']; if (!file_exists($wp_upload_dir['path'] . "/" . $file_name)) { $status_upload = wp_handle_upload($_FILES['userfile'], array('test_form' => false)); } remove_filter('upload_dir', 'jobsearch_chat_files_upload_dir', 10, 1); $jobsearch_chat_share_files = false; $attach_mime = $_FILES['userfile']['type']; if ($attach_mime == 'application/pdf') { $attach_icon = 'fa fa-file-pdf-o'; } else if ($attach_mime == 'application/msword' || $attach_mime == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') { $attach_icon = 'fa fa-file-word-o'; } else if ($attach_mime == 'text/plain') { $attach_icon = 'fa fa-file-text-o'; } else if ($attach_mime == 'application/vnd.ms-excel' || $attach_mime == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') { $attach_icon = 'fa fa-file-excel-o'; } else if ($attach_mime == 'image/jpeg' || $attach_mime == 'image/png') { $attach_icon = 'fa fa-file-image-o'; } else { $attach_icon = 'fa fa-file-word-o'; } if (isset($status_upload['file']) || file_exists($wp_upload_dir['path'] . "/" . $file_name)) { // $chat_message_ext = $attach_mime; $user_meta = get_userdata($_POST['sender_id']); $wpdb->insert("{$wpdb->prefix}chatmessages", array( 'sender_id' => $_POST['sender_id'], 'reciever_id' => $_POST['reciever_id'], 'message' => $file_name, 'viewed' => 0, 'is_deleted' => 0, )); $unread_messages_reciver = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$_POST['sender_id']} AND reciever_id = {$_POST['reciever_id']} and viewed = 0"); $data = array( 'message' => $file_name, 'sender_id' => $_POST['sender_id'], 'reciever_id' => $_POST['reciever_id'], 'logged_in_user' => $current_user->ID, 'user_role' => $user_meta->roles[0], 'file_path' => JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL, 'file_icon' => $attach_icon, 'file_size' => filesize(JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_PATH . $file_name), 'file_type' => !in_array($chat_message_ext, $supported_image_full_formate) ? 'file' : 'image', 'sender_image' => $_POST['sender_image'], 'receiver_image' => $_POST['receiver_image'], 'unread_messages_reciver' => count($unread_messages_reciver), 'last_id' => $wpdb->insert_id, 'last_msg_time' => date('g:ia') ); $pusher->trigger('presence-admin-chat', 'admin-file-share', $data); } } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_send_message') { $current_user = wp_get_current_user(); // if (isset($_POST['typing']) && $_POST['typing'] != '') { $data_to_send = array( 'typing' => $_POST['typing'], 'sender_id' => $_POST['sender_id'], 'reciever_id' => $_POST['reciever_id'] ); $pusher->trigger('presence-admin-chat', 'typing-event', $data_to_send); } else { $wpdb->insert("{$wpdb->prefix}chatmessages", array( 'sender_id' => $_POST['sender_id'], 'reciever_id' => $_POST['reciever_id'], 'message' => trim(strip_tags($_POST['message'])), 'viewed' => 0, 'is_deleted' => 0, )); // $data_to_send = array(); $data_to_send[] = array( 'message' => trim(strip_tags(convert_smilies($_POST['message']))), 'sender_id' => $_POST['sender_id'], 'reciever_id' => $_POST['reciever_id'], 'datetime' => date('g:ia l,F Y'), 'logged_in_user' => $current_user->ID, 'sender_image' => $_POST['sender_image'], 'receiver_image' => $_POST['receiver_image'], 'last_id' => $wpdb->insert_id, 'last_msg_time' => date('g:ia'), 'small_text' => $jobsearch_chat_settings->limit_text(trim(strip_tags(convert_smilies($_POST['message']))), 5) ); // if (strpos(trim(strip_tags($_POST['message'])), 'youtube.com/watch?') != '' || strpos(trim(strip_tags($_POST['message'])), 'vimeo') != '' || strpos(trim(strip_tags($_POST['message'])), 'dailymotion.com/video/') != '') { $data_to_send[0]['is_video'] = wp_oembed_get($_POST['message'], array('height' => 200)); } echo json_encode(array('last_id' => $data_to_send[0]['last_id'], 'is_video' => isset($data_to_send[0]['is_video']) ? $data_to_send[0]['is_video'] : '')); $unread_messages_reciver = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$current_user->ID} AND reciever_id = {$_POST['reciever_id']} and viewed = 0"); $pusher->trigger('presence-admin-chat', 'send-event', array('chat_msg' => $data_to_send, 'totl_receiver_msgs' => count($unread_messages_reciver))); } } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_enable_disable_chat') { $current_user = wp_get_current_user(); update_option('jobsearch_chat_chat_status_'.$current_user->ID, $_POST['val']); echo json_encode(array('response' => $_POST['val'])); } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_get_users_by_key') { $user_type = isset($_POST['user_type']) && $_POST['user_type'] == 'emp' ? 'jobsearch_employer' : 'jobsearch_candidate'; $get_all_users = isset($_POST['get_all_users']) ? $_POST['get_all_users'] : ''; // if ($get_all_users == 'false') { $users = new WP_User_Query(array( 'search' => '*' . esc_attr($_POST['string']) . '*', 'role' => $user_type, 'number' => 50, 'orderby' => 'user_nicename', 'role__not_in' => 'admin', 'order' => 'ASC', 'search_columns' => array( 'display_name', ), )); $users_found = $users->get_results(); // } else { $args = array( 'role' => $user_type, 'orderby' => 'user_nicename', 'role__not_in' => 'admin', 'order' => 'ASC', 'number' => 50, ); $users_found = get_users($args); } foreach ($users_found as $info_user) { $total_msgs = $jobsearch_chat_settings->get_unviewed_messages($info_user->ID); $user_img = get_avatar_url($info_user->ID); $user_msgs = $jobsearch_chat_settings->get_user_last_msg_info($info_user->ID); $last_msg = end($user_msgs); $user_login_status = get_post_meta($info_user->ID, 'jobsearch_chat_login_status', true); ob_start(); ?> <li class="jobsearch-chat-user-<?php echo($info_user->ID) ?> jobsearch-load-user-chat" data-user-chat="<?php echo($info_user->ID) ?>"> <img src="<?php echo($user_img) ?>"> <span class="status status-with-thumb <?php echo $user_login_status == 0 || empty($user_login_status) ? 'orange' : 'green'; ?>"></span> <div> <h2><?php echo($info_user->display_name) ?> <small><?php echo $last_msg != '' ? date("g:ia", strtotime($last_msg->time_sent)) : '' ?></small> </h2> <p><?php echo $last_msg != '' ? $jobsearch_chat_settings->limit_text($last_msg->message, 5) : '' ?> <span class="jobsearch-chat-unread-message <?php echo count($total_msgs) == 0 ? 'hidden' : ''; ?>"><?php echo count($total_msgs) ?></span> </p> </div> </li> <?php } $html = ob_get_clean(); echo $html; } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_load_current_user_chat') { $reciever_id = $_POST['reciever_id']; $limit = $_POST['limit']; $current_user = wp_get_current_user(); $query = "SELECT * FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$current_user->ID} AND reciever_id = {$reciever_id} or sender_id = {$reciever_id} AND reciever_id = {$current_user->ID} order by chat_id DESC LIMIT {$limit}, 10"; $messages = $wpdb->get_results($query); // $pusher->trigger('presence-admin-chat', 'updated-messages', $messages); $first_msg_date = ''; if (count($messages)) { if (jobsearch_user_is_employer($current_user->ID)) { $employer_user_id = $current_user->ID; $employer_id = jobsearch_get_user_employer_id($employer_user_id); $sender_user_def_avatar_url = get_avatar_url($employer_user_id, array('size' => 140)); $user_avatar_id = get_post_thumbnail_id($employer_id); if ($user_avatar_id > 0) { $user_thumbnail_image = wp_get_attachment_image_src($user_avatar_id, 'thumbnail'); $sender_user_def_avatar_url = isset($user_thumbnail_image[0]) && esc_url($user_thumbnail_image[0]) != '' ? $user_thumbnail_image[0] : ''; } else { $sender_user_def_avatar_url = jobsearch_employer_image_placeholder(); } } else if (jobsearch_user_is_candidate($current_user->ID)) { $cand_user_id = $current_user->ID; $candidate_user_id = jobsearch_get_user_candidate_id($cand_user_id); $sender_user_def_avatar_url = $jobsearch_chat_settings->jobsearch_cand_img_url_wout_encode($candidate_user_id); } else { $sender_user_def_avatar_url = get_avatar_url($current_user->ID); } // if (jobsearch_user_is_employer($reciever_id)) { $employer_user_id = $reciever_id; $employer_id = jobsearch_get_user_employer_id($employer_user_id); $rec_user_def_avatar_url = get_avatar_url($employer_user_id, array('size' => 140)); $user_avatar_id = get_post_thumbnail_id($employer_id); if ($user_avatar_id > 0) { $user_thumbnail_image = wp_get_attachment_image_src($user_avatar_id, 'thumbnail'); $rec_user_def_avatar_url = isset($user_thumbnail_image[0]) && esc_url($user_thumbnail_image[0]) != '' ? $user_thumbnail_image[0] : ''; } else { $rec_user_def_avatar_url = jobsearch_employer_image_placeholder(); } } else if (jobsearch_user_is_candidate($reciever_id)) { $cand_user_id = $reciever_id; $candidate_user_id = jobsearch_get_user_candidate_id($cand_user_id); $rec_user_def_avatar_url = $jobsearch_chat_settings->jobsearch_cand_img_url_wout_encode($candidate_user_id); } else { $rec_user_def_avatar_url = get_avatar_url($reciever_id); } ob_start(); foreach (array_reverse($messages) as $chat_info) { $wpdb->query("UPDATE {$wpdb->prefix}chatmessages SET viewed = 1 WHERE sender_id={$reciever_id} and reciever_id = {$current_user->ID} and chat_id = {$chat_info->chat_id}"); $chat_message = $chat_info->message; $chat_message_ext = explode('.', $chat_message); ?> <li class="<?php echo $chat_info->sender_id == $current_user->ID ? 'you' : 'me' ?> "> <?php if ($chat_info->sender_id == $current_user->ID) { ?> <img src="<?php echo $chat_info->sender_id == $current_user->ID ? $sender_user_def_avatar_url : $rec_user_def_avatar_url ?>"> <div class="jobsearch-chat-user-events"> <a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="<?php echo($chat_info->chat_id) ?>"> <i class="chat-icon chat-trash-fill"></i> </a> </div> <?php } ?> <div class="jobsearch-chat-entete-wrapper chat-<?php echo($chat_info->chat_id) ?>"> <?php if (!empty($chat_message_ext)) { $end_extension = end($chat_message_ext); if (in_array($end_extension, $supported_image)) { ?> <a target="_blank" href="<?php echo JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL . $chat_info->message ?>"> <img class="prchat_convertedImage" src="<?php echo JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL . $chat_info->message ?>"> </a> <?php } else if (in_array($end_extension, $allFiles)) { $filename = basename(JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL . $chat_info->message); $filetype = wp_check_filetype($filename, null); $file_size = @filesize(JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_PATH . $filename); $attach_mime = isset($filetype['type']) ? $filetype['type'] : ''; if ($attach_mime == 'application/pdf') { $attach_icon = 'fa fa-file-pdf-o'; } else if ($attach_mime == 'application/msword' || $attach_mime == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') { $attach_icon = 'fa fa-file-word-o'; } else if ($attach_mime == 'text/plain') { $attach_icon = 'fa fa-file-text-o'; } else if ($attach_mime == 'application/vnd.ms-excel' || $attach_mime == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') { $attach_icon = 'fa fa-file-excel-o'; } else if ($attach_mime == 'image/jpeg' || $attach_mime == 'image/png') { $attach_icon = 'fa fa-file-image-o'; } else { $attach_icon = 'fa fa-file-word-o'; } ?> <p><a target="_blank" href="<?php echo JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL . $chat_info->message ?>"> <i class="<?php echo($attach_icon) ?>"></i> <span><?php echo($chat_info->message) ?><br> <?php if ($file_size > 0) { ?> <small><?php echo ($file_size) . " KB" ?></small> <?php } ?> </span> </a> </p> <?php } else if (strpos($chat_info->message, 'youtube.com/watch?') != '' || strpos($chat_info->message, 'vimeo') != '' || strpos($chat_info->message, 'dailymotion.com/video/') != '') { ?> <p><?php echo wp_oembed_get($chat_info->message, array('height' => 200)); ?></p> <?php } else { ?> <p> <?php echo convert_smilies($chat_info->message) ?> </p> <?php } } ?> <div class="jobsearch-chat-entete"> <h3><?php echo $jobsearch_chat_settings->get_day_name_and_time($chat_info->time_sent) ?></h3> <a href="javascript:void(0)" class="jobsearch-color jobsearch-chat-seen"><?php echo esc_html__('Seen', 'jobsearch-ajchat') ?></a> </div> </div> <?php if ($chat_info->sender_id != $current_user->ID) { ?> <img src="<?php echo $chat_info->sender_id == $current_user->ID ? $sender_user_def_avatar_url : $rec_user_def_avatar_url ?>"> <div class="jobsearch-chat-user-events"> <a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="<?php echo($chat_info->chat_id) ?>"> <i class="chat-icon chat-trash-fill"></i> </a> </div> <?php } ?> </li> <?php } } else { // $query = "SELECT * FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$current_user->ID} AND reciever_id = {$reciever_id} or sender_id = {$reciever_id} AND reciever_id = {$current_user->ID} order by chat_id ASC"; $messages = $wpdb->get_results($query); if (count($messages) > 0) { $first_msg_date = esc_html__('Started from ', 'jobsearch-ajchat') . $jobsearch_chat_settings->get_day_name_and_time($messages[0]->time_sent); } } $unread_messages = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$reciever_id} AND reciever_id = {$current_user->ID} and viewed = 0"); $html = ob_get_clean(); echo json_encode(array('html' => $html, 'unread_messages' => count($unread_messages), 'reciever_id' => $reciever_id, 'first_msg_date' => $first_msg_date)); } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_load_current_user_chat_front') { $reciever_id = $_POST['reciever_id']; $limit = $_POST['limit']; $current_user = wp_get_current_user(); $messages = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$current_user->ID} AND reciever_id = {$reciever_id} or sender_id = {$reciever_id} AND reciever_id = {$current_user->ID} order by chat_id DESC LIMIT {$limit}, 10"); $user_image_sender = ''; $user_img = ''; if (jobsearch_user_is_employer($current_user->ID)) { $employer_user_id = $current_user->ID; $employer_id = jobsearch_get_user_employer_id($employer_user_id); $sender_user_def_avatar_url = get_avatar_url($employer_user_id, array('size' => 140)); $user_avatar_id = get_post_thumbnail_id($employer_id); if ($user_avatar_id > 0) { $user_thumbnail_image = wp_get_attachment_image_src($user_avatar_id, 'thumbnail'); $sender_user_def_avatar_url = isset($user_thumbnail_image[0]) && esc_url($user_thumbnail_image[0]) != '' ? $user_thumbnail_image[0] : ''; } else { $sender_user_def_avatar_url = jobsearch_employer_image_placeholder(); } } else if (jobsearch_user_is_candidate($current_user->ID)) { $cand_user_id = $current_user->ID; $candidate_user_id = jobsearch_get_user_candidate_id($cand_user_id); $sender_user_def_avatar_url = $jobsearch_chat_settings->jobsearch_cand_img_url_wout_encode($candidate_user_id); } else { $sender_user_def_avatar_url = get_avatar_url($current_user->ID); } // if (jobsearch_user_is_employer($reciever_id)) { $employer_user_id = $reciever_id; $employer_id = jobsearch_get_user_employer_id($employer_user_id); $rec_user_def_avatar_url = get_avatar_url($employer_user_id, array('size' => 140)); $user_avatar_id = get_post_thumbnail_id($employer_id); if ($user_avatar_id > 0) { $user_thumbnail_image = wp_get_attachment_image_src($user_avatar_id, 'thumbnail'); $rec_user_def_avatar_url = isset($user_thumbnail_image[0]) && esc_url($user_thumbnail_image[0]) != '' ? $user_thumbnail_image[0] : ''; } else { $rec_user_def_avatar_url = jobsearch_employer_image_placeholder(); } } else if (jobsearch_user_is_candidate($reciever_id)) { $cand_user_id = $reciever_id; $candidate_user_id = jobsearch_get_user_candidate_id($cand_user_id); $rec_user_def_avatar_url = $jobsearch_chat_settings->jobsearch_cand_img_url_wout_encode($candidate_user_id); } else { $rec_user_def_avatar_url = get_avatar_url($reciever_id); } $first_msg_date = ''; if (count($messages)) { ob_start(); foreach (array_reverse($messages) as $chat_info) { $user_meta = get_userdata($chat_info->sender_id); $chat_message = $chat_info->message; $chat_message_ext = explode('.', $chat_message); $user_is_employer = jobsearch_user_is_employer($chat_info->sender_id); ?> <li class="<?php echo $chat_info->sender_id == $current_user->ID ? 'conversation-me' : 'conversation-from' ?>"> <span> <img src="<?php echo $chat_info->sender_id == $current_user->ID ? $sender_user_def_avatar_url : $rec_user_def_avatar_url ?>"> </span> <div class="jobsearch-chat-user-events"> <a href="javascript:void(0)" class="jobsearch-chat-del-message" data-chat-id="<?php echo($chat_info->chat_id) ?>"> <i class="chat-icon chat-trash-fill"></i> </a> </div> <?php if (!empty($chat_message_ext)) { $end_extension = end($chat_message_ext); if (in_array($end_extension, $supported_image)) { ?> <div class="jobsearch-chat-list-thumb chat-<?php echo($chat_info->chat_id) ?>"> <a href="<?php echo JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL . $chat_info->message ?>"> <img class="prchat_convertedImage" src="<?php echo JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL . $chat_info->message ?>"> </a> <br> <small class="jobsearch-chat-msg-time"><?php echo $jobsearch_chat_settings->get_day_name_and_time($chat_info->time_sent) ?></small> </div> <?php } else if (in_array($end_extension, $allFiles)) { $filename = basename(JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL . $chat_info->message); $filetype = wp_check_filetype($filename, null); $attach_mime = isset($filetype['type']) ? $filetype['type'] : ''; if ($attach_mime == 'application/pdf') { $attach_icon = 'fa fa-file-pdf-o'; } else if ($attach_mime == 'application/msword' || $attach_mime == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') { $attach_icon = 'fa fa-file-word-o'; } else if ($attach_mime == 'text/plain') { $attach_icon = 'fa fa-file-text-o'; } else if ($attach_mime == 'application/vnd.ms-excel' || $attach_mime == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') { $attach_icon = 'fa fa-file-excel-o'; } else if ($attach_mime == 'image/jpeg' || $attach_mime == 'image/png') { $attach_icon = 'fa fa-file-image-o'; } else { $attach_icon = 'fa fa-file-word-o'; } ?> <div class="jobsearch-chat-list-thumb chat-<?php echo($chat_info->chat_id) ?>"> <p><a href="<?php echo JOBSEARCH_CHAT_MODULE_UPLOAD_FOLDER_URL . $chat_info->message ?>"> <i class="<?php echo($attach_icon) ?>"></i> <?php echo($chat_info->message) ?> </a></p> <br> <small class="jobsearch-chat-msg-time"><?php echo $jobsearch_chat_settings->get_day_name_and_time($chat_info->time_sent) ?> </small> </div> <?php } else if (strpos($chat_info->message, 'youtube.com/watch?') != '' || strpos($chat_info->message, 'vimeo') != '' || strpos($chat_info->message, 'dailymotion.com/video/') != '') { ?> <div class="jobsearch-chat-list-thumb chat-<?php echo($chat_info->chat_id) ?>"><?php echo wp_oembed_get($chat_info->message, array('height' => 100)); ?></p> <br> <small class="jobsearch-chat-msg-time"><?php echo $jobsearch_chat_settings->get_day_name_and_time($chat_info->time_sent) ?></small> </div> <?php } else { ?> <div class="jobsearch-chat-list-thumb chat-<?php echo($chat_info->chat_id) ?>"> <p><?php echo convert_smilies($chat_info->message) ?></p> <br> <small class="jobsearch-chat-msg-time"><?php echo $jobsearch_chat_settings->get_day_name_and_time($chat_info->time_sent) ?></small> </div> <?php } ?> <?php } ?> </li> <?php } } else { // $query = "SELECT * FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$current_user->ID} AND reciever_id = {$reciever_id} or sender_id = {$reciever_id} AND reciever_id = {$current_user->ID} order by chat_id ASC"; $messages = $wpdb->get_results($query); if (count($messages) > 0) { $first_msg_date = esc_html__('Started from ', 'jobsearch-ajchat') . $jobsearch_chat_settings->get_day_name_and_time($messages[0]->time_sent); } } $unread_messages = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$reciever_id} AND reciever_id = {$current_user->ID} and viewed = 0"); $html = ob_get_clean(); echo json_encode(array('html' => $html, 'unread_messages' => count($unread_messages), 'reciever_id' => $reciever_id, 'last_msg_time' => date('g:ia'), 'first_msg_date' => $first_msg_date)); } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_update_unread_messages') { $wpdb->query("UPDATE {$wpdb->prefix}chatmessages SET viewed = 1 WHERE sender_id={$_POST['reciever_id']} and reciever_id = {$_POST['sender_id']}"); $seen_messages_id = $wpdb->get_results("SELECT chat_id FROM {$wpdb->prefix}chatmessages WHERE sender_id={$_POST['reciever_id']} and reciever_id = {$_POST['sender_id']} and viewed = 1"); $pusher->trigger('presence-admin-chat', 'updated-messages', $seen_messages_id); } // if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_load_next_employers') { $args = array( 'role' => 'jobsearch_employer', 'orderby' => 'user_nicename', 'role__not_in' => 'admin', 'order' => 'ASC', 'number' => 50, 'offset' => $_POST['offset'] ); $jobsearch_employer = get_users($args); foreach ($jobsearch_employer as $info_emp) { $total_msgs = $jobsearch_chat_settings->get_unviewed_messages($info_emp->ID); $user_msgs = $jobsearch_chat_settings->get_user_last_msg_info($info_emp->ID); $last_msg = end($user_msgs); $user_img = get_avatar_url($info_emp->ID); $emp_login_status = get_post_meta($info_emp->ID, 'jobsearch_chat_login_status', true); ob_start(); ?> <li class="jobsearch-chat-user-<?php echo($info_emp->ID) ?> jobsearch-load-user-chat" data-user-chat="<?php echo($info_emp->ID) ?>"> <img src="<?php echo($user_img) ?>"> <span class="status status-with-thumb <?php echo $emp_login_status == 0 || empty($emp_login_status) ? 'orange' : 'green'; ?>"></span> <div> <h2 class="name"><?php echo($info_emp->display_name) ?> <small><?php echo $last_msg != '' ? date("g:ia", strtotime($last_msg->time_sent)) : '' ?></small> </h2> <p><?php echo $last_msg != '' ? $jobsearch_chat_settings->limit_text($last_msg->message, 5) : '' ?> <span class="jobsearch-chat-unread-message <?php echo count($total_msgs) == 0 ? 'hidden' : ''; ?>"><?php echo count($total_msgs) ?></span> </p> </div> </li> <?php } $html = ob_get_clean(); echo $html; } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_load_next_candidate') { $args = array( 'role' => 'jobsearch_candidate', 'orderby' => 'user_nicename', 'role__not_in' => 'admin', 'order' => 'ASC', 'number' => 50, 'offset' => $_POST['offset'] ); $jobsearch_candidate = get_users($args); foreach ($jobsearch_candidate as $info_cand) { $total_msgs = $jobsearch_chat_settings->get_unviewed_messages($info_cand->ID); $user_msgs = $jobsearch_chat_settings->get_user_last_msg_info($info_cand->ID); $user_img = get_avatar_url($info_cand->ID); $last_msg = end($user_msgs); $cand_login_status = get_post_meta($info_cand->ID, 'jobsearch_chat_login_status', true); ob_start(); ?> <li class="jobsearch-chat-user-<?php echo($info_cand->ID) ?> jobsearch-load-user-chat" data-user-chat="<?php echo($info_cand->ID) ?>"> <img src="<?php echo($user_img) ?>"> <span class="status status-with-thumb <?php echo $cand_login_status == 0 || empty($cand_login_status) ? 'orange' : 'green'; ?>"></span> <div> <h2><?php echo($info_cand->display_name) ?> <small><?php echo $last_msg != '' ? date("g:ia", strtotime($last_msg->time_sent)) : '' ?></small> </h2> <p><?php echo $last_msg != '' ? $jobsearch_chat_settings->limit_text($last_msg->message, 5) : '' ?> <span class="jobsearch-chat-unread-message <?php echo count($total_msgs) == 0 ? 'hidden' : ''; ?>"><?php echo count($total_msgs) ?></span> </p> </div> </li> <?php } $html = ob_get_clean(); echo $html; } // if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_sort_contact') { $ids = []; $sort_by = $_POST['sort_by']; if ($sort_by == 'sort_by_recent') { $result = $wpdb->get_results("SELECT reciever_id FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$_POST['current_user_id']} group by reciever_id order by time_sent DESC "); } else { $result = $wpdb->get_results("SELECT reciever_id FROM {$wpdb->prefix}chatmessages WHERE sender_id = {$_POST['current_user_id']} and viewed = 0 group by reciever_id order by time_sent DESC "); } foreach ($result as $user_info) { $ids[] = $user_info->reciever_id; } if (jobsearch_user_is_candidate($current_user_id)) { $total_contacts = $wpdb->get_results("SELECT employer_id FROM {$wpdb->prefix}chatfriendlist group by employer_id ORDER BY FIELD(f_id,2) DESC"); } else { $total_contacts = $wpdb->get_results("SELECT candidate_id FROM {$wpdb->prefix}chatfriendlist group by candidate_id ORDER BY FIELD(f_id,2) DESC"); } } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_add_to_chat_cand') { $jobsearch__options = get_option('jobsearch_plugin_options'); $user_dashboard_page = isset($jobsearch__options['user-dashboard-template-page']) ? $jobsearch__options['user-dashboard-template-page'] : ''; $page_id = jobsearch__get_post_id($user_dashboard_page, 'page'); $page_url = jobsearch_wpml_lang_page_permalink($page_id, 'page'); $redirect_url = add_query_arg(array('tab' => 'emp-chat'), $page_url); $current_user = get_current_user_id(); $u_candidate_id = jobsearch_get_candidate_user_id($_POST['cand_id']); $wpdb->insert("{$wpdb->prefix}chatfriendlist", array( 'employer_id' => $current_user, 'candidate_id' => $u_candidate_id, )); $user_data = get_userdata($current_user); $user_img = get_avatar_url($user_data->ID); $total_msgs = $jobsearch_chat_settings->get_unviewed_messages($user_data->ID); ob_start(); ?> <li class="ofline jobsearch-chat-front-user-<?php echo($user_data->ID) ?> load-chat-box" data-user-id="<?php echo($user_data->ID) ?>"> <span> <img src="<?php echo($user_img) ?>" alt=""> </span> <div class="jobsearch-chat-list-thumb user-info"> <a href="javascript:void(0)" class="name"><?php echo($user_data->display_name) ?> <small class="<?php echo count($total_msgs) == 0 ? 'hidden' : ''; ?>"><?php echo count($total_msgs) ?></small> </a> </div> </li> <?php $html = ob_get_clean(); echo json_encode(array('res' => 'candidate_added', 'redirect_url' => $redirect_url)); $pusher->trigger('presence-admin-chat', 'add-candidate', array('employer_id' => $current_user, 'candidate_id' => $u_candidate_id, 'html' => $html)); } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_add_to_chat_emp') { $jobsearch__options = get_option('jobsearch_plugin_options'); $user_dashboard_page = isset($jobsearch__options['user-dashboard-template-page']) ? $jobsearch__options['user-dashboard-template-page'] : ''; $page_id = jobsearch__get_post_id($user_dashboard_page, 'page'); $page_url = jobsearch_wpml_lang_page_permalink($page_id, 'page'); $redirect_url = add_query_arg(array('tab' => 'cand-chat'), $page_url); $current_user = get_current_user_id(); $u_employer_id = jobsearch_get_employer_user_id($_POST['emp_id']); // $wpdb->insert("{$wpdb->prefix}chatfriendlist", array( 'employer_id' => $u_employer_id, 'candidate_id' => $current_user, )); // $user_data = get_userdata($current_user); $user_img = get_avatar_url($user_data->ID); $total_msgs = $jobsearch_chat_settings->get_unviewed_messages($user_data->ID); ob_start(); ?> <li class="ofline jobsearch-chat-front-user-<?php echo($user_data->ID) ?> load-chat-box" data-user-id="<?php echo($user_data->ID) ?>"> <span> <img src="<?php echo($user_img) ?>" alt=""> </span> <div class="jobsearch-chat-list-thumb user-info"> <a href="javascript:void(0)" class="name"><?php echo($user_data->display_name) ?> <small class="<?php echo count($total_msgs) == 0 ? 'hidden' : ''; ?>"><?php echo count($total_msgs) ?></small> </a> </div> </li> <?php $html = ob_get_clean(); echo json_encode(array('res' => 'employer_added', 'redirect_url' => $redirect_url)); $pusher->trigger('presence-admin-chat', 'add-employer', array('employer_id' => $u_employer_id, 'candidate_id' => $current_user, 'html' => $html)); } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_user_is_login') { echo json_encode(array('res' => $_POST)); update_post_meta($_POST['current_user_id'], 'jobsearch_chat_login_status', 1); } if (isset($_POST['action']) && $_POST['action'] == 'jobsearch_chat_user_is_log_out') { update_post_meta($_POST['current_user_id'], 'jobsearch_chat_login_status', 0); echo json_encode(array('res' => $_POST)); } } }