name;
if ($count > 1) {
echo ', ';
}
$count--;
}
}
}
}
if ( !function_exists('sjb_get_the_job_category') ) {
/**
* sjb_get_the_job_category function.
*
* @since 2.1.0
* @access public
*
* @param mixed $post (default: null)
* @return void
*/
function sjb_get_the_job_category($post = NULL) {
$post = get_post($post);
if ($post->post_type !== 'jobpost') {
return;
}
$categories = wp_get_post_terms($post->ID, 'jobpost_category');
/**
* Job Categories.
*
* @since 2.1.0
*
* @param $categories Job Categories.
* @param $post Post Object.
*/
return apply_filters('sjb_the_job_category', $categories, $post);
}
}
if (!function_exists('sjb_the_job_type')) {
/**
* sjb_the_job_type function.
*
* @since 2.1.0
* @access public
*
* @return void
*/
function sjb_the_job_type($post = NULL) {
if ($job_types = sjb_get_the_job_type($post)) {
$count = sizeof($job_types);
foreach ($job_types as $job_type) {
echo esc_attr(strip_tags($job_type->name));
if ($count > 1) {
echo ', ';
}
$count--;
}
}
}
}
if (!function_exists('sjb_get_the_job_type')) {
/**
* sjb_get_the_job_type function.
*
* @since 2.1.0
* @access public
*
* @param mixed $post (default: null)
* @return void
*/
function sjb_get_the_job_type($post = NULL) {
$post = get_post($post);
if ($post->post_type !== 'jobpost') {
return;
}
$types = wp_get_post_terms($post->ID, 'jobpost_job_type');
/**
* Job Type.
*
* @since 2.1.0
*
* @param $types Job Types.
* @param $post Post Object.
*/
return apply_filters('sjb_the_job_type', $types, $post);
}
}
if (!function_exists('sjb_the_job_location')) {
/**
* sjb_the_job_location function.
*
* @since 2.1.0
*
* @return void
*/
function sjb_the_job_location($post = NULL) {
$post = get_post($post);
if ($job_locations = sjb_get_the_job_location($post)) {
$count = sizeof($job_locations);
foreach ($job_locations as $location) {
echo esc_attr(strip_tags($location->name));
if ($count > 1) {
echo ', ';
}
$count--;
}
}
}
}
if (!function_exists('sjb_get_the_job_location')) {
/**
* sjb_get_the_job_location function.
*
* @since 2.1.0
*
* @param mixed $post (default: NULL)
* @return void
*/
function sjb_get_the_job_location($post = NULL) {
$post = get_post($post);
if ($post->post_type !== 'jobpost') {
return;
}
$locations = wp_get_post_terms($post->ID, 'jobpost_location');
/**
* Job Location.
*
* @since 2.1.0
*
* @param $locations Job Locations.
* @param $post Post Object
*/
return apply_filters('sjb_the_job_location', $locations, $post);
}
}
if (!function_exists('sjb_the_company_name')) {
/**
* Display or retrieve the current company name with optional content.
*
* @since 2.1.0
*
* @param mixed $id (default: null)
* @return void
*/
function sjb_the_company_name($before = '', $after = '', $echo = true, $post = NULL) {
$company_name = sjb_get_the_company_name($post);
if (strlen($company_name) == 0)
return;
$company_name = esc_attr(strip_tags($company_name));
$company_name = $before . $company_name . $after;
if ($echo)
echo $company_name;
else
return $company_name;
}
}
if (!function_exists('sjb_get_the_company_name')) {
/**
* sjb_get_the_company_name function.
*
* @since 2.1.0
*
* @param int $post (default: null)
* @return string
*/
function sjb_get_the_company_name($post = NULL) {
$post = get_post($post);
if ($post->post_type !== 'jobpost') {
return '';
}
/**
* Company Name.
*
* @since 2.1.0
*
* @param $post->simple_job_board_company_name Company Name.
* @param $post Post Object
*/
return apply_filters('sjb_the_company_name', $post->simple_job_board_company_name, $post);
}
}
if (!function_exists('sjb_the_job_posting_time')) {
/**
* Display or retrieve the job posting time.
*
* @since 2.1.0
*
* @param mixed $id (default: null)
* @return void
*/
function sjb_the_job_posting_time($post = NULL) {
$job_posting_time = sjb_get_the_job_posting_time($post);
if (strlen($job_posting_time) == 0)
return;
echo esc_attr(strip_tags($job_posting_time));
}
}
if (!function_exists('sjb_get_the_job_posting_time')) {
/**
* sjb_get_the_job_posting_time function.
*
* @since 2.1.0
*
* @param int $post (default: null)
* @return string
*/
function sjb_get_the_job_posting_time($post = NULL) {
$post = get_post($post);
if ($post->post_type !== 'jobpost') {
return '';
}
/**
* Job Posted Date.
*
* @since 2.1.0
*
* @param human_time_diff(get_post_time('U'), current_time('timestamp')) Job Posted Date.
* @param $post Post Object
*/
return apply_filters('sjb_the_job_posting_time', human_time_diff(get_post_time('U'), current_time('timestamp')), $post);
}
}
if (!function_exists('sjb_get_the_company_website')) {
/**
* sjb_get_the_company_website function.
*
* @since 2.1.0
*
* @param int $post (default: null)
* @return void
*/
function sjb_get_the_company_website($post = NULL) {
$post = get_post($post);
if ($post->post_type !== 'jobpost') {
return;
}
$website = $post->simple_job_board_company_website;
if ($website && !strstr($website, 'http:') && !strstr($website, 'https:')) {
$website = 'http://' . $website;
}
/**
* Company Website.
*
* @since 2.1.0
*
* @param $website Company Website
* @param $post Post Object
*/
return apply_filters('sjb_the_company_website', $website, $post);
}
}
if (!function_exists('sjb_the_company_tagline')) {
/**
* Display or retrieve the current company tagline with optional content.
*
* @since 2.1.0
*
* @param mixed $id (default: null)
* @return void
*/
function sjb_the_company_tagline($before = '', $after = '', $echo = TRUE, $post = NULL) {
$company_tagline = sjb_get_the_company_tagline($post);
if (strlen($company_tagline) == 0)
return;
$company_tagline = esc_attr(strip_tags($company_tagline));
$company_tagline = $before . $company_tagline . $after;
if ($echo)
echo $company_tagline;
else
return $company_tagline;
}
}
if (!function_exists('sjb_get_the_company_tagline')) {
/**
* sjb_get_the_company_tagline function.
*
* @since 2.1.0
*
* @param int $post (default: 0)
* @return void
*/
function sjb_get_the_company_tagline($post = NULL) {
$post = get_post($post);
if ($post->post_type !== 'jobpost')
return;
/**
* Company Tagline
*
* @since 2.1.0
*
* @param $post->simple_job_board_company_tagline Company Tagline
* @param $post Post Object
*/
return apply_filters('sjb_the_company_tagline', $post->simple_job_board_company_tagline, $post);
}
}
if (!function_exists('sjb_the_company_logo')) {
/**
* sjb_the_company_logo function.
*
* @since 2.1.0
*
* @param string $size (default: 'full')
* @param array or object array $atts {
* associative array with "id" & "class" indexes
*
* @type string id => "logo id"
*
* @type string class => "logo class"
* } (default: null)
* @param mixed $default (default: null)
* @return void
*/
function sjb_the_company_logo($size = 'full', $atts = NULL, $default = NULL, $post = NULL) {
$logo = sjb_get_the_company_logo($post);
$id = NULL;
$class = NULL;
/* Get logo attributes */
if (!empty($atts)) {
if (is_array($atts)) {
$id = isset($atts['id']) ? $atts['id'] : '';
$class = isset($atts['class']) ? $atts['class'] : '';
} else {
$id = isset($atts->id) ? $atts->id : '';
$class = isset($atts->class) ? $atts->class : '';
}
}
if (!empty($logo) && ( strstr($logo, 'http') || file_exists($logo) )) {
if ($size !== 'full') {
$logo = sjb_get_resized_image($logo, $size);
}
echo '';
} elseif ($default) {
echo '
';
} else {
echo '
';
}
}
}
if (!function_exists('sjb_get_the_company_logo')) {
/**
* sjb_get_the_company_logo function.
*
* @since 2.1.0
*
* @param mixed $post (default: null)
* @return string $post->simple_job_board_company_logo Company logo
*/
function sjb_get_the_company_logo($post = NULL) {
$post = get_post($post);
if ($post->post_type !== 'jobpost')
return;
/**
* Company Logo
*
* @since 2.1.0
*
* @param $post->simple_job_board_company_logo Company Logo
* @param $post Post Id
*/
return apply_filters('sjb_the_company_logo', $post->simple_job_board_company_logo, $post);
}
}
if (!function_exists('sjb_get_resized_image')) {
/**
* Resize and get url of the image
*
* @since 2.1.0
*
* @param string $logo
* @param string $size
* @return string $logo Company logo
*/
function sjb_get_resized_image($logo, $size) {
global $_wp_additional_image_sizes;
if ($size !== 'full' && strstr($logo, WP_CONTENT_URL) && (isset($_wp_additional_image_sizes[$size]) || in_array($size, array('thumbnail', 'medium', 'large'
)) )) {
if (in_array($size, array('thumbnail', 'medium', 'large'))) {
$img_width = get_option($size . '_size_w');
$img_height = get_option($size . '_size_h');
$img_crop = get_option($size . '_size_crop');
} else {
$img_width = $_wp_additional_image_sizes[$size]['width'];
$img_height = $_wp_additional_image_sizes[$size]['height'];
$img_crop = $_wp_additional_image_sizes[$size]['crop'];
}
$upload_dir = wp_upload_dir();
$logo_path = str_replace(array($upload_dir['baseurl'], $upload_dir['url'], WP_CONTENT_URL), array($upload_dir['basedir'], $upload_dir['path'], WP_CONTENT_DIR), $logo);
$path_parts = pathinfo($logo_path);
$resized_logo_path = str_replace('.' . $path_parts['extension'], '-' . $size . '.' . $path_parts['extension'], $logo_path);
if (strstr($resized_logo_path, 'http:') || strstr($resized_logo_path, 'https:')) {
return $logo;
}
if (!file_exists($resized_logo_path)) {
ob_start();
$image = wp_get_image_editor($logo_path);
if (!is_wp_error($image)) {
$resize = $image->resize($img_width, $img_height, $img_crop);
if (!is_wp_error($resize)) {
$save = $image->save($resized_logo_path);
if (!is_wp_error($save)) {
$logo = dirname($logo) . '/' . basename($resized_logo_path);
}
}
}
ob_get_clean();
} else {
$logo = dirname($logo) . '/' . basename($resized_logo_path);
}
}
return $logo;
}
}
if (!function_exists('sjb_get_the_excerpt')) {
/**
* Custom Excerpt Function.
*
* @since 1.0.0
*
* @param string $charlength Character length.
* @param string $readmore Read more Enable.
* @param string $readmore_text Read more Text.
* @return string $excerpt Excerpt of Job Description
*/
function sjb_get_the_excerpt() {
$excerpt = '
' . trim(preg_replace('/]*>(.*)<\/a>/iU', '', get_the_excerpt())) . '
'; $more = ''; return apply_filters('sjb_get_the_excerpt', $excerpt . $more, $excerpt, $more); } } if (!function_exists('sjb_keywords_search_by_title')) { /** * Search SQL filter for matching against post title only. * * @since 2.1.4 * * @global Object WP_Query $wp_query * * @param string $search Searched Keyword * @return string $search Search Results from Post Title */ function sjb_keywords_search_by_title($search, $wp_query) { if (!empty($search) && !empty($wp_query->query_vars['search_terms']) && isset($wp_query->query['post_type']) && 'jobpost' == $wp_query->query['post_type']) { global $wpdb; $q = $wp_query->query_vars; $n = !empty($q['exact']) ? '' : '%'; $search = array(); foreach ((array) $q['search_terms'] as $term) $search[] = $wpdb->prepare("$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like($term) . $n); if (!is_user_logged_in()) $search[] = "$wpdb->posts.post_password = ''"; $search = ' AND ' . implode(' AND ', $search); } return $search; } } /* Hook -> Keywords Search By Title */ add_filter('posts_search', 'sjb_keywords_search_by_title', 10, 2); if (!function_exists('sjb_is_checked')) { /** * Assign Default Radio button Check * * @since 2.1.0 */ function sjb_is_checked($i) { $checked = ( $i == 0 ) ? "checked" : NULL; return $checked; } } if (!function_exists('sjb_job_listing_meta_display')) { /** * Displays job meta data on the single job page. * * @since 2.1.0 */ function sjb_job_listing_meta_display() { get_simple_job_board_template('single-jobpost/content-single-job-listing-meta.php', array()); } } add_action('sjb_single_job_listing_start', 'sjb_job_listing_meta_display', 20); if (!function_exists('sjb_job_listing_features')) { /** * Displays job features data on the single job page. * * @since 2.1.0 */ function sjb_job_listing_features() { get_simple_job_board_template('single-jobpost/job-features.php', array()); } } add_action('sjb_single_job_listing_end', 'sjb_job_listing_features', 20); if (!function_exists('sjb_job_listing_application_form')) { /** * Displays job application form on the single job page * * @since 2.1.0 */ function sjb_job_listing_application_form() { get_simple_job_board_template('single-jobpost/job-application.php', array()); } } add_action('sjb_single_job_listing_end', 'sjb_job_listing_application_form', 30); if (!function_exists('sjb_job_listing_wrapper_start')) { /** * Output Content Wrapper start div's * * @since 2.2.0 */ function sjb_job_listing_wrapper_start() { get_simple_job_board_template('global/content-wrapper-start.php'); } } add_action('sjb_before_main_content', 'sjb_job_listing_wrapper_start', 10); if (!function_exists('sjb_job_listing_wrapper_end')) { /** * Output Content Wrapper end div's * * @since 2.2.0 */ function sjb_job_listing_wrapper_end() { get_simple_job_board_template('global/content-wrapper-end.php'); } } add_action('sjb_after_main_content', 'sjb_job_listing_wrapper_end', 10); if (!function_exists('sjb_job_listing_view')) { /** * Job Listing View * * This function displays the user defined job listing view. * * @since 2.2.3 */ function sjb_job_listing_view() { // Display the user defined job listing view if ('grid-view' === get_option('job_board_listing_view')) { get_simple_job_board_template('content-job-listing-grid-view.php'); } else { get_simple_job_board_template('content-job-listing-list-view.php'); } } } // Hook -> Job Listing View add_action('sjb_job_listing_view', 'sjb_job_listing_view', 10); if (!function_exists('sjb_job_features_count')) { /** * Return Count of Job Features. * * @since 2.2.0 */ function sjb_job_features_count() { global $post; $keys = get_post_custom_keys(get_the_ID()); $count = 0; if ($keys != NULL): foreach ($keys as $key): if (substr($key, 0, 11) == 'jobfeature_') { $val = get_post_meta($post->ID, $key, TRUE); if (is_serialized($val)) { $val = unserialize($val); } if (!empty($val['value'])) { $count++; } } endforeach; endif; return $count; } } if (!function_exists('sjb_front_end_scripts')) { /** * Enqueue Frontend Styles & Scripts. * * @since 2.2.3 */ function sjb_front_end_scripts() { // Enqueue Scripts wp_enqueue_script('simple-job-board-validate-telephone-input'); wp_enqueue_script('simple-job-board-validate-telephone-input-utiliy'); wp_enqueue_script('simple-job-board-front-end'); } } // Action -> Enqueue Frontend Styles & Scripts. add_action('sjb_enqueue_scripts', 'sjb_front_end_scripts'); if (!function_exists('sjb_get_slugs')) { /** * Get Current Page Slug. * * @since 2.2.4 */ function sjb_get_slugs() { global $post; if (is_archive()) { $link = get_post_type_archive_link('jobpost'); } else { $link = get_permalink($post->ID); } if (empty($link)) { return FALSE; } else { $link = str_replace(home_url('/'), '', $link); return $link; } } } if (!function_exists('sjb_is_keyword_search')) { /** * Is Category Filter * * @since 2.4.0 */ function sjb_is_keyword_search() { $is_search = ('yes' === get_option('job_board_search_bar') ) ? TRUE : FALSE; return $is_search; } } if (!function_exists('sjb_is_category_filter')) { /** * Is Category Filter * * @since 2.4.0 */ function sjb_is_category_filter() { $is_cat = ( NULL != get_terms('jobpost_category') && ( 'yes' === get_option('job_board_category_filter') ) ) ? TRUE : FALSE; return $is_cat; } } if (!function_exists('sjb_is_type_filter')) { /** * Is Job Type Filter * * @since 2.4.0 * */ function sjb_is_type_filter() { $is_type = ( NULL != get_terms('jobpost_job_type') && 'yes' === get_option('job_board_jobtype_filter') ) ? TRUE : FALSE; return $is_type; } } if (!function_exists('sjb_is_location_filter')) { /** * Is Job Location Filter * * @since 2.4.0 */ function sjb_is_location_filter() { $is_loc = ( NULL != get_terms('jobpost_location') && 'yes' === get_option('job_board_location_filter') ) ? TRUE : FALSE; return $is_loc; } } if (!function_exists('sjb_is_filter_dropdowns')) { /** * Is Job Filters * * @since 2.4.0 */ function sjb_is_filter_dropdowns() { $filters_dropdowns = ( sjb_is_category_filter() || sjb_is_type_filter() || sjb_is_location_filter() ) ? TRUE : FALSE; return apply_filters('sjb_is_filter_dropdowns', $filters_dropdowns); } } if (!function_exists('is_sjb')) { /** * is_sjb - Returns TRUE when Viewing the Jobpost Pages. * * @since 2.4.0 * * @return bool */ function is_sjb() { return apply_filters('is_sjb', ( is_jobpost() || is_jobpost_archive() || is_jobpost_taxonomy() || is_jobpost_shortcode() ) ? TRUE : FALSE ); } } if (!function_exists('is_jobpost')) { /** * is_jobpost - Returns TRUE when Viewing the Jobpost Single Page. * * @since 2.4.0 * * @return bool */ function is_jobpost() { return is_singular(array('jobpost')); } } if (!function_exists('is_jobpost_archive')) { /** * is_jobpost_archive - Returns TRUE when Viewing the Job Archive Page. * * @since 2.4.0 * * @return bool */ function is_jobpost_archive() { return ( is_post_type_archive('jobpost') ); } } if (!function_exists('is_jobpost_taxonomy')) { /** * is_jobpost_taxonomy - Returns TRUE when Viewing the Job Taxonomies. * * @since 2.4.0 * * @return bool */ function is_jobpost_taxonomy() { return is_tax(get_object_taxonomies('jobpost')); } } if (!function_exists('is_jobpost_shortcode')) { /** * is_jobpost_shortcode - Returns TRUE when Viewing the Job Listing. * * @since 2.4.0 * * @return bool */ function is_jobpost_shortcode() { global $post; return is_a($post, 'WP_Post') && has_shortcode($post->post_content, 'jobpost'); } } if (!function_exists('sjb_the_title')) { /** * Display Job Title * * @since 2.4.4 * * @param string $before Add string befor title. * @param string $after Add string after title. * @param bool $echo TRUE/FALSE * @param object $post Post Object * @return $job_title Job Title */ function sjb_the_title($before = '', $after = '', $echo = TRUE, $post = NULL) { $job_title = sjb_get_the_title($post); if (strlen($job_title) == 0) return; $job_title = esc_attr(strip_tags($job_title)); $job_title = $before . $job_title . $after; if ($echo) echo $job_title; else return $job_title; } } if (!function_exists('sjb_get_the_title')) { /** * Return Job Title * * @since 2.4.4 * * @param object $post Post Object * @return $job_title Job Title */ function sjb_get_the_title($post = NULL) { global $post; $title = get_the_title(); /** * Job Title * * @since 2.4.4 * * @param $title Job Title * @param $post Post Id */ return apply_filters('sjb_the_title', $title, $post); } } /** * Single Job Content Start * * @since 2.5.0 */ if (!function_exists('sjb_single_job_content_start')) { function sjb_single_job_content_start() { get_simple_job_board_template('single-jobpost/single-job-wrapper-start.php'); } } add_action('sjb_single_job_content_start', 'sjb_single_job_content_start'); /** * Single Job Content End * * @since 2.5.0 */ if (!function_exists('sjb_single_job_content_end')) { function sjb_single_job_content_end() { get_simple_job_board_template('single-jobpost/single-job-wrapper-end.php'); } } add_action('sjb_single_job_content_end', 'sjb_single_job_content_end'); /** * Converts a string (e.g. 'yes' or 'no') to a bool. * * @since 2.6.0 * * @param string $string String to convert. * @return bool */ function sjb_string_to_bool( $string ) { return is_bool( $string ) ? $string : ( 'yes' === $string || 1 === $string || 'true' === $string || '1' === $string ); }