API Reference – Reign WP Job Manager Addon

Get Started

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 categories
  • job_listing_type – Job types (full-time, part-time, etc.)
  • job_listing_salary – Salary ranges
  • job_listing_career_level – Career levels
  • job_listing_experience – Experience requirements
  • job_listing_gender – Gender preferences
  • job_listing_industry – Industries
  • job_listing_qualification – Required qualifications

Resume Taxonomies

 

  • resume_category – Resume categories
  • resume_skill – Skills
  • resume_experience – Experience levels
  • resume_current_salary – Current salary
  • resume_expected_salary – Expected salary
  • resume_education_level – Education levels
  • resume_language – Languages
  • resume_gender – Gender
  • resume_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

 

  1. 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 );
}
  1. Lazy load images
add_filter( 'wp_get_attachment_image_attributes', function( $attr ) {
    $attr['loading'] = 'lazy';
    return $attr;
} );
  1. Optimize database queries
// Use specific fields
$job_ids = get_posts( array(
    'post_type' => 'job_listing',
    'fields' => 'ids',
    'posts_per_page' => -1
) );
Last updated: September 4, 2025