LifterLMS Checkout Setup: Pages, Forms, Terms and Testing
Set up LifterLMS checkout properly: the checkout page and confirmation flow, the billing form, terms and privacy, currency and spam protection, what…
Read articleNot every buyer pays by card. Companies want an invoice, public bodies pay by bank transfer, and some markets still run on cheques or local transfers that no gateway supports. LifterLMS handles all of these with its built-in manual payment gateway, at no extra cost.
This tutorial shows how to set up LifterLMS manual payment for offline methods, what the student sees at checkout, how you approve an order once the money arrives, and how manual payments behave on subscriptions and payment plans. It also covers a small code snippet for offering bank transfer only on selected plans.
It is for course sellers who already have access plans set up. If you have not configured checkout yet, start with our LifterLMS checkout guide.
The manual gateway is part of core LifterLMS. In the gateway table under LifterLMS > Settings > Checkout it is listed as Manual, described as "Collect manual or offline payments. Also handles any free orders during checkout."
It does not move any money. It creates an order, tells the student how to pay, and waits for you to confirm the payment arrived. That makes it suitable for:
It is not suitable for high-volume, low-price courses. Every paid order needs a person to check a bank statement and approve it, and the student waits until you do.
The second half of that description matters too. LifterLMS uses the manual gateway behind the scenes to process orders that cost nothing at checkout, such as a free trial or a 100% coupon, even when you have not enabled it. You do not need to enable it for free courses.
Good payment instructions answer every question the buyer would otherwise email you about:
The instructions are shown to the buyer on their order page while the order is waiting for payment, so they can come back and find them later.
Set expectations clearly on the checkout page and in the email. "Access starts within one working day of your payment arriving" prevents most "I paid, where is my course?" messages.
One default to change: the Payment Due email goes to the student only. Its custom subscriber option is off, so nobody on your side is told that a manual order was placed. Open the notification under LifterLMS > Settings > Notifications, enable the custom recipient and add your accounts address.
There are two ways to approve an order. Recording the payment is the better one.
A successful transaction moves the order to Completed for a one-time plan or Active for a recurring plan. That status change enrolls the student, and the purchase receipt is sent if that notification is on. Because a transaction exists, the payment also shows up correctly in revenue reporting.
You can instead set the order status directly with Update Order Status in the order's action box and save. Moving it to Completed or Active also enrolls the student. The drawback is that no transaction is recorded, so your sales figures will not include it. Use this for zero-value or internal orders where there is no payment to record.
Pending orders do not cancel themselves. Review them weekly. The LifterLMS orders documentation describes each status if you are unsure which to use. Send a reminder, and if the buyer has gone quiet, set the order to Cancelled so your order list stays clean.
The manual gateway supports recurring plans, but every instalment is manual too. Here is what happens on each due date:
For a short payment plan, for example three monthly instalments from a company client, this is manageable. For an open-ended monthly membership, it means a monthly lock-out for every subscriber who pays a day late, and a monthly admin task for you. In that case use a card gateway; see our guide to payment plans and free trials for structures that fit.
If you must run manual subscriptions, add the payment details and due date to your payment reminder emails, and consider giving trusted clients a separate plan with longer billing periods so there are fewer due dates.
Because no gateway took the money, no gateway can return it. On the order's Transactions box, use Refund Manually, enter the amount and an optional note, and confirm. LifterLMS records the refund, and the tooltip on the button reminds you that you need to send the money back yourself. LifterLMS covers partial refunds in its guide to refunds in LifterLMS. A refunded order removes the student's enrollment by default.
An enabled manual gateway appears on every paid plan. If you want bank transfer only for, say, a corporate package, you can limit it with the core llms_can_gateway_process_access_plan filter in a small custom plugin:
<?php
/**
* Plugin Name: LLMSX Manual Gateway Limits
*/
add_filter( 'llms_can_gateway_process_access_plan', 'llmsx_limit_manual_gateway', 10, 4 );
function llmsx_limit_manual_gateway( $can_process, $plan, $order, $gateway_id ) {
if ( 'manual' !== $gateway_id || ! $can_process || ! $plan ) {
return $can_process;
}
// Never block free plans: core uses the manual gateway to process them.
if ( ! $plan->requires_payment() ) {
return $can_process;
}
// Access plan IDs that may be paid by bank transfer.
$allowed_plan_ids = array( 123, 456 );
return in_array( absint( $plan->get( 'id' ) ), $allowed_plan_ids, true );
}
Replace the IDs with your own access plan IDs. One caveat: core also uses the manual gateway when a 100% coupon makes a paid plan free at checkout, and this snippet does not see the coupon, so test any full-discount coupons on plans outside the list. For more on extending core this way, see how to customize LifterLMS without breaking updates.
Yes. It is part of core LifterLMS and needs no add-on.
No. The order stays Pending Payment and the student is not enrolled until you record the payment or complete the order.
Yes. Enable each gateway on the Checkout tab and buyers choose at checkout. Drag the rows in the gateway table to set the order.
Yes, an administrator can enroll students directly from the course's student management screen. Use an order instead when you want a financial record of the sale.
Enable the gateway, rename it, write clear instructions, add yourself as a recipient of the Payment Due email, and place a test order to see exactly what your buyer sees. Then record a payment on it and check the enrollment.
If your business invoices companies at scale, with purchase orders, seat counts and tax documents, the manual gateway is usually the starting point rather than the whole answer. Our LifterLMS customization team builds invoicing and approval workflows on top of it. Tell us how your customers pay.
Set up LifterLMS checkout properly: the checkout page and confirmation flow, the billing form, terms and privacy, currency and spam protection, what…
Read article
What each screen of the LifterLMS setup wizard does, which options it actually saves, how to rerun or skip it, and the settings you still need to…
Read article
Build one LifterLMS course from start to finish: the course post, Course Options, the outline, lesson content, a quiz, an access plan, publishing…
Read articleSkip the trial and error. Get specialist LifterLMS help and ship faster.