There are three main ways to customise the fields in WP JobĀ Manager;

  1. For simple text changes, using a localisation file or a plugin such asĀ the Say What Plugin.Ā See Translating WP Job ManagerĀ for more information.
  2. Use a 3rd party plugin such asĀ https://plugins.smyl.es/wp-job-manager-field-editor/ which has a UI for field editing.
  3. Use the WordPress hooks (filters) which are explained below.

WP Job Managerā€™s approach to allowing customisation of itā€™s forms is to use filters. In WordPress, filters essentially allow you to ā€˜filterā€™ data through your own custom php functions which return a different ā€˜filteredā€™ result. Any custom code can go in yourĀ themeĀ functions.php file.


Editing fields on the frontend

Editing job submission fields is possible via the submit_job_form_fields filter. Adding some code will allow you to edit various fields, or add new ones.

See the below example which demonstrates how to change a fieldā€™s label:

// Add your own function to filter the fields
add_filter( 'submit_job_form_fields', 'custom_submit_job_form_fields' );

// This is your function which takes the fields, modifies them, and returns them
// You can see the fields which can be changed here: https://github.com/mikejolley/WP-Job-Manager/blob/master/includes/forms/class-wp-job-manager-form-submit-job.php
function custom_submit_job_form_fields( $fields ) {

// Here we target one of the job fields (job_title) and change it's label
 $fields['job']['job_title']['label'] = "Custom Label";

// And return the modified fields
 return $fields;
}

View the full list of core fields in this file:Ā https://github.com/mikejolley/WP-Job-Manager/blob/master/includes/forms/class-wp-job-manager-form-submit-job.php


Editing fields in admin

Fields in admin are of similar structure and can be edited using the ā€˜job_manager_job_listing_data_fieldsā€™ filter. Each field takes a label, placeholder, type and description arguments.

See the below example which demonstrates how to change a fieldā€™s placeholder:
 // Add your own function to filter the fields
 add_filter( 'job_manager_job_listing_data_fields', 'custom_job_manager_job_listing_data_fields' );

// This is your function which takes the fields, modifies them, and returns them
 // You can see the fields which can be changed here: https://github.com/mikejolley/WP-Job-Manager/blob/master/includes/admin/class-wp-job-manager-writepanels.php
 function custom_job_manager_job_listing_data_fields( $fields ) {

// Here we target one of the job fields (location) and change it's placeholder
 $fields['_job_location']['placeholder'] = "Custom placeholder";

// And return the modified fields
 return $fields;
 }

View the full list of core fields in this file:Ā https://github.com/mikejolley/WP-Job-Manager/blob/master/includes/admin/class-wp-job-manager-writepanels.php