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.
↑ Back to Top Installation
To install this plugin, please refer to the guide here: http://codex.wordpress.org/Managing_Plugins#Manual_Plugin_Installation
↑ Back to Top 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.
- Create a new product
- Select a package product type:
- Job Package – A package which lets a user post X jobs before expiring.
- Resume Package – A package which lets a user post X resumes before expiring. Requires Resume Manager add-on.
- Job Package Subscription – Requires WooCommerce Subscriptions. See below for more information.
- Resume Package Subscription – Requires WooCommerce Subscriptions and Resume Manager add-on. See below for more information.
- NOTE: If using a theme such as ‘Listify’ these packages may be named slightly differently (e.g. Listing Package)
- Enter price and other product details like any other product. Job/Resume Package products can be free or paid – your choice!
- Package specific options are as follows:
- Listing limit – How many job or resume listings this package lets you create once purchased. Can be left blank for unlimited posting.
- 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.
- Publish the product
The published package will then be available during job submission.
↑ Back to Top Subscriptions Support
Subscriptions can work in two ways.
- The Package is Linked to the Subscription
- 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.
↑ Back to Top 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:
- User fills in the job submission form as normal
- User previews the job as normal
- In the preview header, rather than a ‘submit’ button, a ‘choose package’ button will be shown:
- When clicked, the choose a package screen will be displayed. This page lists all Job Package products and previously purchased active job packs:
- 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.
- If this is a new package:
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:
↑ Back to Top Changes to WC checkout Flow
Since Job Packages need to be assigned to a user, WC checkout will force registration. Guest purchases are not allowed.
↑ Back to Top Post-checkout Actions
After checkout, the job or resume will only be approved/pending approval after payment. This includes orders with status:
If the order is unpaid, or isn’t one of these statuses, the job will not be approved without admin intervention.
↑ Back to Top 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.
Note that this section only displays if the user has at least one job remaining from any package.
↑ Back to Top 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. However, 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.
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.
↑ Back to Top 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.
↑ Back to Top Advanced: Useful functions
The following PHP functions can be used to check what user’s 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)
↑ Back to Top Advanced: Overriding Templates
The following template files are included with this plugin:
|Template File Name||Purpose|
|my-packages.php||A tabular list of packages a user has bought – shown on the ‘my account’ page.|
|package-selection.php||A list of radio buttons to select a job package, or a previously purchased package.|
|resume-package-selection.php||A list of radio buttons to select a resume package, or a previously purchased package.|
To override these templates, copy them to