Done !
| Server IP : 46.105.57.169 / Your IP : 216.73.216.67 Web Server : Apache System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : verseaumee ( 152031) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/verseaumee/blueversion/wp-content/plugins/wp-freeio/includes/ |
Upload File : |
<?php
/**
* Shortcodes
*
* @package wp-freeio
* @author Habq
* @license GNU General Public License, version 3
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class WP_Freeio_Shortcodes {
/**
* Initialize shortcodes
*
* @access public
* @return void
*/
public static function init() {
add_action( 'wp', array( __CLASS__, 'check_logout' ) );
// login | register
add_shortcode( 'wp_freeio_logout', array( __CLASS__, 'logout' ) );
add_shortcode( 'wp_freeio_login', array( __CLASS__, 'login' ) );
add_shortcode( 'wp_freeio_register', array( __CLASS__, 'register' ) );
add_shortcode( 'wp_freeio_register_freelancer', array( __CLASS__, 'register_freelancer' ) );
add_shortcode( 'wp_freeio_register_employer', array( __CLASS__, 'register_employer' ) );
// profile
add_shortcode( 'wp_freeio_user_dashboard', array( __CLASS__, 'user_dashboard' ) );
add_shortcode( 'wp_freeio_change_password', array( __CLASS__, 'change_password' ) );
add_shortcode( 'wp_freeio_change_profile', array( __CLASS__, 'change_profile' ) );
add_shortcode( 'wp_freeio_change_resume', array( __CLASS__, 'change_resume' ) );
add_shortcode( 'wp_freeio_delete_profile', array( __CLASS__, 'delete_profile' ) );
add_shortcode( 'wp_freeio_approve_user', array( __CLASS__, 'approve_user' ) );
// submission
add_shortcode( 'wp_freeio_submission_job', array( __CLASS__, 'submission_job' ) );
add_shortcode( 'wp_freeio_my_jobs', array( __CLASS__, 'my_jobs' ) );
add_shortcode( 'wp_freeio_submission_project', array( __CLASS__, 'submission_project' ) );
add_shortcode( 'wp_freeio_my_projects', array( __CLASS__, 'my_projects' ) );
add_shortcode( 'wp_freeio_submission_service', array( __CLASS__, 'submission_service' ) );
add_shortcode( 'wp_freeio_my_services', array( __CLASS__, 'my_services' ) );
add_shortcode( 'wp_freeio_submission_service_addon', array( __CLASS__, 'submission_service_addon' ) );
// employer
add_shortcode( 'wp_freeio_job_applicants', array( __CLASS__, 'job_applicants' ) );
add_shortcode( 'wp_freeio_my_freelancers_alerts', array( __CLASS__, 'my_freelancers_alerts' ) );
add_shortcode( 'wp_freeio_my_bought_services', array( __CLASS__, 'my_bought_services' ) );
add_shortcode( 'wp_freeio_employer_employees', array( __CLASS__, 'employer_employees' ) );
add_shortcode( 'wp_freeio_employer_meetings', array( __CLASS__, 'employer_meetings' ) );
// freelancer
add_shortcode( 'wp_freeio_my_proposals', array( __CLASS__, 'my_proposals' ) );
add_shortcode( 'wp_freeio_my_applied', array( __CLASS__, 'my_applied' ) );
add_shortcode( 'wp_freeio_my_jobs_alerts', array( __CLASS__, 'my_jobs_alerts' ) );
add_shortcode( 'wp_freeio_payouts', array( __CLASS__, 'payouts' ) );
add_shortcode( 'wp_freeio_statements', array( __CLASS__, 'statements' ) );
add_shortcode( 'wp_freeio_freelancer_meetings', array( __CLASS__, 'freelancer_meetings' ) );
add_shortcode( 'wp_freeio_verify_identity', array( __CLASS__, 'verify_identity' ) );
add_shortcode( 'wp_freeio_dispute', array( __CLASS__, 'dispute' ) );
add_shortcode( 'wp_freeio_jobs', array( __CLASS__, 'jobs' ) );
add_shortcode( 'wp_freeio_services', array( __CLASS__, 'services' ) );
add_shortcode( 'wp_freeio_projects', array( __CLASS__, 'projects' ) );
add_shortcode( 'wp_freeio_employers', array( __CLASS__, 'employers' ) );
add_shortcode( 'wp_freeio_freelancers', array( __CLASS__, 'freelancers' ) );
}
/**
* Logout checker
*
* @access public
* @param $wp
* @return void
*/
public static function check_logout( $wp ) {
$post = get_post();
if ( is_page() ) {
if ( has_shortcode( $post->post_content, 'wp_freeio_logout' ) ) {
wp_safe_redirect( str_replace( '&', '&', wp_logout_url( home_url( '/' ) ) ) );
exit();
} elseif ( has_shortcode( $post->post_content, 'wp_freeio_my_jobs' ) ) {
self::my_jobs_hanlder();
} elseif ( has_shortcode( $post->post_content, 'wp_freeio_my_projects' ) ) {
self::my_projects_hanlder();
} elseif ( has_shortcode( $post->post_content, 'wp_freeio_my_services' ) ) {
self::my_services_hanlder();
}
}
if ( !empty($_GET['register_msg']) && ($user_data = get_userdata($_GET['register_msg'])) ) {
$user_login_auth = WP_Freeio_User::get_user_status($user_data);
if ( $user_login_auth == 'pending' ) {
$jsondata = array(
'error' => false,
'msg' => WP_Freeio_User::register_msg($user_data),
);
$_SESSION['register_msg'] = $jsondata;
} elseif ( $user_login_auth == 'denied' ) {
$jsondata = array(
'status' => false,
'msg' => __('Your account denied', 'wp-freeio')
);
$_SESSION['register_msg'] = $jsondata;
}
}
}
/**
* Logout
*
* @access public
* @return void
*/
public static function logout( $atts ) {}
/**
* Login
*
* @access public
* @return string
*/
public static function login( $atts ) {
if ( is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/loged-in' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/login', $atts );
}
/**
* Register
*
* @access public
* @return string
*/
public static function register( $atts ) {
if ( is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/loged-in' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/register', $atts );
}
/**
* Register Freelancer
*
* @access public
* @return string
*/
public static function register_freelancer( $atts ) {
if ( is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/loged-in' );
}
$form = WP_Freeio_Freelancer_Register_Form::get_instance();
return $form->form_output();
}
/**
* Register Employer
*
* @access public
* @return string
*/
public static function register_employer( $atts ) {
if ( is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/loged-in' );
}
$form = WP_Freeio_Employer_Register_Form::get_instance();
return $form->form_output();
}
/**
* Submission index
*
* @access public
* @return string|void
*/
public static function submission_job( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} else {
$user_id = get_current_user_id();
if ( WP_Freeio_User::is_employee($user_id) ) {
if ( !WP_Freeio_User::is_employee_can_add_submission($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
} elseif ( !WP_Freeio_User::is_employer($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
}
$form = WP_Freeio_Job_Submit_Form::get_instance();
return $form->output();
}
public static function edit_form( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_employer() || (WP_Freeio_User::is_employee() && wp_freeio_get_option('employee_edit_job') == 'on') ) {
$user_id = WP_Freeio_User::get_user_id();
if ( empty($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
$form = WP_Freeio_Job_Edit_Form::get_instance();
return $form->output();
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
public static function my_jobs_hanlder() {
$action = !empty($_REQUEST['action']) ? sanitize_title( $_REQUEST['action'] ) : '';
$job_id = isset( $_REQUEST['job_id'] ) ? absint( $_REQUEST['job_id'] ) : 0;
if ( $action == 'relist' || $action == 'continue' ) {
$submit_form_page_id = wp_freeio_get_option('submit_job_form_page_id');
if ( $submit_form_page_id ) {
$submit_page_url = get_permalink($submit_form_page_id);
wp_safe_redirect( add_query_arg( array( 'job_id' => absint( $job_id ), 'action' => $action ), $submit_page_url ) );
exit;
}
}
}
public static function my_jobs( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_employer() || (WP_Freeio_User::is_employee() && wp_freeio_get_option('employee_view_my_jobs') == 'on') ) {
$user_id = WP_Freeio_User::get_user_id();
if ( empty($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
if ( ! empty( $_REQUEST['action'] ) ) {
$action = sanitize_title( $_REQUEST['action'] );
if ( $action == 'edit' ) {
return self::edit_form($atts);
}
}
return WP_Freeio_Template_Loader::get_template_part( 'submission/my-jobs' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
/**
* Submission index
*
* @access public
* @return string|void
*/
public static function submission_project( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} else {
$user_id = get_current_user_id();
if ( WP_Freeio_User::is_employee($user_id) ) {
if ( !WP_Freeio_User::is_employee_can_add_submission($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
} elseif ( !WP_Freeio_User::is_employer($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
}
$form = WP_Freeio_Project_Submit_Form::get_instance();
return $form->output();
}
public static function my_projects_hanlder() {
$action = !empty($_REQUEST['action']) ? sanitize_title( $_REQUEST['action'] ) : '';
$project_id = isset( $_REQUEST['project_id'] ) ? absint( $_REQUEST['project_id'] ) : 0;
if ( $action == 'relist' || $action == 'continue' ) {
$submit_form_page_id = wp_freeio_get_option('submit_project_form_page_id');
if ( $submit_form_page_id ) {
$submit_page_url = get_permalink($submit_form_page_id);
wp_safe_redirect( add_query_arg( array( 'project_id' => absint( $project_id ), 'action' => $action ), $submit_page_url ) );
exit;
}
}
}
public static function edit_project_form( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_employer() || (WP_Freeio_User::is_employee() && wp_freeio_get_option('employee_edit_project') == 'on') ) {
$form = WP_Freeio_Project_Edit_Form::get_instance();
return $form->output();
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
public static function my_projects( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_employer() || (WP_Freeio_User::is_employee() && wp_freeio_get_option('employee_view_my_projects') == 'on') ) {
$user_id = WP_Freeio_User::get_user_id();
if ( empty($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
if ( ! empty( $_REQUEST['action'] ) ) {
$action = sanitize_title( $_REQUEST['action'] );
if ( $action == 'edit' ) {
return self::edit_project_form($atts);
} elseif ( $action == 'view-proposals' ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-proposals' );
} elseif ( $action == 'view-history' ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-proposal-history' );
}
}
return WP_Freeio_Template_Loader::get_template_part( 'project-submission/my-projects' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
/**
* Submission index
*
* @access public
* @return string|void
*/
public static function submission_service( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} else {
$user_id = get_current_user_id();
if ( !WP_Freeio_User::is_freelancer($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
}
$form = WP_Freeio_Service_Submit_Form::get_instance();
return $form->output();
}
public static function edit_service_form( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_freelancer() ) {
$user_id = WP_Freeio_User::get_user_id();
if ( empty($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
$form = WP_Freeio_Service_Edit_Form::get_instance();
return $form->output();
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
public static function my_services_hanlder() {
$action = !empty($_REQUEST['action']) ? sanitize_title( $_REQUEST['action'] ) : '';
$service_id = isset( $_REQUEST['service_id'] ) ? absint( $_REQUEST['service_id'] ) : 0;
if ( $action == 'relist' || $action == 'continue' ) {
$submit_form_page_id = wp_freeio_get_option('submit_service_form_page_id');
if ( $submit_form_page_id ) {
$submit_page_url = get_permalink($submit_form_page_id);
wp_safe_redirect( add_query_arg( array( 'service_id' => absint( $service_id ), 'action' => $action ), $submit_page_url ) );
exit;
}
}
}
public static function my_services( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_freelancer() ) {
$user_id = WP_Freeio_User::get_user_id();
if ( empty($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
if ( ! empty( $_REQUEST['action'] ) ) {
$action = sanitize_title( $_REQUEST['action'] );
if ( $action == 'edit' ) {
return self::edit_service_form($atts);
} elseif ( $action == 'view-inqueue' ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-services-inqueue' );
} elseif ( $action == 'view-history' ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-services-history' );
}
}
return WP_Freeio_Template_Loader::get_template_part( 'service-submission/my-services' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
public static function submission_service_addon( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_freelancer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'service-submission/service-addons' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
/**
* Employer dashboard
*
* @access public
* @param $atts
* @return string
*/
public static function user_dashboard( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} else {
$user_id = get_current_user_id();
if ( WP_Freeio_User::is_employer($user_id) ) {
$employer_id = WP_Freeio_User::get_employer_by_user_id($user_id);
return WP_Freeio_Template_Loader::get_template_part( 'misc/employer-dashboard', array( 'user_id' => $user_id, 'employer_id' => $employer_id ) );
} elseif ( WP_Freeio_User::is_freelancer($user_id) ) {
$freelancer_id = WP_Freeio_User::get_freelancer_by_user_id($user_id);
return WP_Freeio_Template_Loader::get_template_part( 'misc/freelancer-dashboard', array( 'user_id' => $user_id, 'freelancer_id' => $freelancer_id ) );
} elseif ( WP_Freeio_User::is_employee($user_id) && wp_freeio_get_option('employee_view_dashboard') == 'on' ) {
$user_id = WP_Freeio_User::get_user_id($user_id);
if ( empty($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
$employer_id = WP_Freeio_User::get_employer_by_user_id($user_id);
return WP_Freeio_Template_Loader::get_template_part( 'misc/employer-dashboard', array( 'user_id' => $user_id, 'employer_id' => $employer_id ) );
}
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
/**
* Change password
*
* @access public
* @param $atts
* @return string
*/
public static function change_password( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/password-form' );
}
/**
* Change profile
*
* @access public
* @param $atts
* @return void
*/
public static function change_profile( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
}
$metaboxes = apply_filters( 'cmb2_meta_boxes', array() );
$metaboxes_form = array();
$user_id = get_current_user_id();
if ( WP_Freeio_User::is_employer($user_id) ) {
if ( ! isset( $metaboxes[ WP_FREEIO_EMPLOYER_PREFIX . 'front' ] ) ) {
return __( 'A metabox with the specified \'metabox_id\' doesn\'t exist.', 'wp-freeio' );
}
$metaboxes_form = $metaboxes[ WP_FREEIO_EMPLOYER_PREFIX . 'front' ];
$post_id = WP_Freeio_User::get_employer_by_user_id($user_id);
} elseif( WP_Freeio_User::is_freelancer($user_id) ) {
if ( ! isset( $metaboxes[ WP_FREEIO_FREELANCER_PREFIX . 'front' ] ) ) {
return __( 'A metabox with the specified \'metabox_id\' doesn\'t exist.', 'wp-freeio' );
}
$metaboxes_form = $metaboxes[ WP_FREEIO_FREELANCER_PREFIX . 'front' ];
$post_id = WP_Freeio_User::get_freelancer_by_user_id($user_id);
} elseif ( WP_Freeio_User::is_employee($user_id) && wp_freeio_get_option('employee_edit_employer_profile') == 'on' ) {
$user_id = WP_Freeio_User::get_user_id($user_id);
if ( empty($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
if ( ! isset( $metaboxes[ WP_FREEIO_EMPLOYER_PREFIX . 'front' ] ) ) {
return __( 'A metabox with the specified \'metabox_id\' doesn\'t exist.', 'wp-freeio' );
}
$metaboxes_form = $metaboxes[ WP_FREEIO_EMPLOYER_PREFIX . 'front' ];
$post_id = WP_Freeio_User::get_employer_by_user_id($user_id);
} else {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
if ( !$post_id ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
wp_enqueue_script('google-maps');
wp_enqueue_script('wpfi-select2');
wp_enqueue_style('wpfi-select2');
return WP_Freeio_Template_Loader::get_template_part( 'misc/profile-form', array('post_id' => $post_id, 'metaboxes_form' => $metaboxes_form ) );
}
public static function change_resume( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_freelancer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
$metaboxes = apply_filters( 'cmb2_meta_boxes', array() );
$metaboxes_form = array();
$user_id = WP_Freeio_User::get_user_id();
if ( ! isset( $metaboxes[ WP_FREEIO_FREELANCER_PREFIX . 'resume_front' ] ) ) {
return __( 'A metabox with the specified \'metabox_id\' doesn\'t exist.', 'wp-freeio' );
}
$metaboxes_form = $metaboxes[ WP_FREEIO_FREELANCER_PREFIX . 'resume_front' ];
$post_id = WP_Freeio_User::get_freelancer_by_user_id($user_id);
if ( !$post_id ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
wp_enqueue_script('google-maps');
wp_enqueue_script('wpfi-select2');
wp_enqueue_style('wpfi-select2');
return WP_Freeio_Template_Loader::get_template_part( 'misc/resume-form', array('post_id' => $post_id, 'metaboxes_form' => $metaboxes_form ) );
}
public static function delete_profile($atts) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_employee() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
$user_id = get_current_user_id();
return WP_Freeio_Template_Loader::get_template_part( 'misc/delete-profile-form', array('user_id' => $user_id) );
}
public static function approve_user($atts) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/approve-user' );
}
public static function job_applicants( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_employer() || (WP_Freeio_User::is_employee() && wp_freeio_get_option('employee_view_applications') == 'on') ) {
$user_id = WP_Freeio_User::get_user_id();
if ( empty($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
$jobs_loop = new WP_Query( array(
'post_type' => 'job_listing',
'fields' => 'ids',
'author' => $user_id,
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => -1,
));
$job_ids = array();
if ( !empty($jobs_loop) && !empty($jobs_loop->posts) ) {
$job_ids = $jobs_loop->posts;
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/job-applicants', array( 'job_ids' => $job_ids ) );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
public static function my_freelancers_alerts( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_employer() || (WP_Freeio_User::is_employee() && wp_freeio_get_option('employee_view_freelancer_alert') == 'on') ) {
$user_id = WP_Freeio_User::get_user_id();
if ( empty($user_id) ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$query_vars = array(
'post_type' => 'freelancer_alert',
'posts_per_page' => get_option('posts_per_page'),
'paged' => $paged,
'post_status' => 'publish',
'fields' => 'ids',
'author' => $user_id,
);
if ( isset($_GET['search']) ) {
$query_vars['s'] = $_GET['search'];
}
if ( isset($_GET['orderby']) ) {
switch ($_GET['orderby']) {
case 'menu_order':
$query_vars['orderby'] = array(
'menu_order' => 'ASC',
'date' => 'DESC',
'ID' => 'DESC',
);
break;
case 'newest':
$query_vars['orderby'] = 'date';
$query_vars['order'] = 'DESC';
break;
case 'oldest':
$query_vars['orderby'] = 'date';
$query_vars['order'] = 'ASC';
break;
}
}
$alerts = WP_Freeio_Query::get_posts($query_vars);
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-freelancers-alerts', array( 'alerts' => $alerts ) );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
public static function my_proposals( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_freelancer()) {
if ( ! empty( $_REQUEST['action'] ) ) {
$action = sanitize_title( $_REQUEST['action'] );
if ( $action == 'view-history' ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-proposal-freelancer-history' );
}
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-proposals-freelancer' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
public static function my_bought_services( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( WP_Freeio_User::is_employer() || (WP_Freeio_User::is_employee() && wp_freeio_get_option('employee_view_my_bought_service') == 'on') ) {
if ( ! empty( $_REQUEST['action'] ) ) {
$action = sanitize_title( $_REQUEST['action'] );
if ( $action == 'view-history' ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-services-employer-history' );
}
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-services-employer' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
public static function employer_employees( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_employer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/employer-employees' );
}
public static function employer_meetings($atts) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_employer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'employer') );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/employer-meetings' );
}
public static function my_applied( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_freelancer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
$user_id = WP_Freeio_User::get_user_id();
$freelancer_id = WP_Freeio_User::get_freelancer_by_user_id($user_id);
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$freelancer_ids = apply_filters( 'wp-freeio-translations-post-ids', $freelancer_id );
if ( !is_array($freelancer_ids) ) {
$freelancer_ids = array($freelancer_ids);
}
$freelancer_ids = array_merge(array(0), $freelancer_ids);
$query_vars = array(
'post_type' => 'job_applicant',
'posts_per_page' => get_option('posts_per_page'),
'paged' => $paged,
'post_status' => 'publish',
'fields' => 'ids',
'meta_query' => array(
array(
'key' => WP_FREEIO_APPLICANT_PREFIX . 'freelancer_id',
'value' => $freelancer_ids,
'compare' => 'IN',
),
)
);
if ( isset($_GET['search']) ) {
$meta_query = $query_vars['meta_query'];
$meta_query[] = array(
'key' => WP_FREEIO_APPLICANT_PREFIX . 'job_name',
'value' => $_GET['search'],
'compare' => 'LIKE',
);
$query_vars['meta_query'] = $meta_query;
}
if ( isset($_GET['orderby']) ) {
switch ($_GET['orderby']) {
case 'menu_order':
$query_vars['orderby'] = array(
'menu_order' => 'ASC',
'date' => 'DESC',
'ID' => 'DESC',
);
break;
case 'newest':
$query_vars['orderby'] = 'date';
$query_vars['order'] = 'DESC';
break;
case 'oldest':
$query_vars['orderby'] = 'date';
$query_vars['order'] = 'ASC';
break;
}
}
$applicants = WP_Freeio_Query::get_posts($query_vars);
return WP_Freeio_Template_Loader::get_template_part( 'misc/jobs-applied', array( 'applicants' => $applicants ) );
}
public static function my_jobs_alerts( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_freelancer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
$user_id = WP_Freeio_User::get_user_id();
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$query_vars = array(
'post_type' => 'job_alert',
'posts_per_page' => get_option('posts_per_page'),
'paged' => $paged,
'post_status' => 'publish',
'fields' => 'ids',
'author' => $user_id,
);
if ( isset($_GET['search']) ) {
$query_vars['s'] = $_GET['search'];
}
if ( isset($_GET['orderby']) ) {
switch ($_GET['orderby']) {
case 'menu_order':
$query_vars['orderby'] = array(
'menu_order' => 'ASC',
'date' => 'DESC',
'ID' => 'DESC',
);
break;
case 'newest':
$query_vars['orderby'] = 'date';
$query_vars['order'] = 'DESC';
break;
case 'oldest':
$query_vars['orderby'] = 'date';
$query_vars['order'] = 'ASC';
break;
}
}
$alerts = WP_Freeio_Query::get_posts($query_vars);
return WP_Freeio_Template_Loader::get_template_part( 'misc/my-jobs-alerts', array( 'alerts' => $alerts ) );
}
public static function payouts( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_freelancer() && !WP_Freeio_User::is_employer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/payouts' );
}
public static function statements( $atts ) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_freelancer() && !WP_Freeio_User::is_employer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/statements' );
}
public static function freelancer_meetings($atts) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_freelancer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed', array('need_role' => 'freelancer') );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/freelancer-meetings' );
}
public static function verify_identity($atts) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_freelancer() && !WP_Freeio_User::is_employer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/verify-identity' );
}
public static function dispute($atts) {
if ( ! is_user_logged_in() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/need-login' );
} elseif ( !WP_Freeio_User::is_freelancer() && !WP_Freeio_User::is_employer() ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/not-allowed' );
}
if ( ! empty( $_REQUEST['action'] ) ) {
$action = sanitize_title( $_REQUEST['action'] );
if ( $action == 'view-detail' ) {
return WP_Freeio_Template_Loader::get_template_part( 'misc/dispute-detail' );
}
}
return WP_Freeio_Template_Loader::get_template_part( 'misc/dispute' );
}
public static function jobs( $atts ) {
$atts = wp_parse_args( $atts, array(
'limit' => wp_freeio_get_option('number_jobs_per_page', 10),
'post__in' => array(),
'categories' => array(),
'types' => array(),
'locations' => array(),
));
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$query_args = array(
'post_type' => 'job_listing',
'post_status' => 'publish',
'post_per_page' => $atts['limit'],
'paged' => $paged,
);
$params = array();
if (WP_Freeio_Abstract_Filter::has_filter($atts)) {
$params = $atts;
}
if ( WP_Freeio_Job_Filter::has_filter() ) {
$params = array_merge($params, $_GET);
}
$jobs = WP_Freeio_Query::get_posts($query_args, $params);
// echo "<pre>".print_r($jobs,1); die;
return WP_Freeio_Template_Loader::get_template_part( 'misc/jobs', array( 'jobs' => $jobs, 'atts' => $atts ) );
}
public static function services( $atts ) {
$atts = wp_parse_args( $atts, array(
'limit' => wp_freeio_get_option('number_services_per_page', 10),
'post__in' => array(),
'categories' => array(),
'types' => array(),
'locations' => array(),
));
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$query_args = array(
'post_type' => 'service',
'post_status' => 'publish',
'post_per_page' => $atts['limit'],
'paged' => $paged,
);
$params = array();
if (WP_Freeio_Abstract_Filter::has_filter($atts)) {
$params = $atts;
}
if ( WP_Freeio_Service_Filter::has_filter() ) {
$params = array_merge($params, $_GET);
}
$services = WP_Freeio_Query::get_posts($query_args, $params);
return WP_Freeio_Template_Loader::get_template_part( 'misc/services', array( 'services' => $services, 'atts' => $atts ) );
}
public static function projects( $atts ) {
$atts = wp_parse_args( $atts, array(
'limit' => wp_freeio_get_option('number_projects_per_page', 10),
'post__in' => array(),
'categories' => array(),
'types' => array(),
'locations' => array(),
));
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$query_args = array(
'post_type' => 'project',
'post_status' => 'publish',
'post_per_page' => $atts['limit'],
'paged' => $paged,
);
$params = array();
if (WP_Freeio_Abstract_Filter::has_filter($atts)) {
$params = $atts;
}
if ( WP_Freeio_Project_Filter::has_filter() ) {
$params = array_merge($params, $_GET);
}
$projects = WP_Freeio_Query::get_posts($query_args, $params);
return WP_Freeio_Template_Loader::get_template_part( 'misc/projects', array( 'projects' => $projects, 'atts' => $atts ) );
}
public static function employers( $atts ) {
$atts = wp_parse_args( $atts, array(
'limit' => wp_freeio_get_option('number_employers_per_page', 10),
'post__in' => array(),
'categories' => array(),
'types' => array(),
'locations' => array(),
));
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$query_args = array(
'post_type' => 'employer',
'post_status' => 'publish',
'post_per_page' => $atts['limit'],
'paged' => $paged,
);
$params = array();
if (WP_Freeio_Abstract_Filter::has_filter($atts)) {
$params = $atts;
}
if ( WP_Freeio_Employer_Filter::has_filter() ) {
$params = array_merge($params, $_GET);
}
$employers = WP_Freeio_Query::get_posts($query_args, $params);
return WP_Freeio_Template_Loader::get_template_part( 'misc/employers', array( 'employers' => $employers, 'atts' => $atts ) );
}
public static function freelancers( $atts ) {
$atts = wp_parse_args( $atts, array(
'limit' => wp_freeio_get_option('number_freelancers_per_page', 10),
'post__in' => array(),
'categories' => array(),
'types' => array(),
'locations' => array(),
));
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$query_args = array(
'post_type' => 'freelancer',
'post_status' => 'publish',
'post_per_page' => $atts['limit'],
'paged' => $paged,
);
$params = array();
if (WP_Freeio_Abstract_Filter::has_filter($atts)) {
$params = $atts;
}
if ( WP_Freeio_Freelancer_Filter::has_filter() ) {
$params = array_merge($params, $_GET);
}
$freelancers = WP_Freeio_Query::get_posts($query_args, $params);
return WP_Freeio_Template_Loader::get_template_part( 'misc/freelancers', array( 'freelancers' => $freelancers, 'atts' => $atts ) );
}
}
WP_Freeio_Shortcodes::init();