Course Email Funnel: From Free Lesson to Paid Course in LifterLMS
How to build a course email funnel on LifterLMS: choose a free entry point, capture the email, nurture with the right tool, make the offer with…
Read articleIf you sell courses across borders, tax is one of the first questions to settle. The short answer for LifterLMS VAT and sales tax: the core plugin does not calculate, add or report tax. There is no tax rate table, no tax line at checkout and no tax report. LifterLMS says so in its own documentation on handling VAT and tax settings.
That does not stop you selling legally. It means you choose how tax is handled, and the right choice depends on where your buyers are, whether they are consumers or businesses, and how much you sell. This article is for course business owners and the people who build their sites. It lays out the realistic options, the data you need regardless of which you pick, and the trade-offs of each.
This is a technical guide, not tax advice. Tax rules change and depend on where you are established. Confirm your obligations with an accountant before you set prices.
A LifterLMS access plan has one price. That price is what the gateway charges, and it is what appears on the order and the receipt. Specifically, in LifterLMS 10.x:
What LifterLMS does store is the buyer's billing details, including billing country, state and postcode when those fields are on your checkout form. That is the raw material any tax approach needs.
A few principles drive almost every decision. Again, check the details for your own situation.
The output of this step should be a short list: which countries or states you must charge tax in, at what rates, and whether you need to issue tax invoices.
Whatever approach you choose, record enough to prove where each buyer is. On a LifterLMS site this lives in the Checkout form, which you edit with field blocks.
You set one price that already includes tax, for example £120 including VAT, and you account for the tax from your side when you file returns. This is the simplest setup and works well when most buyers are in one country or you are below the thresholds that would require charging elsewhere.
The cost is that your margin varies with each buyer's tax rate, buyers do not see a tax breakdown, and you still need a way to produce invoices if customers ask. For many solo course creators it is the right starting point.
You create separate access plans, for example a UK plan and an international plan, each priced for its market. A course can show several plans in its pricing table, and plans can be hidden and shared by link. This lets you price VAT-inclusive for one region and net for another.
The weakness is enforcement: LifterLMS does not check that a buyer chose the plan for their country. It is a pricing convenience, not a tax engine.
This is the route LifterLMS itself recommends. You sell courses and memberships as WooCommerce products using the paid LifterLMS WooCommerce add-on, and WooCommerce's tax settings calculate tax by location. WooCommerce also has a large ecosystem of invoicing and tax extensions. Our LifterLMS with WooCommerce article covers how enrollment works in that setup.
The trade-off is complexity. You maintain a second commerce system, recurring billing needs WooCommerce Subscriptions, and discounts for those sales are run as WooCommerce coupons rather than LifterLMS coupons, because the WooCommerce product price is what the buyer pays.
Some sellers use a separate payment or merchant-of-record platform that calculates and remits tax on their behalf, then enroll buyers in LifterLMS automatically when a sale completes. The connection is made with a webhook, an automation tool or the LifterLMS REST API; our guide to enrolling students from an external app shows the enrollment side.
This moves most of the compliance burden off your site, at the price of platform fees and a checkout that lives somewhere else.
It is possible to build tax calculation into the LifterLMS checkout itself, but it is real development work: the price has to change by location before the order is created, every gateway has to charge the new total, and orders, receipts and reports need a tax line. Consider it only when volume justifies it and the other routes do not fit.
| Your situation | Usually the best fit |
|---|---|
| Most sales in one country, small volume | Tax-inclusive pricing in LifterLMS |
| Different prices for home and abroad | Regional access plans, with accountant sign-off |
| You must charge tax in many places and issue invoices | WooCommerce, or an external checkout |
| You want to hand off compliance entirely | An external merchant-of-record checkout |
| High volume and LifterLMS checkout is a must | Custom development |
Even with tax-inclusive pricing, you need totals by country. LifterLMS's Sales report does not split by location, but the data is on each order. This WP-CLI one-off totals net revenue by billing country for a date range:
wp eval '
$q = new WP_Query( array(
"post_type" => "llms_order",
"post_status" => array( "llms-completed", "llms-active", "llms-pending-cancel", "llms-expired", "llms-cancelled" ),
"posts_per_page" => -1,
"fields" => "ids",
"date_query" => array( array( "after" => "2026-07-01", "before" => "2026-09-30 23:59:59" ) ),
) );
$totals = array();
foreach ( $q->posts as $id ) {
$order = llms_get_post( $id );
$country = $order->get( "billing_country" ) ? $order->get( "billing_country" ) : "unknown";
$totals[ $country ] = ( $totals[ $country ] ?? 0 ) + (float) $order->get_revenue( "net" );
}
arsort( $totals );
foreach ( $totals as $country => $sum ) {
printf( "%s\t%.2f\n", $country, $sum );
}'
Order dates are when the order was created, and recurring orders include all their payments, so treat this as a starting point and reconcile with your gateway's payout reports. A "unknown" line tells you how many orders were taken without a country.
No. LifterLMS core has no tax settings. Use tax-inclusive prices, WooCommerce with the LifterLMS WooCommerce add-on, an external checkout, or custom code.
Not in core. LifterLMS points to its paid PDFs add-on for order PDFs; whether those meet your invoice requirements is something to check with your accountant. WooCommerce has dedicated invoicing extensions.
There is no sale price to tax on a free enrollment. Ask your accountant about bundles where a free course is part of a paid package.
Yes, with a custom field on the Checkout form. LifterLMS stores the value but does not validate it or remove tax for business buyers on its own.
Book an hour with your accountant and bring two numbers: your sales in the last twelve months split by country, and your forecast for the next twelve. That conversation decides whether tax-inclusive pricing is enough or whether you need a checkout that calculates tax. Then make sure your checkout form collects the country, today, because every order without it is a gap in your records.
If you need help choosing or building the setup, from moving checkout to WooCommerce to connecting an external platform, our LifterLMS consulting service will map the options against your sales. Get in touch with where your buyers are and we will recommend a route.
How to build a course email funnel on LifterLMS: choose a free entry point, capture the email, nurture with the right tool, make the offer with…
Read article
A practical LifterLMS SEO guide: what Google can see on a course site, which pages to index or keep out, how to treat catalogs and free lessons, and…
Read article
The sections every high-converting course sales page needs, in order, and how to build each one in LifterLMS with the sales page options, course…
Read articleSkip the trial and error. Get specialist LifterLMS help and ship faster.