There are three main ways to customiseĀ resume fields:
- 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.
- Use a 3rd party plugin such asĀ https://plugins.smyl.es/wp-job-manager-field-editor/ which has a UI for field editing.
- 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 resume fields works in a similar manner toĀ editing job submission fieldsĀ ā you can use filters and custom functions. Any custom code should be added as a snippet to a plugin likeĀ Code Snippets,Ā which will help ensure your site doesnāt crash due to buggy code, or be overwritten during updates.
Editing fields on the frontend
Editing resumeĀ submission fields is possible via theĀ submit_resume_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_resume_form_fields', 'custom_submit_resume_form_fields' ); // This is your function which takes the fields, modifies them, and returns them function custom_submit_resume_form_fields( $fields ) { // Here we target one of the job fields (candidate name) and change it's label $fields['resume_fields']['candidate_name']['label'] = "The Candidate Name"; // And return the modified fields return $fields; }
Removing a field
If youād like to remove a field from the form, youād simply unset it using the same filter.
See the below example where the Candidate Title is being removed:
add_filter( 'submit_resume_form_fields', 'remove_submit_resume_form_fields' ); function remove_submit_resume_form_fields( $fields ) { // Unset any of the fields you'd like to remove - copy and repeat as needed unset( $fields['resume_fields']['candidate_title'] ); // And return the modified fields return $fields; }
Adding a field
Similarly, you can add a field just as easily. Hereās an example showing how to add a new text input to the form:
// Add field to admin add_filter( 'resume_manager_resume_fields', 'wpjms_admin_resume_form_fields' ); function wpjms_admin_resume_form_fields( $fields ) { $fields['_candidate_color'] = array( 'label' => __( 'Favourite Color', 'job_manager' ), 'type' => 'text', 'placeholder' => __( 'Blue', 'job_manager' ), 'description' => '', 'priority' => 1 ); return $fields; } // Add field to frontend add_filter( 'submit_resume_form_fields', 'wpjms_frontend_resume_form_fields' ); function wpjms_frontend_resume_form_fields( $fields ) { $fields['resume_fields']['candidate_color'] = array( 'label' => __( 'Favourite Color', 'job_manager' ), 'type' => 'text', 'required' => true, 'placeholder' => '', 'priority' => 1 ); return $fields; } // Add a line to the notifcation email with custom field add_filter( 'apply_with_resume_email_message', 'wpjms_color_field_email_message', 10, 2 ); function wpjms_color_field_email_message( $message, $resume_id ) { $message[] = "\n" . "Favourite Color: " . get_post_meta( $resume_id, '_candidate_color', true ); return $message; }
Note:Ā You can change the āpriorityā of the field to position it where you want it. The higher the number, the lower down the form it will appear.
You could use a different field type likeĀ selectĀ orĀ checkbox, just make sure to follow the same method to add those field types that WP Job Manager uses.
Note:Ā To add it to the preview field youād want to look at adding it to the template files, likeĀ content-single-resume.php, with some code like:
<? php echo get_post_meta( $post->ID, '_candidate_color', true ); ?>
Making the āResume Fileā field required
A common request is to require a resume file to be added. Simply use the following code to make it so:
// Add your own function to filter the fields add_filter( 'submit_resume_form_fields', 'resume_file_required' ); // This is your function which takes the fields, modifies them, and returns them function resume_file_required( $fields ) { // Here we target one of the job fields (candidate name) and change it's label $fields['resume_fields']['resume_file']['required'] = true; // And return the modified fields return $fields; }
Adding a field to a repeated section
To add a field to one of the resumeās repeated sections (Education, Experience), the process is almost the same as adding a single field. Hereās an example of adding a āFavorite Teacherā field to each Education section.
Adding the field to admin
Note that we use theĀ 'resume_manager_resume_education_fields'
Ā filter instead ofĀ 'resume_manager_resume_fields'
.
Itās also important to include aĀ 'name'
entry as shown:
// Add field to admin add_filter( 'resume_manager_resume_education_fields', 'wpjms_admin_resume_form_fields' ); function wpjms_admin_resume_form_fields( $fields ) { $fields['favorite_teacher'] = array( 'label' => __( 'Favourite Teacher', 'job_manager' ), 'name' => 'resume_education_teacher[]', 'type' => 'text', 'placeholder' => '', 'description' => '', 'priority' => 1 ); return $fields; }
Adding the field to the frontend form
This code is almost the same as adding a single field to the form, you just need to includeĀ ['candidate_education']['fields']
Ā to specify where this field should go.
// Add field to frontend add_filter( 'submit_resume_form_fields', 'wpjms_frontend_resume_form_fields' ); function wpjms_frontend_resume_form_fields( $fields ) { $fields['resume_fields']['candidate_education']['fields']['favorite_teacher'] = array( 'label' => __( 'Favourite Teacher', 'job_manager' ), 'type' => 'text', 'required' => true, 'placeholder' => '', 'priority' => 1 ); return $fields; }