Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save matadorjobs/5c4c3432a82ca0f3485a02759d577720 to your computer and use it in GitHub Desktop.
Save matadorjobs/5c4c3432a82ca0f3485a02759d577720 to your computer and use it in GitHub Desktop.
Matador Bullhorn ATS Set Candidate Category from Applied Job Category
<?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