How to Sell Courses With LifterLMS: Payments, Pricing and Checkout

Choose a pricing model, build the access plans, connect Stripe or another gateway, and set up checkout. Then test purchases, refunds, cancellations and failed renewals before you take a real payment.

  • Add as a preferred source on Google
Illustration for “How to Sell Courses With LifterLMS: Payments, Pricing and Checkout”

Selling a course with LifterLMS comes down to four parts working together: an access plan that states the price, a payment gateway that collects the money, a checkout page that creates the account and the order, and an order record that keeps enrollment in step with payment.

This tutorial goes through the setup in the order we would do it on a new site, including the testing that is easy to skip: refunds, canceled subscriptions and failed renewals.

If the site already has students, do all of it on a staging copy first. We do not quote prices or fees here because they change. Check the LifterLMS pricing page and your gateway's own.

Step 1: choose a pricing model

ModelAccess plan settingsTypical use
One-time, lifetimeSingle payment, lifetime accessEvergreen courses
One-time, limitedSingle payment, access expires after a period or on a dateExam prep, annual content
Payment planRecurring, fixed number of payments, lifetime accessHigher-priced programs
SubscriptionRecurring until canceledMemberships and course libraries
FreeFree planSamples and onboarding

A course or membership can carry up to six plans by default, so you can offer pay-in-full next to a payment plan. If you are unsure whether you need a membership as well, read memberships and access plans explained first. Settle your currency and refund policy now, because both shape the settings below.

Step 2: create the access plans

  1. Edit the course or membership and scroll to the Access Plans box below the editor.
  2. Click Add New Plan, pick the closest template, and give the plan a title buyers will understand, such as "Pay in full".
  3. Set the price and frequency: one-time, or recurring at your chosen interval. For a payment plan, set the plan length to the number of payments.
  4. Choose the access expiration: lifetime, a limited period, or a fixed date.
  5. Add options only if you need them: a trial (recurring plans only), a sale price with dates, or members-only availability.
  6. Set visibility. Mark the plan you want most people to choose as featured.
  7. Save, then view the course page logged out and read the pricing table as a buyer would.

Step 3: connect a payment gateway

The free core plugin includes one gateway: manual payments. It suits bank transfers and invoices. Checkout creates a pending order and shows your payment instructions, and the student is enrolled when an admin records the payment on the order.

For card payments you need one of the LifterLMS gateway add-ons, bought individually or in a bundle.

GatewayWhat you needTestingRenewals
StripeA Stripe account, connected from the Stripe section under LifterLMS > Settings > Checkout. The add-on creates the webhook in your Stripe account.Enable Stripe Test ModeAutomatic
PayPalThe classic API username, password and signature from your PayPal accountEnable PayPal Sandbox, with sandbox credentialsPaid by the student each period, unless your PayPal account has reference transactions
Authorize.NetAPI credentials, with Customer Information Manager enabled on the accountSandbox credentials and sandbox modeAutomatic
ManualYour payment instructionsNot neededAn admin records each payment
  • Live card payments need HTTPS across the site.
  • After connecting Stripe, confirm on the settings screen that the webhook is in place. Refund and failed-charge events reach LifterLMS through it. The Stripe setup guide shows where to look.
  • The LifterLMS documentation says PayPal is no longer accepting new users for reference transactions. On a newer PayPal account, expect students to pay each renewal themselves. If you sell subscriptions, make a card gateway the main option.
  • If you need tax calculated at checkout or a gateway outside this list, the WooCommerce add-on replaces the native checkout. You cannot run both. See our guide to LifterLMS integrations.

Step 4: set up checkout and account pages

  1. Under LifterLMS > Settings > Checkout, confirm the Checkout Page. It must contain the [lifterlms_checkout] shortcode or the Checkout block. The setup wizard normally creates it.
  2. On the same screen, set the default country, the currency, and how prices are displayed. LifterLMS uses one currency for the site.
  3. Leave Retry Failed Payments enabled; it is on by default. It works with Stripe, Authorize.Net, and PayPal accounts that have reference transactions.
  4. Under LifterLMS > Settings > Accounts, confirm the Dashboard Page setting. That page is the Student Dashboard and uses [lifterlms_my_account]. On the same tab, switch on the terms and conditions option with your terms page selected.
  5. Review the checkout fields under LifterLMS > Forms > Billing Information. Keep the form as short as your billing needs allow.
  6. Under LifterLMS > Settings > Security, choose a captcha service for checkout (reCAPTCHA or Turnstile). Public payment forms attract bots.

There is no guest checkout. A buyer creates an account or logs in as part of the purchase. Afterward, students use Order History on the Student Dashboard to view orders, cancel a subscription and, with Stripe or Authorize.Net, update their payment method.

Step 5: coupons, vouchers, tax and currency

  • Coupons reduce the price at checkout. Create them under Orders > Coupons. Set a percentage or fixed amount, limit the code to certain courses or memberships and to one-time or recurring plans, and add a usage limit and an expiration date.
  • Vouchers skip checkout. Under Orders > Vouchers you generate codes tied to courses or memberships, each with a set number of uses. Students redeem them at registration or from the Student Dashboard. They fit company deals paid by invoice.
  • Tax. LifterLMS has no native tax settings. Its documentation points to the WooCommerce integration for tax calculation. What you owe is a question for your accountant, not for us. Settle it before launch, then choose the tooling.
  • Currency. Prices are charged in your one site currency, including for buyers abroad.

Step 6: test every path

Put the gateway in test mode and make sure the test site cannot email real students. Then work through this list.

  1. Buy each plan as a new visitor with a Stripe test card or your gateway's equivalent. Check that the account exists, the order is Completed (one-time) or Active (recurring), the student is enrolled and the receipt arrives.
  2. Buy again as a logged-in student.
  3. Try a declined card. The buyer should see a clear message and should not be enrolled. Then use a card that requires authentication and complete the challenge.
  4. Apply a coupon and compare the amount on the order with the amount at the gateway.
  5. Redeem a voucher.
  6. Refund an order from its Transactions box. A gateway refund sends the money back; a manual refund only records it. The refund documentation says the order becomes Refunded and the student is unenrolled. Confirm both.
  7. Cancel a subscription as the student. The order should show Pending Cancellation, with access until the end of the paid period.
  8. Force a failed renewal. Stripe publishes a test card that saves successfully but declines when charged. Attach it to a test subscription, then edit the order's next payment date so the renewal comes due. The order should go on hold while LifterLMS retries, the student should be notified, and the order should end as Failed if every retry is declined. Note what the student can open at each stage. Retries are scheduled hours and days apart, so allow for that. On a cloned staging site LifterLMS switches automatic recurring payments off, so you have to turn them back on from the admin notice for this test. Do that only with the gateway in test mode and outgoing email blocked, because every subscription copied from the live site will then try to renew.

Step 7: manage orders and follow up after purchase

Every sale lands under Orders in the WordPress admin. An order has a status, a transaction for every payment attempt, and notes recording what changed. Recent versions also have a Customers screen under Orders showing each customer's order history and lifetime value.

One rule for daily work: change access by acting on the order. The documentation warns that editing a student's enrollment status by hand does not stop a recurring order from billing.

Emails after purchase

  • Notifications under LifterLMS > Settings > Notifications include Purchase Receipt, Enrollment, Student Welcome, Upcoming Payment Reminder, Payment Retry Scheduled and Subscription Cancellation Notice. Edit the wording and enable the ones you want.
  • Engagements send your own email when a student purchases an access plan or enrolls in a course. Use one to tell new students exactly where to start.
  • Send site email through a dedicated email delivery service so receipts are less likely to land in spam.

Pre-launch checklist

  • Gateway switched from test to live, and the live connection confirmed.
  • One real purchase with a real card, then refunded.
  • Every plan's price, interval, length and expiration checked on the live pricing table.
  • Terms, refund policy and privacy pages linked where buyers will see them.
  • Receipts and welcome emails arriving, from the right sender name.
  • Tax approach confirmed with your accountant.
  • Launch coupons created with limits and expiration dates.
  • The Checkout page and the Student Dashboard excluded from page caching. See how to speed up a LifterLMS site.
  • A named person checking failed payments and refund requests.

What to do next

For a first launch, one card gateway and one or two plans per course is enough. Work through the steps on staging, repeat the short version on the live site, and add coupons, trials and memberships once real orders are flowing. If the base install is not finished, start with how to set up LifterLMS step by step.

Get help when the standard setup stops fitting: tax through WooCommerce, a gateway LifterLMS does not support, custom checkout fields or flows, or a checkout that fails now and then for no obvious reason. That is the work our LifterLMS integrations, LifterLMS development and LifterLMS support services cover. Tell us what you are selling and we will point out the risks before you launch.

Add LifterLMS Expert to your preferred sources

Add lifterlmsexpert as a preferred source on Google, or open this article in your AI assistant to use it as a source.

  • Add as a preferred source on Google
VishavjeetChoubeyLifterLMS Expert
Free consultation

Prefer expert help over DIY?

Skip the trial and error. Get specialist LifterLMS help and ship faster.

Talk to a LifterLMS Expert Explore our services

Replies within one business day