Using the Simple Paid Listings plugin you can charge a single fee in order to list a job on your site using either Stripe or PayPal to collect the funds.
Please note that this plugin does not provide the ability to use coupons, discounts, or anything other than a simple “pay $X for job listing”. If you need additional capabilities, please consider using WooCommerce Paid Listings, instead.
To install this plugin, please refer to the guide here: https://wordpress.org/support/article/managing-plugins/#installing-plugins
After installation head over to Job Listings > Settings > Paid Listings to configure your paid listings + gateways.
- Listing Cost – Enter the cost of new listings, excluding any currency symbols. E.g. 9.99
- Currency Code – Enter your desired currency. For US Dollars you’d enter ‘USD’. For British Pounds Sterling you’d enter ‘GBP’. Your chosen gateway (below) must support your chosen currency for it to work!
- Payment Gateway – Choose either ‘Stripe Checkout’ or ‘PayPal Standard’ as your chosen gateway. You’ll need a merchant account with your chosen gateway.
- Secret Key – Integration API Keys are obtained from Stripe. Test mode requires test keys (prepended with sk_test_).
- Publishable Key – Integration API Keys are obtained from Stripe. Test mode requires test keys (prepended with pk_test_).
- Stripe has more information about using their testing mode here: https://stripe.com/docs/testing
- PayPal Email – Your sellers PayPal email address.
- PayPal Identity Token – Optional but recommended. To get this token, you’ll need to access your website seller’s tools. (Currently, this link is located here in your Paypal account.).
First, you will need to create a new page in WordPress for the return page with the following components to comply with Paypal’s terms of service:
- According to our User Agreement, you must explain to the buyer on the page displayed by the return URL that their payment has been received and that payment transaction details will be emailed to the buyer (by Paypal).
- Example: Thank you for your payment. Your transaction has been completed, and a receipt for your purchase has been emailed to you. Log into your PayPal account to view transaction details.
Next, turn Auto Return on and enter the URL of the page you just created. Note the ‘save’ button:
The other settings have been left in their default state.
At this point, a user can purchase a job listing via Paypal:
And the job listing will appear on both your Jobs page and in the user’s job dashboard:
However, in your Paypal account, it will show the transaction/payment as On Hold (or Pending):
This is because we don’t have a way to verify payments set up. Paypal IPN (Instant Payment Notification) is one such method, but we will use PDT instead.
Payment Data Transfer is an alternative to IPN which can be enabled after Auto Return is successfully configured. This will allow payments to be verified without the need for PayPal IPN. For more information on PDT, please refer to PayPal’s Payment Data Transfer guide.
- Note: If you do not set up PDT, all payments will be marked as ‘on hold’ until they are manually approved.
- PayPal Sandbox – Enable PayPal Sandbox (used for testing). No live payments are taken when sandbox is enabled. You can read more about Sandbox mode here: https://developer.paypal.com/docs/api-basics/sandbox/
Job Submission Flow
Up to the point of previewing your job, the flow is the same. However, on the preview page you will notice that the ‘confirm’ button is renamed to ‘pay for listing’. This is where the magic happens.
With Stripe Checkout
Clicking “pay for listing” will open the payment page and prompt the user for payment.
Once submitted, the page will automatically proceed. On successful payment the job will be marked paid and live/awaiting admin approval (depending on your settings). On failure, the preview page will be shown again with an error message letting the user retry if they wish.
With PayPal Standard
Clicking “pay for listing” will redirect the user straight to the PayPal payment page off-site. After payment the user will be redirected back through PayPal’s Auto Return.
Upon return, the confirmation page will be displayed. If you configured “Payment Data Transfer (PDT)” in the settings, the job should be marked paid immediately. Otherwise, the PayPal IPN should be used and PayPal will notify your site of payment.
PayPal IPN can fail in some hosting environments due to plugins, blocked ports and firewalls – “Payment Data Transfer” is recommended as it can be more reliable.
Note that when setting up PayPal, you will need a valid URL in the Return URL to enable Auto Return (which needs to be enabled), but since Simple Paid Listings provides both a return URL and notify URL (IPN) to PayPal, whatever you enter in your PayPal setting is ignored. Therefore, we recommend that you use your homepage URL for the return URL.
If using Stripe Checkout, even though credit card details are never stored or transmitted directly from your server (stripe.js hashes them) it is still recommending that you setup your Job Submission page to be served over HTTPS.
WordPress HTTPS plugin will help you do this – its an excellent plugin which can make any WordPress page secure (you’ll of course still need to buy and setup an SSL certificate from your hosting provider).
Note that Simple Paid Listings is not designed to be used at the same time as WooCommerce Paid Listings. If you try to use both, you will encounter unexpected behaviour.