WARNING: PayPal has deprecated Instant Payment Notification (IPN) and plans to fully sunset the service by the end of 2026. This guide is intended for users currently using PayPal Standard (IPN).
For new implementations or to future-proof your setup, switching to PayPal Checkout is recommended.
LearnDash comes with built-in support for accepting payments via PayPal. No additional plugins or add-ons are needed, although there are some required settings that you must fill out before you can sell your courses with PayPal. Once these settings are set-up, you can easily accept payments via PayPal.
Along with our Stripe integration, this is one of the simplest ways to start selling your LearnDash courses.
You will need to register for a free PayPal account before you can accept payments, and your account must be verified (read about verified accounts).
Should You Use PayPal? #
You should consider using PayPal to accept payments if:
- You’re looking for a quick and easy way to start selling courses
- You offer one course, or only a few courses, with a simple payment structure
You might not want to use PayPal if:
- You want to customize the user’s checkout experience
- You are creating a fully functional membership site
- You’re selling other products in addition to courses
- You want to closely manage the account creation and login process
If you’re looking for more robust member management, a customizable checkout experience or integrations with other WordPress plugins or services, check out our ecommerce and membership add-ons.
NOTE: An SSL Certificate is required to be installed in your site in order for PayPal and your LearnDash site to communicate properly. Please check with your host for information on how to install an SSL Certificate to your site.
Walkthrough Video #
Sign Up for a PayPal Account #
First step – Go to paypal.com and follow the instructions for registering a new account
BUSINESS OR PERSONAL?
We highly recommend setting up a business account. You can read about the difference in PayPal’s docs.
Once you’ve set up and verified your PayPal account, continue reading for instructions on configuring your PayPal settings.
PayPal Settings #

Your PayPal settings must be filled in before you can accept payments.
- In your WordPress admin area, navigate to LEARNDASH LMS > SETTINGS
- Click on thePayPal Settings tab
Now let’s go through each option:
PayPal Email #
This is the email address that you used to set up your PayPal account.
IMPORTANT
Seller Email (what is entered as PayPal Email in the PayPal settings on the website) and Receiver Email (the primary email of the PayPal account) have to be identical.
PayPal Country #
This is a two-letter code that corresponds to the country in which you reside.
Common country codes include:
USfor United StatesCAfor CanadaAUfor Australia
See a list of PayPal country codes here.
PayPal Cancel URL #
This is where a user will be redirected if they cancel their payment, or the payment fails.
You could create a custom page with your support or contact information, or simply send the user back to your homepage.
Enter the full URL, beginning with https://.
PayPal Return #
This is where a user will be redirected after a successful payment is made.
We recommend creating a custom “thank you” or “next steps” page, or sending them to a login or account page.
Enter the full URL, beginning with https://.
IMPORTANT
Please make sure your PayPal account has automatic redirects enabled. Otherwise you will be forced to click “Return to Merchant” each time and if you do not the enrollment will not be completed properly.
PayPal Notify URL #
This URL should be pre-populated for you, and should not be changed. It is required for LearnDash to communicate with PayPal.
If this option is blank, you should add the following URL, replacing “yoursite.com” with your real domain name.
https://yoursite.com/sfwd-lms/paypal
Use PayPal Sandbox #
If your site is still in development, and you want to test a PayPal payment, you can set up a Sandbox account with PayPal.
Check this box to enable Sandbox mode. Be sure to uncheck it, and save your settings, once you go live.
PayPal IPN #
One final setting that you have to configure is the PayPal IPN. This is essential to making sure that your purchases go through. PayPal Instant Payment Notifications (PayPal IPN) lets your store or LearnDash checkout know if the transaction has been successful or not. To learn more about how to set this up on PayPal, see:How to Activate IPN in your PayPal Account.
You can checkout PayPal’s guide to IPN configuration here.
Course Configuration #
After you’ve configured your PayPal settings, the final thing you need to do is set up a course to accept payments.
- In the WordPress admin area, navigate to LEARNDASH LMS > COURSES
- Click on the course you’d like to sell with PayPal
- Click on Settings at the top
- Scroll down toCourse Access Settings
- Set the “Access Mode” to one of two values:
- Buy Now: Use “Buy Now” for one-time payments
- Recurring: Use “Recurring” if you’d like to set up a recurring payment (aka: subscription)
And finally, enter your price in the Course Price field. Ex: 29.99
- The currency symbol will be added automatically for you
- If your price is an even dollar amount, you may omit the decimal point & cents (ex:
29)
For recurring payments, you need to include the “Billing Cycle” in days, weeks, months or years.

The User Experience #
When users visit your course page, they will see a “Take this Course” button (this language can be customized using custom labels). When a user clicks this button, they will be sent to PayPal.com where they can choose their payment method and complete their purchase. The transaction will take place on PayPal’s website.
Users may choose any of the following PayPal payment methods:
- Credit Card
- Debit Card
- Linked Bank Account
- PayPal Balance

After payment is complete, the user will be redirected to whatever URL you entered in your PayPal Return settings above. A new user account is automatically created, and that user is enrolled into the course they just purchased.
FAQ #
Troubleshooting #
Verify the Return URL is reachable.
Please copy the Return URL and paste it into a browser. The page should load but produce blank output. If it returns any HTTP 404/403 error it generally means the rewrite rules need to be flushed. Please go to Settings > Permalinks > Save Changes. If that doesn’t work please see other troubleshooting tips below.
Paid users are not automatically enrolled in the course.
Please make sure:
-
- You have verified your PayPal account.
- Your email address in PayPal Account matches the one in LearnDash PayPal Settings
- You have cURL enabled on your website server
- IPN simulator doesn’t return any errors
- Currency is entered correctly
- Country Code is entered correctly
Error: “Path to the CA certificates not set. Please add it to curl.cainfo in the php.ini file. Otherwise, PayPal may not work.”
This error is related to the way in which your SSL certificate was installed. Please contact your hosting provider and send them a copy of the error message.
IPN Simulator returns Payment Status: Pending Completed?:NO
If PayPal returns that the payment status as pending, processing is aborted. Please verify that your account is setup to accept payments without having to approve them manually.
Running the PayPal Notify URL through the PayPal IPN Simulator returns an error.
This means that the PayPal server and your server are not communicating properly. Please contact your host and to get help figuring out why the request is not going through.
“IPN was not sent, and the handshake was not verified. Review your information.”
This means that the PayPal server and your server are not communicating properly. Please contact your host and to get help figuring out why the request is not going through.
My “Take this Course” button is missing.
By default, all site administrators are automatically enrolled in all courses, so they will not see the “Take this Course” button. You can either log out of your account and refresh the page, or view your course page in a private browsing window (or a completely different browser).
