Sindbad~EG File Manager

Current Path : /var/www/html/digi.sumar.com.py/wp-content/plugins/wp-job-portal/includes/
Upload File :
Current File : /var/www/html/digi.sumar.com.py/wp-content/plugins/wp-job-portal/includes/wpjobportal-hooks.php

<?php
if (!defined('ABSPATH'))
    die('Restricted Access');


// Updates login failed to send user back to the custom form with a query var
add_action( 'wp_login_failed', 'wpjobportal_login_failed', 10, 2 );
// Updates authentication to return an error when one field or both are blank
add_filter( 'authenticate', 'wpjobportal_authenticate_username_password', 30, 3);

function wpjobportal_login_failed( $username ){
    $referrer = wp_get_referer();
    if ( $referrer && ! wpjobportalphplib::wpJP_strstr($referrer, 'wp-login') && ! wpjobportalphplib::wpJP_strstr($referrer, 'wp-admin') ){
        $submit = WPJOBPORTALrequest::getVar('wp-submit','post','');
        if ($submit != ''){
            $key = WPJOBPORTALincluder::getJSModel('user')->getMessagekey();
            WPJOBPORTALMessages::setLayoutMessage(esc_html(__('Username / password is incorrect',"wp-job-portal")), 'error',$key);
            $referrer=wpjobportal::wpjobportal_makeUrl(array('wpjobportalpageid'=>wpjobportal::wpjobportal_getPageid(),'wpjobportalme'=>'wpjobportal','wpjobportallt'=>'login'));
            wp_redirect($referrer);
            exit;
        }else{
            return;
        }
    }
}

/**
* Commit For Zub
**/
function wpjobportal_authenticate_username_password( $user, $username, $password ){
    if ( is_a($user, 'WP_User') ) {
        return $user;
    }
    $wp_submit = WPJOBPORTALrequest::getVar('wp-submit','post','');
    $pwd = WPJOBPORTALrequest::getVar('pwd','post','');
    $log = WPJOBPORTALrequest::getVar('log','post','');

    if ($wp_submit != '' && $pwd != '' && $log != ''){
        return false;
    }
    return $user;
}



add_action('admin_head', 'wpjobportal_custom_css_add');

function wpjobportal_custom_css_add() {
    wp_enqueue_style('wpjobportal-menu-style', esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/css/adminmenu.css');
}

// --------------------------WP registration from fields --------
// 1. wp register form extra field
add_action('register_form', 'wpjobportal_add_registration_fields');

function wpjobportal_add_registration_fields() {
    //Get and set any values already sent
    if (isset($_SESSION['js_cpfrom'])) {
        ?>
        <div class="wjportal-form-title"><?php echo esc_html(__('User Role', 'wp-job-portal')); ?></div>
        <div class="wjportal-form-value">
            <div class="wjportal-form-text">
                <?php if ($_SESSION['js_cpfrom'] == 1) { ?>
                    <input type="hidden" name="jobs_role" value="1" />
                    <?php echo esc_html(__('Employer', 'wp-job-portal')); ?>
                    <?php
                } elseif ($_SESSION['js_cpfrom'] == 2) {
                    ?>
                    <input type="hidden" name="jobs_role" value="2" />
                     <?php echo esc_html(__('Job seeker', 'wp-job-portal')); ?>
               <?php } ?>
            </div>
        </div>
    <?php
    } else {
        ?>

            <div class="wjportal-form-title">
                <label for="jobs_role">
                    <?php echo esc_html(__('Jobs Role', 'wp-job-portal')) ?>
                </label>
            </div>
            <div class="wjportal-form-value">
                <?php
                $empflag  = wpjobportal::$_config->getConfigurationByConfigName('disable_employer');
                if($empflag == 1){
                 ?>
                <select id="jobs_role" name="jobs_role" class="input form-control wjportal-form-select-field">
                    <option value="0"><?php echo esc_html(__('Select job role', 'wp-job-portal')); ?></option>
                    <option value="1"><?php echo esc_html(__('Employer', 'wp-job-portal')); ?></option>
                    <option value="2"><?php echo esc_html(__('Job seeker', 'wp-job-portal')); ?></option>
                </select>
            <?php }else{ ?>
                    <div class="wjportal-form-text">
                        <input type="hidden" name="jobs_role" value="2" />
                         <?php echo esc_html(__('Job seeker', 'wp-job-portal')); ?>
                   </div>
            <?php } ?>
            </div>
            <input type="hidden" name="jobs_notfromourform" value="1" />

        <?php
    }
    if(isset($_SESSION['js_cpfrom']))
        unset($_SESSION['js_cpfrom']);
}

//2. Add validation. In this case, we make sure jobs_role is required
add_filter('registration_errors', 'wpjobportal_registration_errors', 10, 3);

function wpjobportal_registration_errors($errors, $sanitized_user_login, $user_email) {
    $jobs_role = WPJOBPORTALrequest::getVar('jobs_role','post','');
    if ($jobs_role == 0) {

        $errors->add('user_role_error','<strong>'.esc_html(__("Error","wp-job-portal")).'</strong>:'. esc_html(__('You must set jobs user role', 'wp-job-portal')).'.');
    }

    return $errors;
}

// 3. wp register form extra field get and set to user meta
add_action('user_register', 'wpjobportal_registration_save', 10, 1);

function wpjobportal_registration_save($user_id) {
    $jobs_role = WPJOBPORTALrequest::getVar('jobs_role','post','');
    $wpjobportal_jobs_register_nonce = WPJOBPORTALrequest::getVar('wpjobportal_jobs_register_nonce','post','');
    if ($jobs_role != '' && $wpjobportal_jobs_register_nonce != '' && !wp_verify_nonce($wpjobportal_jobs_register_nonce, 'wpjobportal-jobs-register-nonce') ) {
        $role = wpjobportal::wpjobportal_sanitizeData(WPJOBPORTALrequest::getVar('jobs_role'));
        $user_email = sanitize_email(WPJOBPORTALrequest::getVar('wpjobportal_user_email'));
        if (is_numeric($role)) {
            if ($role == 1) {
                update_user_meta($user_id, 'jobs_role', 'employer');
                $employer_defaultgroup = wpjobportal::$_config->getConfigurationByConfigName('employer_defaultgroup');
                wp_update_user(array('ID' => $user_id, 'role' => $employer_defaultgroup));
            } elseif ($role == 2) {
                update_user_meta($user_id, 'jobs_role', 'jobseeker');
                $jobseeker_defaultgroup = wpjobportal::$_config->getConfigurationByConfigName('jobseeker_defaultgroup');
                wp_update_user(array('ID' => $user_id, 'role' => $jobseeker_defaultgroup));
            }
            $jobs_notfromourform = WPJOBPORTALrequest::getVar('jobs_notfromourform','post','');
            if ( $jobs_notfromourform == 1) {
                $nickname = get_user_meta($user_id, 'nickname', true);

                $row = WPJOBPORTALincluder::getJSTable('users');
                $data['uid'] = $user_id;
                $data['roleid'] = $role;
                $data['first_name'] = $nickname;
                $data['emailaddress'] = $user_email;
                $data['status'] = 1;
                $data['created'] = date_i18n('Y-m-d H:i:s');
                $data = wpjobportal::wpjobportal_sanitizeData($data);
                if (!$row->bind($data)) {
                    echo esc_html(WPJOBPORTAL_SAVE_ERROR);
                }
                if (!$row->store()) {
                    echo esc_html(WPJOBPORTAL_SAVE_ERROR);
                }
                WPJOBPORTALincluder::getJSModel('emailtemplate')->sendMail(6,$role,$row->id); // 6 for regesitration $role for role jobseeker and employer
            }
        }
    }
}

// ------------------- wpjobportal registrationFrom request handler--------
// register a new user
function wpjobportal_add_new_member() {
    $wpjobportal_user_login  = WPJOBPORTALrequest::getVar('wpjobportal_user_login','post','');
    $wpjobportal_jobs_register_nonce  = WPJOBPORTALrequest::getVar('wpjobportal_jobs_register_nonce','post','');
    if ($wpjobportal_user_login != '' && $wpjobportal_jobs_register_nonce != '' && wp_verify_nonce($wpjobportal_jobs_register_nonce, 'wpjobportal-jobs-register-nonce')) {
        $user_login = sanitize_user(WPJOBPORTALrequest::getVar("wpjobportal_user_login"));
        $user_email = sanitize_email(WPJOBPORTALrequest::getVar('wpjobportal_user_email'));
        $user_first = sanitize_text_field(WPJOBPORTALrequest::getVar("wpjobportal_user_first"));
        $user_last = sanitize_text_field(WPJOBPORTALrequest::getVar("wpjobportal_user_last"));
        $user_pass = wpjobportal::wpjobportal_sanitizeData(WPJOBPORTALrequest::getVar("wpjobportal_user_pass") );
        $photo = sanitize_file_name($_FILES['photo']['name']);
        $pass_confirm = wpjobportal::wpjobportal_sanitizeData(WPJOBPORTALrequest::getVar("wpjobportal_user_pass_confirm") );

        // this is required for username checks

        $fieldslist = wpjobportal::$_wpjpfieldordering->getFieldsOrderingforForm(4);
        if ($user_login == '' && $fieldslist['wpjobportal_user_login']->required == 1) {
            // empty username
            wpjobportal_errors()->add('username_empty', esc_html(wpjobportal::wpjobportal_getVariableValue('Please enter a '.$fieldslist['wpjobportal_user_login']->fieldtitle)));
        } elseif ($user_login == '' && $fieldslist['wpjobportal_user_login']->required == 0) {
            $user_login = $user_email;
        }
        if (username_exists($user_login)) {
            // Username already registered
            wpjobportal_errors()->add('username_unavailable', wpjobportal::wpjobportal_getVariableValue($fieldslist['wpjobportal_user_login']->fieldtitle).' already taken');
        }
        if (!validate_username($user_login)) {
            // invalid username
            wpjobportal_errors()->add('username_invalid', esc_html(wpjobportal::wpjobportal_getVariableValue('Invalid '.$fieldslist['wpjobportal_user_login']->fieldtitle)));
        }

        if ($user_first == ''  && $fieldslist['wpjobportal_user_first']->required == 1) {
            // empty first name
            wpjobportal_errors()->add('firstname_empty', esc_html(wpjobportal::wpjobportal_getVariableValue('Please enter a '.$fieldslist['wpjobportal_user_first']->fieldtitle)));
        }

        if ($user_last == ''  && $fieldslist['wpjobportal_user_last']->required == 1) {
            // empty last name
            wpjobportal_errors()->add('lastname_empty', esc_html(wpjobportal::wpjobportal_getVariableValue('Please enter a '.$fieldslist['wpjobportal_user_last']->fieldtitle)));
        }
        // should not be required
        // if ($photo == ''  && isset($fieldslist['photo']) && $fieldslist['photo']->required == 1) {
        //     // empty last name
        //     wpjobportal_errors()->add('photo_empty', esc_html(wpjobportal::wpjobportal_getVariableValue('Please enter a '.$fieldslist['photo']->fieldtitle)));
        // }
        if (!is_email($user_email)) {
            //invalid email
            wpjobportal_errors()->add('email_invalid', esc_html(wpjobportal::wpjobportal_getVariableValue('Invalid '.$fieldslist['wpjobportal_user_email']->fieldtitle)));
        }
        if (email_exists($user_email)) {
            //Email address already registered
            wpjobportal_errors()->add('email_used', wpjobportal::wpjobportal_getVariableValue($fieldslist['wpjobportal_user_email']->fieldtitle.' already registered'));
        }
        if ($user_pass == '') {
            // passwords do not match
            wpjobportal_errors()->add('password_empty', esc_html(__('Please enter a password', 'wp-job-portal')));
        }
        if ($user_pass != $pass_confirm) {
            // passwords do not match
            wpjobportal_errors()->add('password_mismatch', esc_html(__('Passwords do not match', 'wp-job-portal')));
        }

        foreach ($fieldslist AS $field) {
            if($field->isuserfield == 1 && $field->required == 1) {
                $field_value = WPJOBPORTALrequest::getVar($field->field,'post','');
                if ($field_value != '') {
                    $cf_data = $field_value;
                }
                if (empty($cf_data)) {
                    wpjobportal_errors()->add($field->fieldtitle.'_empty', esc_html(wpjobportal::wpjobportal_getVariableValue('Please enter a '.$field->fieldtitle)));
                }
            }
        }

        $config_array = wpjobportal::$_config->getConfigByFor('captcha');
        if ($config_array['cap_on_reg_form'] == 1) {
            if ($config_array['captcha_selection'] == 1) { // Google recaptcha

                $gresponse = wpjobportal::wpjobportal_sanitizeData(WPJOBPORTALrequest::getVar('g-recaptcha-response','post'));
                $resp = googleRecaptchaHTTPPost($config_array['recaptcha_privatekey'] , $gresponse);
                if (! $resp) {
                    wpjobportal_errors()->add('invalid_captcha', esc_html(__('Invalid captcha', 'wp-job-portal')));
                }
            } else { // own captcha
                $captcha = new WPJOBPORTALcaptcha;
                $result = $captcha->checkCaptchaUserForm();
                if ($result != 1) {
                    wpjobportal_errors()->add('invalid_captcha', esc_html(__('Invalid captcha', 'wp-job-portal')));
                }
            }
        }

        $errors = wpjobportal_errors()->get_error_messages();

        // only create the user in if there are no errors
        if (empty($errors)) {

            $wperrors = register_new_user(  $user_login,  $user_email );
            $new_user_id = "";
            if (!is_wp_error($wperrors)) {
                $new_user_id = $wperrors;
                if ( $user_first && $user_last ) {
                    $display_name = wpjobportal::wpjobportal_getVariableValue( $user_first.' '.$user_last);
                } elseif ( $user_first ) {
                    $display_name = $user_first;
                } elseif ( $user_last ) {
                    $display_name = $user_last;
                } else {
                    $display_name = $user_login;
                }
                //update_user_option( $new_user_id, 'default_password_nag', false, true );
                wp_set_password( $user_pass, $new_user_id );
                update_user_option( $new_user_id, 'first_name', $user_first, true );
                update_user_option( $new_user_id, 'last_name', $user_last, true );
                wp_update_user( array ('ID' => $new_user_id,  'display_name' => $display_name) ) ;
            } else {
                wpjobportal_errors()->add('email_invalid', $wperrors->get_error_message());
            }
            if ($new_user_id) {
                // send an email to the admin alerting them of the registration
                wp_new_user_notification($new_user_id);
                // log the new user in
                wp_set_current_user($new_user_id, $user_login);
                wp_set_auth_cookie($new_user_id);
                //do_action('wp_login', $user_login);

                $role = wpjobportal::wpjobportal_sanitizeData(WPJOBPORTALrequest::getVar('jobs_role') );

                if (is_numeric($role)) {
                    if ($role == 1) {
                        update_user_meta($new_user_id, 'jobs_role', 'employer');
                        $employer_defaultgroup = wpjobportal::$_config->getConfigurationByConfigName('employer_defaultgroup');
                        wp_update_user(array('ID' => $new_user_id, 'role' => $employer_defaultgroup));
                    } elseif ($role == 2) {
                        update_user_meta($new_user_id, 'jobs_role', 'jobseeker');
                        $jobseeker_defaultgroup = wpjobportal::$_config->getConfigurationByConfigName('jobseeker_defaultgroup');
                        wp_update_user(array('ID' => $new_user_id, 'role' => $jobseeker_defaultgroup));
                    }
                }

                // insert entry into out db also
                $userrole = get_user_meta($new_user_id, 'jobs_role', true);
                $url = '';
                $msguserrole = $userrole;
                if ($userrole == 'employer') {
                    $userrole = 1;
                    $url = wpjobportal::wpjobportal_makeUrl(array('wpjobportalme'=>'employer', 'wpjobportallt'=>'controlpanel',"wpjobportalpageid"=>wpjobportal::wpjobportal_getPageid()));

                } elseif ($userrole == 'jobseeker') {
                    $userrole = 2;
                    $url = wpjobportal::wpjobportal_makeUrl(array('wpjobportalme'=>'jobseeker', 'wpjobportallt'=>'controlpanel',"wpjobportalpageid"=>wpjobportal::wpjobportal_getPageid()));
                }
                    $row = WPJOBPORTALincluder::getJSTable('users');
                    $data['uid'] = $new_user_id;
                    $data['roleid'] = $userrole;
                    $data['first_name'] = $user_first;
                    $data['last_name'] = $user_last;
                    $data['emailaddress'] = $user_email;
                    $data['photo'] = $photo;
                    $data['status'] = 1;
                    $data['created'] = date_i18n('Y-m-d H:i:s');
                    $data = wpjobportal::wpjobportal_sanitizeData($data);
                    $key = WPJOBPORTALincluder::getJSModel($msguserrole)->getMessagekey();
                    if (!$row->bind($data)) {
                        WPJOBPORTALMessages::setLayoutMessage(esc_html(__('Error Updating User', 'wp-job-portal')), 'error',$key);
                    }
                    if (!$row->store()) {
                        WPJOBPORTALMessages::setLayoutMessage(esc_html(__('Error Updating User', 'wp-job-portal')), 'error',$key);
                    }else{
                        $data = WPJOBPORTALrequest::get('post');
                        WPJOBPORTALincluder::getObjectClass('customfields')->storeCustomFields(4,$row->id,$data);
                    }
                    ////Store Image In Folder Of jobeeseker
                    if (isset($_FILES['photo']['size']) && $_FILES['photo']['size'] > 0) {
                        $objectid = $row->uid;
                        uploadPhoto($objectid);
                    }
                    //Auto Assign User Package's
                    do_action('wpjobportal_addons_credit_auto_asign_pkg',$row);

                    WPJOBPORTALincluder::getJSModel('emailtemplate')->sendMail(6,$userrole,$row->id); // 6 for regesitration $role for role jobseeker and employer
                    $nickname = $user_first . ' ' . $user_last;

                    $pageid = wpjobportal::$_config->getConfigurationByConfigName('register_jobseeker_redirect_page');

                    if($userrole == 1){
                        $pageid = wpjobportal::$_config->getConfigurationByConfigName('register_employer_redirect_page');
                    }elseif($userrole == 2){
                        $pageid = wpjobportal::$_config->getConfigurationByConfigName('register_jobseeker_redirect_page');
                    }
                    WPJOBPORTALMessages::setLayoutMessage(esc_html(__('User has been successfully created', 'wp-job-portal')), 'updated',$key);
                    // $url = home_url();
                    if(is_numeric($pageid) && $pageid > 0){
                           if(get_post_status($pageid) == 'publish'){
                               if($userrole == 1){
								   $setRegisterLinkEmploye= wpjobportal::$_config->getConfigurationByConfigName('employe_set_register_link');
								   $customeRegisterLinkForEmploye= wpjobportal::$_config->getConfigurationByConfigName('employe_register_link');
								   if($setRegisterLinkEmploye == 2){
									   wp_redirect(esc_url($customeRegisterLinkForEmploye));// to handle the case of invalid url showing error,
									   exit;
								   }else{
									$url = get_the_permalink($pageid);
								   }
							   }elseif($userrole == 2){
								   $setRegisterLinkJobSeeker= wpjobportal::$_config->getConfigurationByConfigName('jobseeker_set_register_link');
								   $customeRegisterLinkForJobSeeker= wpjobportal::$_config->getConfigurationByConfigName('jobseeker_register_link');
								   if($setRegisterLinkJobSeeker == 2){
									  wp_redirect(esc_url($customeRegisterLinkForJobSeeker));// to handle the case of invalid url showing error,
									  exit;
								   }else{
									$url = get_the_permalink($pageid);
								   }
							   }
                         }
                     }
                    wp_redirect($url);
                    exit;


            }
        }
    }
}

add_action('init', 'wpjobportal_add_new_member');
// Store Photo For Job seekser
    function uploadPhoto($id) {
        WPJOBPORTALincluder::getObjectClass('uploads')->uploadJobSeekerPhoto($id);
        return;
    }
// used for tracking error messages
function wpjobportal_errors() {
    static $wp_error; // Will hold global variable safely
    return isset($wp_error) ? $wp_error : ($wp_error = new WP_Error(null, null, null));
}

// displays error messages from form submissions
function wpjobportal_show_error_messages() {
    if ($codes = wpjobportal_errors()->get_error_codes()) {
        echo '<div class="wpjobportal_errors">';
        // Loop error codes and display errors
        $alert_class = 'danger';
        $img_name = 'job-alert-unsuccessful.png';
        foreach ($codes as $code) {
            $message = wpjobportal_errors()->get_error_message($code);
            if(wpjobportal::$theme_chk  != 0){
                echo '<div class="alert alert-' . esc_attr($alert_class) . '" role="alert" id="autohidealert">
                    <img class="leftimg" src="'.esc_url(WPJOBPORTAL_PLUGIN_URL).'includes/images/'.esc_attr($img_name).'" />
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                    '. esc_html($message) . '
                </div>';
            }else{
                echo '<div class="frontend error"><p>' . esc_html($message) . '</p></div>';
            }

        }
        echo '</div>';
    }
}

// ---------------Remove wp user ---------------

function wpjobportal_remove_jobs_user($user_id) {
    //$userrole = get_user_meta( $new_user_id, 'jobs_role', true );

    $js_model = WPJOBPORTALincluder::getJSModel('user');
    $userrole = $js_model->getUserRoleByWPUid($user_id);
    $userid = $js_model->getUserIDByWPUid($user_id);
    $delete_option = WPJOBPORTALrequest::getVar('delete_option','post','');
    if ($delete_option == 'delete') {
        $result = $js_model->enforceDeleteOurUser($userid, $userrole);
        if ($result) {

        } else {

        }
    }
}

add_action('delete_user', 'wpjobportal_remove_jobs_user');

// visual composer hooks

add_action( 'vc_before_init', 'wp_job_portalvcSetAsTheme' );
function wp_job_portalvcSetAsTheme() {
    if(wpjobportal::$theme_chk == 1){
        vc_set_as_theme();

        vc_map( array(
              "name" => esc_html(__( "Employer Control Panel", "wp-job-portal")),
              "base" => "wpjobportal_employer_controlpanel",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/dashboard.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Jobseeker Control Panel", "wp-job-portal")),
              "base" => "wpjobportal_jobseeker_controlpanel",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/dashboard.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Login", "wp-job-portal")),
              "base" => "wpjobportal_login_page",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/login.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Job Search", "wp-job-portal")),
              "base" => "wpjobportal_job_search",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/job-search.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Job Listing", "wp-job-portal")),
              "base" => "wpjobportal_job",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/job-list.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Jobs By Catergories", "wp-job-portal")),
              "base" => "wpjobportal_job_categories",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/job-category.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Jobs By Types", "wp-job-portal")),
              "base" => "wpjobportal_job_types",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/job-type.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "My Applied Jobs", "wp-job-portal")),
              "base" => "wpjobportal_my_appliedjobs",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/my-applied-job.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "My Companies", "wp-job-portal")),
              "base" => "wpjobportal_my_companies",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/companies.png',
              "show_settings_on_create" => false,
            )
        );


        vc_map( array(
              "name" => esc_html(__( "My Jobs", "wp-job-portal")),
              "base" => "wpjobportal_my_jobs",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/jobs.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "My Resumes", "wp-job-portal")),
              "base" => "wpjobportal_my_resumes",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/resume.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Add Company", "wp-job-portal")),
              "base" => "wpjobportal_add_company",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/ad-company.png',
              "show_settings_on_create" => false,
            )
        );


        vc_map( array(
              "name" => esc_html(__( "Add Job", "wp-job-portal")),
              "base" => "wpjobportal_add_job",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/ad-job.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Add Resume", "wp-job-portal")),
              "base" => "wpjobportal_add_resume",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/ad-resume.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Resume Search", "wp-job-portal")),
              "base" => "wpjobportal_resume_search",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/resume-search.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Employer Registration", "wp-job-portal")),
              "base" => "wpjobportal_employer_registration",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/employer-register.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Jobseeker Registration", "wp-job-portal")),
              "base" => "wpjobportal_jobseeker_registration",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/jobseeker-register.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "All Companies", "wp-job-portal")),
              "base" => "wpjobportal_all_companies",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/all-companies.png',
              "show_settings_on_create" => false,
            )
        );


        vc_map( array(
              "name" => esc_html(__( "My Cover Letters", "wp-job-portal")),
              "base" => "wpjobportal_my_coverletter",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/cover-letter.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "My Departments", "wp-job-portal")),
              "base" => "wpjobportal_my_departments",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/department.png',
              "show_settings_on_create" => false,
            )
        );


        vc_map( array(
              "name" => esc_html(__( "Add Cover Letter", "wp-job-portal")),
              "base" => "wpjobportal_add_coverletter",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/ad-cover-letter.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Add Department", "wp-job-portal")),
              "base" => "wpjobportal_add_department",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/ad-department.png',
              "show_settings_on_create" => false,
            )
        );
        vc_map( array(
              "name" => esc_html(__( "Employer My Stats", "wp-job-portal")),
              "base" => "wpjobportal_employer_my_stats",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/employer-stats.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Jobseeker My Stats", "wp-job-portal")),
              "base" => "wpjobportal_jobseeker_my_stats",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/jobseeker-stats.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Featured Jobs", "wp-job-portal")),
              "base" => "wpjobportal_featured_jobs",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/featured-jobs.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Featured Resumes", "wp-job-portal")),
              "base" => "wpjobportal_featured_resumes",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/featured-resumes.png',
              "show_settings_on_create" => false,
            )
        );

        vc_map( array(
              "name" => esc_html(__( "Featured Companies", "wp-job-portal")),
              "base" => "wpjobportal_featured_companies",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/featured-companies.png',
              "show_settings_on_create" => false,
            )
        );


        vc_map( array(
              "name" => esc_html(__( "All Resumes", "wp-job-portal")),
              "base" => "wpjobportal_all_resumes",
              "class" => "",
              "category" => esc_html(__( "WP JOB PORTAL Pages", "wp-job-portal")),
              "icon" => esc_url(WPJOBPORTAL_PLUGIN_URL) . 'includes/images/vc-icons/all-resumes.png',
              "show_settings_on_create" => false,
            )
        );



    }
}

// code to show current layout title as wordpress page title(heading)
//add_filter( 'the_title', 'wp_job_portal_page_title' );
function wp_job_portal_page_title($title) {
    // making sure current
    if(isset(wpjobportal::$_data) && isset(wpjobportal::$_data['sanitized_args']) && !empty(isset(wpjobportal::$_data['sanitized_args']))){
        $module = WPJOBPORTALrequest::getVar('wpjobportalme');
        $layout = WPJOBPORTALrequest::getVar('wpjobportallt');
        if ($module != '' && $layout != '') { //only check for title if module and layout is set.(that means current page is opening our layout)
            $page_title = getWPJobPortalPageTitle($module, $layout);
            if($page_title != ''){
                $title = $page_title;
            }
        }
    }
    return $title;
}



function getWPJobPortalPageTitle($module, $layout){
    $title = '';
    if ($module != '' && $layout != '') {
        switch ($layout) {
            case 'addcompany':
                $title = esc_html(__('Add Company', 'wp-job-portal'));
                break;
            case 'mycompanies':
                $title =  esc_html(__('My Companies', 'wp-job-portal'));
                break;
            case 'companies':
                $title =  esc_html(__('Companies', 'wp-job-portal'));
                break;
            case 'featuredcompanies':
                $title =  esc_html(__('Featured Companies', 'wp-job-portal'));
                break;
            case 'viewcompany':
                $title =  esc_html(__('Company Information', 'wp-job-portal'));
                break;
            case 'adddepartment':
                $title =  esc_html(__('Add Department', 'wp-job-portal'));
                break;
            case 'mydepartments':
                $title =  esc_html(__('My Departments', 'wp-job-portal'));
                break;
            case 'viewdepartment':
                $title =  esc_html(__('View Department', 'wp-job-portal'));
                break;
            case 'addcoverletter':
                $title =  esc_html(__('Add Cover Letter', 'wp-job-portal'));
                break;
            case 'mycoverletters':
                $title =  esc_html(__('My Cover Letters', 'wp-job-portal'));
                break;
            case 'viewcoverletter':
                $title =  esc_html(__('View Cover Letter', 'wp-job-portal'));
                break;
            case 'addjob':
                $title =  esc_html(__('Add Job', 'wp-job-portal'));
                break;
            case 'myjobs':
                $title =  esc_html(__('My Jobs', 'wp-job-portal'));
                break;
            case 'viewjob':
                $title =  esc_html(__('Job Information', 'wp-job-portal'));
                break;
            case 'jobsbycategories':
                $title =  esc_html(__('Jobs By Categories', 'wp-job-portal'));
                break;
            case 'jobsbytypes':
                $title =  esc_html(__('Jobs By Types', 'wp-job-portal'));
                break;
            case 'jobs':
                $title =  esc_html(__('Newest Jobs', 'wp-job-portal'));
                break;
            case 'newestjobs':
                $title =  esc_html(__('Newest Jobs', 'wp-job-portal'));
                break;
            case 'featuredjobs':
                $title =  esc_html(__('Featured Jobs', 'wp-job-portal'));
                break;
            case 'shortlistedjobs':
                $title =  esc_html(__('Short Listed Jobs', 'wp-job-portal'));
                break;
            case 'visitoraddjob':
                $title = esc_html(__('Add Job','wp-job-portal'));
                break;
            case 'employermessages':
                $title =  esc_html(__('Messages', 'wp-job-portal'));
                break;
            case 'jobseekermessages':
                $title =  esc_html(__('Job Seeker Messages', 'wp-job-portal'));
                break;
            case 'jobmessages':
                $title =  esc_html(__('Job Messages', 'wp-job-portal'));
                break;
            case 'sendmessage':
                $title =  esc_html(__('Send Message', 'wp-job-portal'));
                break;
            case 'resumesearch':
                $title =  esc_html(__('Resume Search', 'wp-job-portal'));
                break;
            case 'resumesavesearch':
                $title =  esc_html(__('Resume Saved Searches', 'wp-job-portal'));
                break;
            case 'resumes':
                $title =  esc_html(__('Resume List', 'wp-job-portal'));
                break;
            case 'employerpurchasehistory':
                $title =  esc_html(__('Purchase History', 'wp-job-portal'));
                break;
            case 'jobseekerpurchasehistory':
                $title =  esc_html(__('Purchase History', 'wp-job-portal'));
                break;
            case 'mysubscriptions':
                $title =  esc_html(__('My Subscriptions', 'wp-job-portal'));
                break;
            case 'purchasehistory':
                $title =  esc_html(__('My Packages', 'wp-job-portal'));
                break;
            case 'paydepartment':
                $title =  esc_html(__('Pay For Department', 'wp-job-portal'));
                break;
            case 'payjobapply':
                $title =  esc_html(__('Pay For Job Apply', 'wp-job-portal'));
                break;
            case 'paycompany':
                $title =  esc_html(__('Pay For Company', 'wp-job-portal'));
                break;
            case 'payfeaturedcompany':
                $title =  esc_html(__('Pay For Featured Company', 'wp-job-portal'));
                break;
            case 'payjob':
                $title =  esc_html(__('Pay For Job', 'wp-job-portal'));
                break;
            case 'payfeaturedjob':
                $title =  esc_html(__('Pay For Featured Job', 'wp-job-portal'));
                break;
            case 'payresumesearch':
                $title =  esc_html(__('Pay For Resume Search', 'wp-job-portal'));
                break;
            case 'payresume':
                $title =  esc_html(__('Pay For Resume ', 'wp-job-portal'));
                break;
            case 'payfeaturedresume':
                $title =  esc_html(__('Pay For Featured Resume ', 'wp-job-portal'));
                break;
            case 'packages':
                $title =  esc_html(__('Package', 'wp-job-portal'));
                break;
            case 'myinvoices':
                $title =  esc_html(__('My Invoices', 'wp-job-portal'));
                break;
            case 'addfolder':
                $title =  esc_html(__('Add Folder', 'wp-job-portal'));
                break;
            case 'myfolders':
                $title =  esc_html(__('My Folders', 'wp-job-portal'));
                break;
            case 'viewfolder':
                $title =  esc_html(__('View Folder', 'wp-job-portal'));
                break;
            case 'folderresume':
                $title =  esc_html(__('Folder Resumes', 'wp-job-portal'));
                break;
            case 'addresume':
                $title =  esc_html(__('Add Resume', 'wp-job-portal'));
                break;
            case 'myresumes':
                $title =  esc_html(__('My Resumes', 'wp-job-portal'));
                break;
            case 'featuredresumes':
                $title =  esc_html(__('Featured Resumes', 'wp-job-portal'));
                break;
            case 'resumebycategory':
                $title =  esc_html(__('Resume By Categories', 'wp-job-portal'));
                break;
            case 'viewresume':
                $title =  esc_html(__('View Resume', 'wp-job-portal'));
                break;
            case 'myappliedjobs':
                $title =  esc_html(__('My Applied Jobs', 'wp-job-portal'));
                break;
            case 'jobappliedresume':
                $title =  esc_html(__('Job Applied Resume', 'wp-job-portal'));
                break;
            case 'jobalert':
                $title =  esc_html(__('Job Alert', 'wp-job-portal'));
                break;
            case 'jobsearch':
                $title =  esc_html(__('Job Search', 'wp-job-portal'));
                break;
            case 'jobsavesearch':
                $title =  esc_html(__('Job Saved Searches', 'wp-job-portal'));
                break;
            case 'controlpanel':
                $title =  esc_html(__('Dashboard', 'wp-job-portal'));
                break;
            case 'login':
                $title =  esc_html(__('Log In', 'wp-job-portal'));
                break;
            case 'regemployer':
                $title =  esc_html(__('Employer Registration', 'wp-job-portal'));
                break;
            case 'regjobseeker':
                $title =  esc_html(__('Job Seeker Registration', 'wp-job-portal'));
                break;
            case 'formprofile':
                $title =  esc_html(__('Edit Profile', 'wp-job-portal'));
                break;
        }
    }

    return $title;
}

// hook to store ai data for job

//  job ai string
add_action('wpjobportal_after_store_job_hook','storeAIStringDataForJob',10,1);
function storeAIStringDataForJob($data){
    WPJOBPORTALincluder::getJSModel('job')->prepareAIStringDataForJob($data);
}

//  resume ai string
add_action('wpjobportal_after_store_resume_hook','storeAIStringDataForResume',10,1);
function storeAIStringDataForResume($data){
    WPJOBPORTALincluder::getJSModel('resume')->prepareAIStringDataForResume($data);
}


// ai banner

// Retrieve the value of the 'wpjobportal_ai_search_data_sync_needed' option
$sync_needed = get_option('wpjobportal_ai_search_data_sync_needed');
if ($sync_needed === false || $sync_needed != 0) { // if not found then show update database banner
    add_action( 'admin_notices', 'wpjobportal_ai_search_data_sync_needed_notice');
}

function wpjobportal_ai_search_data_sync_needed_notice() {
    ?>
    <div class="notice wpjobportal-ai-search-data-synchronize-section-mainwrp is-dismissible">
         <div class="wpjobportal-ai-search-data-synchronize-section">
            <div class="wpjobportal-ai-search-data-synchronize-imgwrp">
                <img src="<?php echo esc_url(WPJOBPORTAL_PLUGIN_URL); ?>includes/images/sql_update.png" title="<?php echo esc_attr(__('Update', 'wp-job-portal')); ?>" alt="<?php echo esc_attr(__('Update', 'wp-job-portal')); ?>" class="wpjobportal-ai-search-data-synchronize-img">
            </div>
            <div class="wpjobportal-ai-search-data-synchronize-content-wrp">
                <span class="wpjobportal-ai-search-data-synchronize-content-title"><?php echo esc_html(__('Database Update Needed', 'wp-job-portal'));?></span>
                <span class="wpjobportal-ai-search-data-synchronize-content-disc"><?php echo esc_html(__("A critical update for WP Job Portal is required to maintain performance and prevent issues. Please update now.", 'wp-job-portal'));?></span>
            </div>
            <div class="wpjobportal-ai-search-data-synchronize-button-wrp">
                <a href="<?php echo esc_url(wp_nonce_url(admin_url('admin.php?page=wpjobportal_common&task=wpjobportal_synchronize_ai_search_data&action=wpjobportaltask'),'synchronize_ai_search_data')); ?>" id="wpjobportalCheckUpdates" class="wpjobportal_ai_synchronize_data" title="<?php echo esc_attr(__('Update Now', 'wp-job-portal')); ?>">
                    <?php echo esc_html(__('Update Now', 'wp-job-portal')); ?>
                </a>
            </div>
        </div>
    </div>
    <div id="wpjp-loading-overlay" style="display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.65); z-index:9999; text-align:center; color:#fff; font-size:20px; padding-top:20%; font-family:sans-serif;">
        <div><?php echo esc_html(__('Updating Database, please wait...', 'wp-job-portal')); ?></div>
    </div>
    <?php
    wp_register_script( 'wpjobportal-inline-handle', '' );
    wp_enqueue_script( 'wpjobportal-inline-handle' );

    $inline_js_script = "
        jQuery(document).ready(function(){
            jQuery('#wpjobportalCheckUpdates').on('click', function() {
                jQuery('#wpjp-loading-overlay').fadeIn();
            });
        }); ";
    wp_add_inline_script( 'wpjobportal-inline-handle', $inline_js_script );

}
?>

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists