Editing Job Submission Fields

Note: All code examples on this site are provided for developer reference/guidance only and we cannot guarantee that they will always work as expected. Our support policy does not include assistance with modifying or debugging code from any code examples, and they may be changed or removed if we find they no longer work due to changes in our plugins.

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:

<?php

// 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/Automattic/WP-Job-Manager/blob/trunk/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:

<?php

// 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/Automattic/WP-Job-Manager/blob/trunk/includes/admin/class-wp-job-manager-writepanels.php

Seeing the code in action

See the following tutorial to see this code used: Tutorial: Adding a salary field for jobs.

Removing fields

To remove a field, see this code snippet.