OwlCyberSecurity - MANAGER
Edit File: shortlist.php
<?php /** * Directory Plus Shortlists Module */ // Direct access not allowed. if (!defined('ABSPATH')) { exit; } if (!class_exists('Jobsearch_Shortlist')) { class Jobsearch_Shortlist { /** * Start construct Functions */ public function __construct() { // Initialize Addon add_action('init', array($this, 'init')); } /** * Initialize application, load text domain, enqueue scripts and bind hooks */ public function init() { // Add actions add_action('jobsearch_job_shortlist_button_frontend', array($this, 'jobsearch_job_shortlist_button_callback'), 11, 1); add_action('wp_ajax_jobsearch_add_candidate_job_to_favourite', array($this, 'jobsearch_shortlist_submit_callback'), 11); add_action('wp_ajax_jobsearch_remv_candidate_job_frm_favourite', array($this, 'jobsearch_removed_shortlist_callback'), 11); add_action('wp_enqueue_scripts', array($this, 'jobsearch_shortlist_enqueue_scripts'), 10); } public function jobsearch_shortlist_enqueue_scripts() { global $sitepress; $admin_ajax_url = admin_url('admin-ajax.php'); if (function_exists('icl_object_id') && function_exists('wpml_init_language_switcher')) { $lang_code = $sitepress->get_current_language(); $admin_ajax_url = add_query_arg(array('lang' => $lang_code), $admin_ajax_url); } $is_page = is_page(); $page_content = ''; if ($is_page) { $page_id = get_the_ID(); $page_post = get_post($page_id); $page_content = isset($page_post->post_content) ? $page_post->post_content : ''; } $is_jobs_elemnt_page = $is_cands_elemnt_page = $is_emps_elemnt_page = false; if (strpos($page_content, 'job_short_counter')) { $is_jobs_elemnt_page = true; } if (strpos($page_content, 'candidate_short_counter')) { $is_cands_elemnt_page = true; } if (strpos($page_content, 'employer_short_counter')) { $is_emps_elemnt_page = true; } // Enqueue JS wp_register_script('jobsearch-shortlist-functions-script', plugins_url('assets/js/shortlist-functions.js', __FILE__), '', '', true); wp_localize_script('jobsearch-shortlist-functions-script', 'jobsearch_shortlist_vars', array( 'admin_url' => $admin_ajax_url, 'plugin_url' => jobsearch_plugin_get_url(), )); if ($is_page && (has_shortcode($page_content, 'jobsearch_job_shortcode') || $is_jobs_elemnt_page)) { wp_enqueue_script('jobsearch-shortlist-functions-script'); } if (is_singular('job')) { wp_enqueue_script('jobsearch-shortlist-functions-script'); } } /** * Member Shortlists Frontend Button * @ shortlists frontend buuton based on job id */ public function jobsearch_job_shortlist_button_callback($args = '') { wp_enqueue_script('jobsearch-shortlist-script'); $job_id = isset($args['job_id']) ? $args['job_id'] : ''; $before_icon = isset($args['before_icon']) ? $args['before_icon'] : ''; $after_icon = isset($args['after_icon']) ? $args['after_icon'] : ''; $before_label = isset($args['before_label']) ? $args['before_label'] : ''; $after_label = isset($args['after_label']) ? $args['after_label'] : ''; $container_class = isset($args['container_class']) ? $args['container_class'] : ''; $anchor_class = isset($args['anchor_class']) ? $args['anchor_class'] : ''; $view = isset($args['view']) ? $args['view'] : ''; if ($anchor_class == '' && $view != 'job_detail') { $anchor_class = 'jobsearch-job-like'; } if ($view == 'job_detail_3') { if (!is_user_logged_in()) { ?> <a href="javascript:void(0);" class="<?php echo ($anchor_class); ?> jobsearch-open-signin-tab"><i class="<?php echo $before_icon; ?>"></i> <?php echo($before_label); ?></a> <?php } else { $user_id = get_current_user_id(); $user_is_candidate = jobsearch_user_is_candidate($user_id); $candidate_fav_jobs_list = array(); if ($user_is_candidate) { $candidate_id = jobsearch_get_user_candidate_id($user_id); $candidate_fav_jobs_list = get_post_meta($candidate_id, 'jobsearch_fav_jobs_list', true); $candidate_fav_jobs_list = explode(',', $candidate_fav_jobs_list); } ?> <a href="javascript:void(0);" data-after-label="<?php echo($after_label); ?>" data-view="job3" class="<?php echo in_array($job_id, $candidate_fav_jobs_list) ? '' : 'jobsearch-add-job-to-favourite' ?> <?php echo($anchor_class); ?>" data-id="<?php echo($job_id); ?>" data-before-icon='<?php echo($before_icon); ?>' data-after-icon='<?php echo ($after_icon); ?>'> <i class="<?php echo in_array($job_id, $candidate_fav_jobs_list) ? $before_icon : $after_icon ?>"></i> <?php echo in_array($job_id, $candidate_fav_jobs_list) ? ($after_label) : ($before_label); ?> </a> <span class="job-to-fav-msg-con"></span> <?php } } elseif ($view == 'job_detail') { if (!is_user_logged_in()) { ?> <a href="javascript:void(0);" class="shortlist_job_btn jobsearch-open-signin-tab"><i class="<?php echo ($before_icon); ?>"></i><?php echo ($before_label); ?></a> <?php } else { $user_id = get_current_user_id(); $user_is_candidate = jobsearch_user_is_candidate($user_id); $candidate_fav_jobs_list = array(); if ($user_is_candidate) { $candidate_id = jobsearch_get_user_candidate_id($user_id); $candidate_fav_jobs_list = get_post_meta($candidate_id, 'jobsearch_fav_jobs_list', true); $candidate_fav_jobs_list = explode(',', $candidate_fav_jobs_list); } ?> <a href="javascript:void(0);" data-after-label="<?php echo($after_label); ?>" data-view="job2" class="shortlist_job_btn <?php echo in_array($job_id, $candidate_fav_jobs_list) ? '' : 'jobsearch-add-job-to-favourite' ?>" data-id="<?php echo($job_id); ?>" data-before-icon="<?php echo($before_icon); ?>" data-after-icon="<?php echo($after_icon); ?>"> <?php echo '<i class="' . $before_icon . '"></i>'; echo in_array($job_id, $candidate_fav_jobs_list) ? ($after_label) : ($before_label); ?> </a> <span class="job-to-fav-msg-con"></span> <?php } } elseif ($view == 'style9') { if (!is_user_logged_in()) { ?> <a href="javascript:void(0);" class="shortlist_job_btn jobsearch-open-signin-tab"><i class="fa fa-heart-o"></i> <?php echo($before_label); ?></a> <?php } else { $user_id = get_current_user_id(); $user_is_candidate = jobsearch_user_is_candidate($user_id); $candidate_fav_jobs_list = array(); if ($user_is_candidate) { $candidate_id = jobsearch_get_user_candidate_id($user_id); $candidate_fav_jobs_list = get_post_meta($candidate_id, 'jobsearch_fav_jobs_list', true); $candidate_fav_jobs_list = explode(',', $candidate_fav_jobs_list); } ?> <a href="javascript:void(0);" data-after-label="<?php echo($after_label); ?>" data-view="style9" class="shortlist_job_btn <?php echo in_array($job_id, $candidate_fav_jobs_list) ? '' : 'jobsearch-add-job-to-favourite' ?>" data-id="<?php echo($job_id); ?>" data-before-icon="<?php echo($before_icon); ?>" data-after-icon="<?php echo($after_icon); ?>"> <?php echo in_array($job_id, $candidate_fav_jobs_list) ? '<i class="' . $after_icon . '"></i>' : '<i class="' . $before_icon . '"></i>'; echo in_array($job_id, $candidate_fav_jobs_list) ? ($after_label) : ($before_label); ?> </a> <span class="job-to-fav-msg-con"></span> <?php } ?> <?php } else if ($view == 'job_detail_5') { if (!is_user_logged_in()) { ?> <a href="javascript:void(0);" class="<?php echo($anchor_class); ?> jobsearch-open-signin-tab"><i class="<?php echo $before_icon; ?>"></i> <?php echo($before_label); ?></a> <?php } else { $user_id = get_current_user_id(); $user_is_candidate = jobsearch_user_is_candidate($user_id); $candidate_fav_jobs_list = array(); if ($user_is_candidate) { $candidate_id = jobsearch_get_user_candidate_id($user_id); $candidate_fav_jobs_list = get_post_meta($candidate_id, 'jobsearch_fav_jobs_list', true); $candidate_fav_jobs_list = explode(',', $candidate_fav_jobs_list); } ?> <a href="javascript:void(0);" data-after-label="<?php echo($after_label); ?>" data-view="job3" class="<?php echo in_array($job_id, $candidate_fav_jobs_list) ? '' : 'jobsearch-add-job-to-favourite-style-5' ?> <?php echo($anchor_class); ?>" data-id="<?php echo($job_id); ?>" data-before-icon='<?php echo($before_icon); ?>' data-after-icon='<?php echo($after_icon); ?>'> <i class="<?php echo in_array($job_id, $candidate_fav_jobs_list) ? $before_icon : $after_icon ?>"></i> <?php echo in_array($job_id, $candidate_fav_jobs_list) ? ($after_label) : ($before_label); ?> </a> <span class="job-to-fav-msg-con"></span> <?php } } else { if (!is_user_logged_in()) { ?> <div class="like-btn <?php echo($container_class) ?>"> <a href="javascript:void(0);" class="shortlist jobsearch-open-signin-tab <?php echo($anchor_class) ?>"> <i class="<?php echo ($before_icon) ?>"></i> </a> </div> <?php } else { $user_id = get_current_user_id(); $user_is_candidate = jobsearch_user_is_candidate($user_id); $candidate_fav_jobs_list = array(); if ($user_is_candidate) { $candidate_id = jobsearch_get_user_candidate_id($user_id); $candidate_fav_jobs_list = get_post_meta($candidate_id, 'jobsearch_fav_jobs_list', true); $candidate_fav_jobs_list = explode(',', $candidate_fav_jobs_list); } ob_start(); ?> <div class="like-btn <?php echo($container_class) ?>"> <a href="javascript:void(0);" class="shortlist <?php echo in_array($job_id, $candidate_fav_jobs_list) ? '' : 'jobsearch-add-job-to-favourite' ?> <?php echo ($anchor_class) ?>" data-id="<?php echo ($job_id) ?>" data-before-icon="<?php echo ($before_icon) ?>" data-after-icon="<?php echo ($after_icon) ?>"> <i class="<?php echo in_array($job_id, $candidate_fav_jobs_list) ? $after_icon : $before_icon ?>"></i> </a> <span class="job-to-fav-msg-con"></span> </div> <?php $btn_html = ob_get_clean(); echo apply_filters('jobsearch_addtofav_shortlist_btn_html', $btn_html, $job_id, $args); } } } /** * Member Shortlists * @ added member shortlists based on job id */ public function jobsearch_shortlist_submit_callback() { $nonce_val = sanitize_key(wp_unslash($_POST['_nonce'])); if (!wp_verify_nonce($nonce_val, 'jobsearch_ajax_nonce')) { $msg = esc_html__('You are not allowed to do this.', 'wp-jobsearch'); echo json_encode(array('msg' => $msg, 'error' => '1')); die; } if (!is_user_logged_in()) { echo json_encode(array('msg' => esc_html__('You are not logged in.', 'wp-jobsearch'), 'error' => '1')); die; } $job_id = isset($_POST['job_id']) ? $_POST['job_id'] : '0'; $user_id = get_current_user_id(); $user_is_candidate = jobsearch_user_is_candidate($user_id); if ($user_is_candidate) { $candidate_id = jobsearch_get_user_candidate_id($user_id); $candidate_fav_jobs_list = get_post_meta($candidate_id, 'jobsearch_fav_jobs_list', true); if ($candidate_fav_jobs_list != '') { $candidate_fav_jobs_list = explode(',', $candidate_fav_jobs_list); if (!in_array($job_id, $candidate_fav_jobs_list)) { $candidate_fav_jobs_list[] = $job_id; } $candidate_fav_jobs_list = implode(',', $candidate_fav_jobs_list); } else { $candidate_fav_jobs_list = $job_id; } update_post_meta($candidate_id, 'jobsearch_fav_jobs_list', $candidate_fav_jobs_list); echo json_encode(array('msg' => esc_html__('Job added to the list.', 'wp-jobsearch'))); die; } else { $msgva = esc_html__('You are not a candidate.', 'wp-jobsearch'); $msgva = apply_filters('jobsearch_favjob_cand_notalowerr_msg', $msgva); echo json_encode(array('msg' => $msgva, 'error' => '1')); die; } } /** * Member Removed Shortlist * @ removed member shortlists based on job id */ public function jobsearch_removed_shortlist_callback() { $job_id = isset($_POST['job_id']) ? $_POST['job_id'] : '0'; $user_id = get_current_user_id(); $candidate_id = jobsearch_get_user_candidate_id($user_id); $candidate_fav_jobs_list = get_post_meta($candidate_id, 'jobsearch_fav_jobs_list', true); $candidate_fav_jobs_list = $candidate_fav_jobs_list != '' ? explode(',', $candidate_fav_jobs_list) : array(); if (!empty($candidate_fav_jobs_list)) { if (($key = array_search($job_id, $candidate_fav_jobs_list)) !== false) { unset($candidate_fav_jobs_list[$key]); $candidate_fav_jobs_list = implode(',', $candidate_fav_jobs_list); update_post_meta($candidate_id, 'jobsearch_fav_jobs_list', $candidate_fav_jobs_list); echo json_encode(array('msg' => esc_html__('Job removed.', 'wp-jobsearch'))); die; } } echo json_encode(array('error' => '1')); die; } } global $jobsearch_shortlist; $jobsearch_shortlist = new Jobsearch_Shortlist(); }