Author Archive

Customer Experience

Here is exactly what your customers see when they buy a recurring package, how they manage or cancel it later, and the few settings you control behind the scenes.

Getting Started

Install WorkScout Monetization Plus and configure recurring or one-time packages and paid memberships with Stripe, Paddle, Polar, or Dodo Payments.

GDPR Compliance

GDPR Compliance

WP Job Manager’s parent company, Automattic, is committed to GDPR compliance. For the most current information about Automattic and GDPR, visit their official support page.

WP Job Manager includes a “Delete Data on Uninstall” setting located under Job Listings > Settings > General that allows for data removal when the plugin is uninstalled.

About Individual Deletion or Extraction

It is important to note that WP Job Manager and its add-ons do not offer individual user data deletion or extraction features directly.

WordPress core manages user records. For information about WordPress and GDPR compliance tools, refer to:

  • GDPR Compliance Tools in WordPress
  • Roadmap: Tools for GDPR Compliance

Third-party plugins may be available to accomplish user deletion and data deletion if needed.

The “Delete Data on Uninstall” option removes employer and candidate roles but does not delete user accounts. User data for Resume Manager and Applications is stored in wp_posts and wp_postmeta tables. Removing file uploads first is recommended before deleting resume and application data to avoid complications.

Tutorial: Remove the Resume Preview Step

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.

To remove the Preview step during the resume submission process, add the following code to a plugin like Code Snippets:

/**
 * Remove the preview step when submitting resumes.
 * @param  array $steps
 * @return array
 */
add_filter( 'submit_resume_steps', function( $steps ) {
	unset( $steps['preview'] );
	return $steps;
} );

/**
 * Change button text.
 */
add_filter( 'submit_resume_form_submit_button_text', function() {
	return __( 'Submit Resume', 'wp-job-manager-resumes' );
} );

/**
 * Since we removed the preview step and it's handler, we need to manually publish resumes.
 * @param  int $resume_id
 */
add_action( 'resume_manager_update_resume_data', function( $resume_id ) {
	$resume = get_post( $resume_id );
	if ( in_array( $resume->post_status, array( 'preview', 'expired' ), true ) ) {
		delete_post_meta( $resume->ID, '_resume_expires' );
		$update_resume                  = array();
		$update_resume['ID']            = $resume->ID;
		$update_resume['post_status']   = get_option( 'resume_manager_submission_requires_approval' ) ? 'pending' : 'publish';
		$update_resume['post_date']     = current_time( 'mysql' );
		$update_resume['post_date_gmt'] = current_time( 'mysql', 1 );
		wp_update_post( $update_resume );
	}
} );

Basically this does a few things:

  1. Remove the preview step
  2. Change preview text to Submit Resume
  3. Manually publish resume (as the preview handler normally does this)

Email Notifications

Email Notifications

WP Job Manager Email Notifications are managed via Job Listings > Settings > Email Notifications

By default, an email will be sent to the site administrator when a job listing is submitted or updated via the front end (adding/updating jobs via the back end is not recommended).

From the Email Notification settings you are able to change the recipient for the emails and set the email format to either plain text or rich text. You can also disable them by unchecking the box next to each email notification.

The email notification settings for Expiring Job Notices also have the option to specify the number of days before expiry that the emails should be sent.

Third-Party Plugins and Advanced Customization

For more complex email solutions, you will need to use a third-party plugin. Here are a few recommendations:

  • The WP Job Manager Emails plugin provides native support and includes email templates
  • The Post Status Notifier sets up notifications when the status of a job listing changes
  • Or, if you feel comfortable with editing code, you can add custom code to send notification emails

Our add-ons may also send notifications:

  • Applications send a confirmation email to both employers and candidates
  • Job Alerts sends emails to candidates
  • Resume Manager will email new resume submissions to the administrator if enabled
  • WC Paid Listings does not send emails; WooCommerce does depending on your settings

Email Templates

Template files handle WP Job Manager email notifications. You can override the email templates by copying them to your theme and making edits there, for example: Copy from wp-job-manager/templates/emails/employer-expiring-job.php to yourtheme/job_manager/emails/employer-expiring-job.php

Troubleshooting

Emails are not sent

WP Job Manager uses the wp_mail() function – a core WordPress function – to send emails. If emails aren’t being sent/received, the issue relates to your web host’s core email function, not WP Job Manager.

With Resume add-on, Application Email notifications are not sent

If you have both Applications and Resume add-ons and force applicants to apply with a resume, applications process through Resume Manager, not Applications. Configure candidates to apply with the Applications form by disabling the Force Apply with Resume option under Resumes > Settings > Apply With Resume.

Simple Paid Listings

Overview

Using the Simple Paid Listings plugin you can charge a single fee to list a job on your site using either Stripe or PayPal to collect the funds.

Note that this plugin does not allow coupons, discounts, or anything other than a simple “pay $X for job listing”. For additional capabilities, consider using WooCommerce Paid Listings instead.

Installation

To install this plugin, please refer to the guide at: https://wordpress.org/support/article/managing-plugins/#installing-plugins

Setup

After installation, head over to Job Listings > Settings > Paid Listings to configure your paid listings and gateways:

  • Listing Cost – Enter the cost of new listings, excluding currency symbols (e.g., 9.99)
  • Currency Code – Enter your desired currency code (USD for US Dollars, GBP for British Pounds Sterling)
  • Payment Gateway – Choose either Stripe Checkout or PayPal Standard

Stripe Checkout Settings

  • Secret Key – Obtain from Stripe; test mode requires keys prepended with sk_test_
  • Publishable Key – Obtain from Stripe; test mode requires keys prepended with pk_test_

PayPal Standard Configuration

  • PayPal Email – Your seller’s PayPal email address
  • PayPal Identity Token – Optional but recommended for Payment Data Transfer verification
  • PayPal Sandbox – Enable for testing without live payments

Job Submission Flow

The submission process is identical up to the preview page. On preview, the confirm button changes to “Pay for Listing”.

With Stripe Checkout

Clicking “Pay for Listing” opens the payment page. Upon successful payment, the job is marked paid and goes live or awaits approval based on your settings.

With PayPal Standard

Users are redirected to PayPal’s site for payment. After completion, they return to the job submission page.

Security/HTTPS

When using Stripe Checkout, set your Job Submission page to HTTPS.

Troubleshooting

Do not use Simple Paid Listings simultaneously with WooCommerce Paid Listings, as this causes unexpected behavior.

Applications: Limiting applications to a certain role

Please note: All code examples and plugin suggestions are provided for reference or 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, or providing support for any suggested 3rd-party plugins.

A common request is to limit the actual application form to a certain user role. This is possible with a small amount of customisation, as follows:

1. Override the Template File

Copy the plugin file wp-job-manager-applications/templates/application-form.php to YOURTHEME/wp-job-manager-applications/application-form.php. The version you copy to your theme will take priority.

2. Edit the Template File

Inside your newly copied file, you can use the current_user_can function to check if a user can apply.

At the top of the file add:

<?php if ( current_user_can( 'ROLE' ) ) : ?>

Replace ROLE with your desired role or capability, for example, ‘subscriber’.

At the end of the file add:

<?php else : ?>
Custom content here shown to users without access.
<?php endif; ?>

The application form will now only be visible to the users with permission.

Note: According to the WordPress codex on the current_user_can function, checking against roles rather than capabilities may produce unreliable results, so custom implementations cannot be guaranteed to work consistently.

Applications: Customising Application Statuses

Applications by default has the following statuses (these are custom post type statuses):

  1. New
  2. Interviewed
  3. Offer Extended
  4. Hired
  5. Archived
  6. Rejected

From version 1.7.0+ these statuses can be customised by using the filter job_application_statuses.

Adding a Status Example

This example adds a new status called ‘Example’. The code would be placed in your theme functions.php file or a custom plugin.

add_filter( 'job_application_statuses', 'add_new_job_application_status' );

function add_new_job_application_status( $statuses ) {
	$statuses['example'] = _x( 'Example', 'job_application', 'wp-job-manager-applications' );
	$statuses['another_example'] = _x( 'Another Example', 'job_application', 'wp-job-manager-applications' );
	$statuses['a_third_example'] = _x( 'A Third Example', 'job_application', 'wp-job-manager-applications' );
	return $statuses;
}

Removing a Status Example

This example removes the ‘offer extended’ status.

add_filter( 'job_application_statuses', 'add_new_job_application_status' );

function add_new_job_application_status( $statuses ) {
	unset( $statuses['offer'] );
	return $statuses;
}

Applications: Limit past applications per page

By default, the [past_applications] shortcode displays 25 past applications per page. To change that, add the following code using the Code Snippets plugin and adjust the value as desired:

add_filter( 'job_manager_job_applications_past_args', 'change_past_application_args');

function change_past_application_args( $args ) {
  $args['posts_per_page'] = 5;
  $args['offset'] = ( max( 1, get_query_var( 'paged' ) ) - 1 ) * $args['posts_per_page'];
  return $args;
}

Adding Jobs via Admin

Adding Jobs via Admin

Warning! Adding/editing jobs via the backend, wp-admin dashboard is not recommended. This is because several verification steps are not taken when adding a job this way. WP Job Manager is designed in such a way that all jobs should be submitted via the frontend job submission form.

The Add New link, under the Job Listings menu item in admin, will show the Add Job Listing page.

Enter the job title and description

First fill out the “job position title” field at the top with the name of the job you are listing. This is the post title.

Next, beneath that you’ll see a visual editor which you can add the job description in. This is the post content.

Set job meta data

Next, look at the job listing data panel below. This is where you enter job and company details for the listing.

The fields include:

  • Job Location – Enter the location of the Job being as detailed as you wish. Leave blank if the job is a telecommuting position.
  • Application email/URL – You may enter a URL if the job can be applied for via a website, or enter an email address for applicants to send their application to.
  • Company name
  • Company website
  • Company tagline – Tagline should be a short description of the company.
  • Company Twitter – Twitter name, e.g. @company
  • Company Logo – Upload a logo, or enter the logo’s URL here.
  • Position Filled – check the checkbox if the job is filled/not accepting any more applicants
  • Feature this job listing – check this checkbox to feature the job.
  • Job expires – The expiry date for this job in yyyy-mm-dd format.

Set category and job type

In the sidebar you will see two taxonomies; job categories and job types. Select one job type, and as many categories as you wish.

Publish your listing

When you are done, hit publish to make the Job Listing live.

Approve listings under moderation

When the option “Moderate New Listings” is enabled, you should use the button “Approve” instead of using the button Publish.