Created
August 19, 2024 17:02
-
-
Save matadorjobs/5c4c3432a82ca0f3485a02759d577720 to your computer and use it in GitHub Desktop.
Matador Bullhorn ATS Set Candidate Category from Applied Job Category
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Assign Candidate from Application to Category Based on Applied Job (Bullhorn ATS) | |
* | |
* Valid for Matador Jobs 3.9.0. If does not work with future versions, contact Matador Jobs support. | |
* | |
* @since 2024-08-19 | |
* | |
* @author Sam Paget, Matador Holdings, Inc | |
* @copyright Matador Holdings, Inc | |
*/ | |
add_filter( 'matador_application_data_processing', 'set_category_from_job', 10, 2 ); | |
/** | |
* Set Job Category as Application Category | |
* | |
* Takes an application data array and sets the job applied for's categories as the application's categories. | |
* | |
* @since 2024-08-19 | |
* | |
* @param array $application - The application data. | |
* | |
* @return array $application | |
*/ | |
function set_category_from_job( $application ) { | |
if ( ! $application ) { | |
wp_die( 'set_category_from_job Function called improperly' ); | |
} | |
$category_ids = array(); | |
if ( ! empty( $application['application']['jobs'][0]['wpid'] ) ) { | |
/** | |
* Filter the job ID selected for an application. | |
* | |
* This filter allows you to modify which job is used to retrieve categories. | |
* | |
* @since 2024-08-19 | |
* | |
* @param int $job_id The ID of the job selected for the application. | |
* @param array $application The application data array, containing details about the application. | |
* | |
* @return integer | |
*/ | |
$job_id = apply_filters( 'matador_application_job_category_selected_job', $application['application']['jobs'][0]['wpid'], $application ); | |
/** | |
* Filter the taxonomy used for job categories. | |
* | |
* This filter allows you to modify the taxonomy used when retrieving job categories to set the application category. | |
* | |
* @since 2024-08-19 | |
* | |
* @param string $job_category_tax The taxonomy name used for job categories. Default 'matador-categories'. | |
* @param array $application The application data array, containing details about the application. | |
* | |
* @return string | |
*/ | |
$job_category_tax = apply_filters( 'matador_application_job_category_taxonomy', 'matador-categories', $application ); | |
$job_terms = get_the_terms( $job_id, $job_category_tax ); | |
if ( ! is_wp_error( $job_terms ) && ! empty( $job_terms ) ) { | |
foreach ( $job_terms as $term ) { | |
if ( empty( $term->term_id ) ) { | |
continue; | |
} | |
$category_ids[] = get_term_meta( $term->term_id, '_matador_source_id', true ); | |
} | |
} | |
} | |
if ( ! empty( $category_ids ) ) { | |
$application['application']['categories'] = $category_ids; | |
} | |
return $application; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment