Complete Hook and Filter Reference
This document provides a comprehensive reference for all hooks, filters, and functions available in the Reign WP Job Manager Addon v2.9.0.
Action Hooks
Job Listing Hooks
reign_wpjm_job_listing_meta_start
Fires before job meta information in listing loops.
do_action( 'reign_wpjm_job_listing_meta_start' );
Since: 2.9.0
Usage: Add custom content before job meta
reign_wpjm_job_listing_meta_end
Fires after job meta information in listing loops.
do_action( 'reign_wpjm_job_listing_meta_end' );
Since: 2.9.0
Usage: Add custom content after job meta
reign_wpjm_job_submitted
Fires after a job is submitted.
do_action( 'reign_wpjm_job_submitted', $job_id );
Parameters:
$job_id(int) – The job post ID
Since: 2.9.0
Usage: Process job after submission
reign_wpjm_before_job_publish
Fires before a job is published.
do_action( 'reign_wpjm_before_job_publish', $job_id );
Parameters:
$job_id(int) – The job post ID
Since: 2.9.0
Resume Hooks
reign_wpjm_single_resume_start
Fires at the start of single resume display.
do_action( 'reign_wpjm_single_resume_start' );
Since: 2.9.0
reign_wpjm_single_resume_end
Fires at the end of single resume display.
do_action( 'reign_wpjm_single_resume_end' );
Since: 2.9.0
reign_wpjm_resume_submitted
Fires after a resume is submitted.
do_action( 'reign_wpjm_resume_submitted', $resume_id );
Parameters:
$resume_id(int) – The resume post ID
Since: 2.9.0
Application Hooks
reign_wpjm_new_application
Fires when a new application is submitted.
do_action( 'reign_wpjm_new_application', $application_id, $job_id );
Parameters:
$application_id(int) – Application ID$job_id(int) – Job ID
Since: 2.9.0
reign_wpjm_application_status_changed
Fires when application status changes.
do_action( 'reign_wpjm_application_status_changed', $application_id, $old_status, $new_status );
Parameters:
$application_id(int) – Application ID$old_status(string) – Previous status$new_status(string) – New status
Since: 2.9.0
Filter Hooks
Job Query Filters
reign_wpjm_job_query_args
Filter job listing query arguments.
$query_args = apply_filters( 'reign_wpjm_job_query_args', $query_args, $args );
Parameters:
$query_args(array) – WP_Query arguments$args(array) – Original arguments
Return: (array) Modified query arguments
Example:
add_filter( 'reign_wpjm_job_query_args', function( $query_args, $args ) {
// Only show featured jobs
$query_args['meta_key'] = '_featured';
$query_args['meta_value'] = '1';
return $query_args;
}, 10, 2 );
Dashboard Filters
reign_wpjm_job_dashboard_columns
Filter job dashboard columns.
$columns = apply_filters( 'reign_wpjm_job_dashboard_columns', $columns );
Parameters:
$columns(array) – Dashboard columns
Return: (array) Modified columns
Example:
add_filter( 'reign_wpjm_job_dashboard_columns', function( $columns ) {
$columns['custom_field'] = __( 'Custom Field', 'text-domain' );
return $columns;
} );
reign_wpjm_job_stats
Filter job statistics.
$stats = apply_filters( 'reign_wpjm_job_stats', $stats, $job_id );
Parameters:
$stats(array) – Job statistics$job_id(int) – Job ID
Return: (array) Modified statistics
Resume Filters
reign_wpjm_resume_searchable_meta
Filter searchable resume meta keys.
$meta_keys = apply_filters( 'reign_wpjm_resume_searchable_meta', $meta_keys );
Parameters:
$meta_keys(array) – Meta keys to search
Return: (array) Modified meta keys
reign_wpjm_candidate_photo
Filter candidate photo URL.
$photo_url = apply_filters( 'reign_wpjm_candidate_photo', $photo_url, $post );
Parameters:
$photo_url(string) – Photo URL$post(WP_Post) – Resume post object
Return: (string) Modified photo URL
Application Filters
reign_wpjm_application_fields
Filter application form fields.
$fields = apply_filters( 'reign_wpjm_application_fields', $fields, $form_id );
Parameters:
$fields(array) – Form fields$form_id(string) – Form identifier
Return: (array) Modified fields
Example:
add_filter( 'reign_wpjm_application_fields', function( $fields, $form_id ) {
$fields['linkedin'] = array(
'label' => 'LinkedIn Profile',
'type' => 'url',
'required' => false,
'priority' => 10
);
return $fields;
}, 10, 2 );
reign_wpjm_validate_application
Validate application submission.
$is_valid = apply_filters( 'reign_wpjm_validate_application', $is_valid, $fields, $values );
Parameters:
$is_valid(bool|WP_Error) – Validation result$fields(array) – Form fields$values(array) – Submitted values
Return: (bool|WP_Error) Validation result
Email Filters
reign_wpjm_application_email_message
Filter application email message.
$message = apply_filters( 'reign_wpjm_application_email_message', $message );
Parameters:
$message(string) – Email message
Return: (string) Modified message
reign_wpjm_email_headers
Filter email headers.
$headers = apply_filters( 'reign_wpjm_email_headers', $headers, $email_type );
Parameters:
$headers(array) – Email headers$email_type(string) – Type of email
Return: (array) Modified headers
SEO Filters
reign_wpjm_structured_data
Filter structured data for SEO.
$data = apply_filters( 'reign_wpjm_structured_data', $data, $post );
Parameters:
$data(array) – Structured data$post(WP_Post) – Post object
Return: (array) Modified structured data
Example:
add_filter( 'reign_wpjm_structured_data', function( $data, $post ) {
$data['customProperty'] = get_post_meta( $post->ID, '_custom_field', true );
return $data;
}, 10, 2 );
Template Functions
Job Functions
reign_job_mate_get_template()
Load a template file.
reign_job_mate_get_template( $template_name, $args = array(), $template_path = 'job_manager', $default_path = '' );
Parameters:
$template_name(string) – Template file name$args(array) – Variables to pass to template$template_path(string) – Template path$default_path(string) – Default path
reign_job_manager_locate_template()
Locate a template file.
$template = reign_job_manager_locate_template( $template_name, $template_path, $default_path = '' );
Returns: (string) Template file path
reign_job_mate_single_job_layout()
Get single job layout setting.
$layout = reign_job_mate_single_job_layout();
Returns: (string) Layout identifier
jobmate_get_wpjm_taxomony_data()
Get taxonomy data for a post.
$data = jobmate_get_wpjm_taxomony_data( $post, $taxonomy, $linkable = true );
Parameters:
$post(WP_Post|null) – Post object$taxonomy(string) – Taxonomy name$linkable(bool) – Make links clickable
Returns: (string) Formatted taxonomy data
Resume Functions
jobmate_single_resume_layout()
Get single resume layout setting.
$layout = jobmate_single_resume_layout();
Returns: (string) Layout identifier
jobmate_wpjmr_get_page_id()
Get Resume Manager page ID.
$page_id = jobmate_wpjmr_get_page_id( $page );
Parameters:
$page(string) – Page identifier
Returns: (int) Page ID
Utility Functions
reign_job_mate_is_wp_job_manager_activated()
Check if WP Job Manager is active.
if ( reign_job_mate_is_wp_job_manager_activated() ) {
// WP Job Manager is active
}
Returns: (bool) True if active
reign_job_mate_is_resume_manager_activated()
Check if Resume Manager is active.
if ( reign_job_mate_is_resume_manager_activated() ) {
// Resume Manager is active
}
Returns: (bool) True if active
reign_job_mate_is_application_manager_activated()
Check if Application Manager is active.
if ( reign_job_mate_is_application_manager_activated() ) {
// Application Manager is active
}
Returns: (bool) True if active
Custom Post Types
Job Listing
- Name:
job_listing - Supports: title, editor, custom-fields, publicize
- Taxonomies: job_listing_category, job_listing_type, job_listing_salary, etc.
Resume
- Name:
resume - Supports: title, editor, custom-fields
- Taxonomies: resume_category, resume_skill, resume_experience, etc.
Custom Taxonomies
Job Taxonomies
job_listing_category– Job categoriesjob_listing_type– Job types (full-time, part-time, etc.)job_listing_salary– Salary rangesjob_listing_career_level– Career levelsjob_listing_experience– Experience requirementsjob_listing_gender– Gender preferencesjob_listing_industry– Industriesjob_listing_qualification– Required qualifications
Resume Taxonomies
resume_category– Resume categoriesresume_skill– Skillsresume_experience– Experience levelsresume_current_salary– Current salaryresume_expected_salary– Expected salaryresume_education_level– Education levelsresume_language– Languagesresume_gender– Genderresume_age– Age groups
AJAX Endpoints
Job Search
// AJAX search endpoint
wp.ajax.post( 'reign_job_search', {
keywords: 'developer',
location: 'New York',
category: 'technology'
} ).done( function( response ) {
// Handle results
} );
Load More Jobs
// Load more jobs
wp.ajax.post( 'reign_load_more_jobs', {
page: 2,
per_page: 10
} ).done( function( response ) {
// Append jobs
} );
Class Reference
Main Classes
Reign_WP_Job_Manager_Addon
Main plugin class.
$instance = Reign_WP_Job_Manager_Addon::instance();
Reign_WPJM_Compatibility_Hooks
Compatibility layer for WP Job Manager.
$compatibility = Reign_WPJM_Compatibility_Hooks::get_instance();
Reign_WPJM_Resumes_Compatibility_Hooks
Compatibility layer for Resume Manager.
$resumes = Reign_WPJM_Resumes_Compatibility_Hooks::get_instance();
Reign_WPJM_Applications_Compatibility_Hooks
Compatibility layer for Applications.
$applications = Reign_WPJM_Applications_Compatibility_Hooks::get_instance();
Database Schema
Custom Meta Keys
Job Meta
_featured– Featured job flag_filled– Job filled status_job_location– Job location_application– Application method_company_name– Company name_company_website– Company website_company_tagline– Company tagline_company_logo– Company logo ID_company_video– Company video URL_job_expires– Expiry date_job_views– View count_application_count– Application count
Resume Meta
_candidate_title– Professional title_candidate_location– Location_candidate_photo– Photo ID_candidate_email– Email address_candidate_website– Website URL_candidate_education– Education details_candidate_experience– Experience details_resume_file– Resume file ID_resume_views– View count
Security Functions
Capability Checks
// Check if user can edit jobs
if ( ! current_user_can( 'edit_job_listings' ) ) {
wp_die( 'Insufficient permissions' );
}
Data Sanitization
// Sanitize job title
$job_title = sanitize_text_field( $_POST['job_title'] );
// Sanitize job description
$job_description = wp_kses_post( $_POST['job_description'] );
// Sanitize URL
$company_website = esc_url_raw( $_POST['company_website'] );
Code Examples
Adding Custom Job Field
// Add field to submission form
add_filter( 'submit_job_form_fields', function( $fields ) {
$fields['job']['remote_position'] = array(
'label' => __( 'Remote Position', 'text-domain' ),
'type' => 'checkbox',
'required' => false,
'priority' => 50
);
return $fields;
} );
// Save field value
add_action( 'job_manager_update_job_data', function( $job_id, $values ) {
if ( isset( $values['job']['remote_position'] ) ) {
update_post_meta( $job_id, '_remote_position', $values['job']['remote_position'] );
}
}, 10, 2 );
Custom Job Query
// Get featured remote jobs
$args = array(
'post_type' => 'job_listing',
'meta_query' => array(
array(
'key' => '_featured',
'value' => '1'
),
array(
'key' => '_remote_position',
'value' => '1'
)
)
);
$jobs = new WP_Query( $args );
Extending Application Form
// Add portfolio field to application
add_filter( 'reign_wpjm_application_fields', function( $fields ) {
$fields['portfolio'] = array(
'label' => __( 'Portfolio URL', 'text-domain' ),
'type' => 'url',
'required' => false,
'placeholder' => 'https://your-portfolio.com',
'priority' => 25
);
return $fields;
} );
Performance Tips
- Use transients for expensive queries
$jobs = get_transient( 'featured_jobs' );
if ( false === $jobs ) {
$jobs = get_posts( $args );
set_transient( 'featured_jobs', $jobs, HOUR_IN_SECONDS );
}
- Lazy load images
add_filter( 'wp_get_attachment_image_attributes', function( $attr ) {
$attr['loading'] = 'lazy';
return $attr;
} );
- Optimize database queries
// Use specific fields
$job_ids = get_posts( array(
'post_type' => 'job_listing',
'fields' => 'ids',
'posts_per_page' => -1
) );
