WooCommerce Paid Listings

WooCommerce Paid Listings is a plugin for WP Job Manager which lets you purchase Job Listing Packages and (as of v2) Resume Packages (as products) which are then used to post listings.

Installation

To install this plugin, please refer to the guide here: 

https://wordpress.org/documentation/article/manage-plugins/#installing-plugins

Setting up WooCommerce products as job/resume packages

After installation the first thing you’ll need to do is setup some products in WooCommerce which job submitters can purchase.

  1. Create a new product
  2. Select a package product type: 
    1. Job Package – A package which lets a user post X jobs before expiring.
    2. Resume Package – A package which lets a user post X resumes before expiring. Requires Resume Manager add-on.
    3. Job Package Subscription – Requires WooCommerce Subscriptions. See below for more information.
    4. Resume Package Subscription – Requires WooCommerce Subscriptions and Resume Manager add-on. See below for more information.
    5. NOTE: If using a theme such as ‘Listify’ these packages may be named slightly differently (e.g. Listing Package)
  3. Enter price and other product details like any other product. Job/Resume Package products can be free or paid – your choice!
  4. Package specific options are as follows: Job Package product type for WooCommerce Paid Listings
    • Listing limit – How many job or resume listings this package lets you create once purchased. Leave as is for unlimited posting or enter a number. 
      • Note: Expired jobs count toward the listing limit.
    • Listing duration – How long job/resume listings last (in days) before expiring when using this package.
    • Feature listings? – Whether or not job listings should be featured when using this package.
  5. Publish the product

The published package will then be available during job submission.

Note: No Guest Checkouts

Since Job Listing (and Resume) Packages have to be assigned to a user on your site, WooCommerce checkout will force registration. Guest purchases are not allowed.

Even with Guest Checkout enabled in WooCommerce settings, and Require an account to submit listings disabled in WP Job Manager’s settings, the user will still be forced to create a username and password on the checkout page:

Subscriptions Support

Job Packages can also be subscriptions, but this requires the WooCommerce Subscriptions extension from WooCommerce. You can have both Job and Resume Subscription packages.

Subscriptions can work in two ways.

  1. The Package is Linked to the Subscription
  2. From version 2.3.0, there is an option to link to Subscription to the Listing

If the subscription is linked to the package, the user will be able to post X amount of listings per subscription term. Renewals reset the package and allow the user to make more postings.

If the subscription is linked to the listing, the user will be able to post a limit of X active listings which will expire when the subscription expires. Failure to renew will expire the listings.

Job Submission Flow

WC Paid Listings will change the job submission process slightly to add the required purchase/job pack steps. This is how it should happen:

  1. User fills in the job submission form as normal
  2. User previews the job as normal
  3. In the preview header, rather than a ‘submit’ button, a ‘choose package’ button will be shown: Preview header of job submission in WooCommerce Paid Listings
  4. When clicked, the choose a package screen will be displayed. This page lists all Job Package products and previously purchased active job packages (highlighted in yellow, listed on top):
    Job package selection in WooCommerce Paid Listings
  5. User chooses a package and clicks submit. 
    • If this is a new package: 
      • it will be added to the WooCommerce cart, referencing the Job ID.
      • At this stage, the job listing is created, but its status is ‘pending payment’ and it won’t yet be listed on the site.
      • Once paid for, the job will be approved (status changes to ‘Active’) and the package assigned to the user.
    • If this is a package that has already been purchased, the job will be submitted right away.

The same flow is used for resumes: Enter resume details > Preview > Choose Package > Checkout.

You can also choose whether to show packages before or after a listing is created by selecting this option under Job Listings > Settings > Job Submission > Paid Listings Flow:

Post-checkout Actions

After checkout, the job or resume will only be approved/pending approval after payment. This includes orders with status:

  1. Processing
  2. Completed
  3. On-hold

If the order is unpaid, or isn’t one of these statuses, the job will not be approved without admin intervention.

Viewing Purchased Packages

Users can view their purchased/active job packs on their ‘My Account’ page. It will show the main highlights of each pack as well as jobs/resumes remaining.

Screen-Shot-2013-09-22-at-12.21.59

Note that this section only displays if the user has at least one job remaining from any package.

Deleting Jobs

When a user posts a job using a job package with a listing limit, their “Jobs Remaining” count will be decreased by 1. If they later delete that job, the “Jobs Remaining” count does not change. 

Grace Periods

For deleting a Job Package or Resume Package, there is a grace period of 2 days. So, if a job is deleted within 2 days of posting, the “Jobs Remaining” count will be incremented by 1.

Note: Job Package Subscription or Resume Package Subscription do not have grace periods.

If you want to change the grace period, you can add the following code, using a functionality plugin such as Code Snippets, and edit the number of days.

<?php

function job_manager_set_allowed_deletion_period() {
	return 3;
}
add_filter( 'job_manager_job_listing_allowed_deletion_period', 'job_manager_set_allowed_deletion_period' );

Managing Listing Packages in wp-admin

You can view and edit all Listing Packages from Users > Listing Packages. You can use this if you want to manually change the remaining listing count for any user, or give a free listing package to a user. You can also delete any user’s listing package.

How to move from Pending payment status to Complete

In case you have a customer who is under Pending payment status and isn’t able to complete the order, follow the instructions below:

  1. Go to My Account > Orders page.
  2. Under WooCommerce > Orders you’ll find a direct link to the customer payment on the “Order details” page.
  3. This link can be sent to the customer to make the payment.

Once an order is marked as Completed in WooCommerce, the linked job listing will get updated and published automatically.

Troubleshooting

General checkout/payment issues

Are you already using Simple Paid Listings? WC Paid Listings and Simple Paid Listings are not meant to be used together. You should use one or the other.

Issue with jobs not expiring correctly

If you correctly set the “Job listing duration” for a job package in WP Paid Listings, but jobs aren’t expiring after that duration passed, you may want to take the following steps to understand what’s happening:

  1. Use a plugin like WP Crontrol to check if the cron “job_manager_check_for_expired_jobs” is defined. That’s the cron responsible for expiring jobs after its duration passes.
  2. Check for plugin or theme conflicts following these steps: https://wpjobmanager.com/document/troubleshooting/basic-troubleshooting/#troubleshooting-plugin-and-theme-issues
  3. If you enabled the option “Moderate New Listings, make sure you’re using the “Approve” button on the job packages sent for moderation instead of using the “Publish” button

FAQ

Can I create packages to view job listings/resumes

WC Paid Listings can only be used to create packages for posting job listing/resumes. We recommend using WP Job Manager Packages plugin developed by Myles for this purpose.

No, it’s not possible to limit the number of featured jobs allowed in a job package. Once a job package is marked as featured, all the jobs posted using that job package will be featured.

Advanced: Useful functions

The following PHP functions can be used to check which users have access to and more:

  • wc_paid_listings_get_user_packages( $user_id, $package_type ) – returns an array of packages the user has. Package type can be ‘job_listing’ or ‘resume’
  • wc_paid_listings_get_user_package( $package_id ) – gets a package by ID belonging to a user
  • wc_paid_listings_give_user_package( $user_id, $product_id ) – Gives a user access to a package (by product ID)
  • wc_paid_listings_package_is_valid( $user_id, $package_id) – returns true or false based on whether a package is valid (which belongs to a user)

Advanced: Overriding Templates

The following template files are included with this plugin:

Template File NamePurpose
my-packages.phpA tabular list of packages a user has bought – shown on the ‘my account’ page.
package-selection.phpA list of radio buttons to select a job package, or a previously purchased package.
resume-package-selection.phpA list of radio buttons to select a resume package, or a previously purchased package.

To override these templates, copy them to yourtheme/wc-paid-listings/

Extensions Documentation