LearnDash does not include native coupon code functionality – but by pairing it with WooCommerce, you get a full-featured discount system that handles percentage discounts, fixed-amount coupons, expiry dates, per-user usage limits, and email restrictions. This guide walks through the complete setup for adding coupon codes to your LearnDash courses in 2026, with practical strategies for the types of promotions that actually increase enrollments.
Why LearnDash Needs WooCommerce for Coupons
LearnDash handles course creation, delivery, quizzes, and progress tracking exceptionally well. Payment, however, is not its strong suit. The built-in Stripe and PayPal payment options in LearnDash cover straightforward course sales, but they offer no coupon functionality, no bundle pricing, no subscription support, and no detailed transaction reporting.
WooCommerce fills this gap entirely. By turning each LearnDash course into a WooCommerce product, you access WooCommerce’s complete ecommerce toolkit: unlimited coupon codes, flexible discount types, usage restrictions, order management, customer reporting, and integration with email marketing tools. The connection between a WooCommerce purchase and course access is automatic once properly configured.
The other advantage of this setup: WooCommerce’s coupon system is one of the most battle-tested discount systems in WordPress. It has been refined through millions of stores over more than a decade. You benefit from that reliability and flexibility without needing to build anything custom.
Adding WooCommerce to LearnDash does not just add coupons – it gives you the full ecommerce infrastructure your course business needs to scale.
What You Need Before Starting
- LearnDash LMS installed and activated (free or paid version)
- At least one published course in your LearnDash setup
- Admin access to your WordPress dashboard
- A payment gateway account – Stripe is strongly recommended for its test mode, which lets you verify coupons work before going live
Step 1: Install and Configure WooCommerce
If WooCommerce is not already installed, navigate to Plugins > Add New, search for “WooCommerce,” install, and activate it. WooCommerce will launch its setup wizard automatically on first activation.
WooCommerce Setup Wizard Essentials
Work through the setup wizard carefully. The settings you configure here affect how your course store works. Key decisions to make:
- Store location: Your country and state. This affects tax calculation defaults and payment gateway availability.
- Currency: Choose the currency you will sell courses in. You can add currency switchers later, but your base currency is set here.
- Payment gateways: Install Stripe or PayPal. Stripe is recommended because it has a built-in test mode for verifying your coupon setup before accepting real payments. Both can coexist.
- Tax settings: If you sell digital products (which courses are), tax rules vary by jurisdiction. Consult your accountant if you are unsure whether to collect tax on course sales in your region.
After completing the wizard, verify that coupon functionality is enabled. Go to WooCommerce > Settings > General. Look for the checkbox labeled “Enable the use of coupon codes.” This should be checked by default, but verify it is active before creating coupons – a disabled coupon system means no coupon will work regardless of configuration.
Step 2: Connect Your LearnDash Courses to WooCommerce
For WooCommerce coupons to work with LearnDash courses, each course needs a corresponding WooCommerce product. There are two primary integration approaches in 2026:
Option A: LearnDash WooCommerce Integration Add-On (Recommended)
LearnDash offers an official WooCommerce integration add-on available in their account downloads section. This is the cleanest approach for new setups and the one LearnDash officially maintains.
With this add-on installed, every WooCommerce product edit screen gains a “LearnDash Courses” tab. You can directly link a product to one or more LearnDash courses. When a customer purchases the product and their order status changes to “completed,” WooCommerce triggers automatic enrollment in the linked courses. When an order is refunded, access is revoked automatically.
- Download the LearnDash WooCommerce integration add-on from your LearnDash account
- Install via Plugins > Add New > Upload Plugin
- Activate the plugin
- Create a WooCommerce product for each course you want to sell (Products > Add New)
- Set the product price to match your course price
- Navigate to the “LearnDash Courses” tab in the product editor
- Select the LearnDash course(s) this product grants access to
- Publish the product
Option B: Manual Course Access Mode Configuration
If you prefer not to use the official add-on, the manual approach works reliably:
- Edit your LearnDash course and go to the “Settings” tab
- Set the Access Mode to “Closed”
- Create a corresponding WooCommerce Simple Product with your course price
- In the LearnDash course settings, add the WooCommerce product URL in the “Button URL” field – this is what the enrollment button links to
- When a customer purchases via WooCommerce, use the Uncanny Automator plugin (free version works) to automate the connection: trigger “WooCommerce order completed” then action “Enroll in LearnDash course”
The manual approach requires Uncanny Automator or a similar automation plugin to handle the enrollment trigger. The official add-on handles this automatically – which is why it is the recommended path.
Step 3: Create Your First Coupon Code
Navigate to WooCommerce > Coupons > Add Coupon. The coupon creation screen has three tabs: General, Usage Restriction, and Usage Limits. Each controls different aspects of how your coupon works.
Choosing a Coupon Code
Enter your coupon code in the top field. Choose something memorable and relevant to the promotion. The coupon code is case-insensitive in WooCommerce – SUMMER25 and summer25 will both work. Keep codes short and easy to type: LAUNCH25, SUMMER20, EARLYBIRD, MEMBER10. Avoid ambiguous characters that look similar in fonts (O and 0, I and 1, l and 1).
You can also click “Generate coupon code” to create a random code – useful when you want codes that cannot be easily guessed, such as personalized discount codes you will send directly to specific customers.
Discount Type and Amount
| Discount Type | How It Works | Best For | Example |
|---|---|---|---|
| Percentage discount | Deducts X% from the course price | Launch promotions, seasonal sales, affiliate discounts | 20% off any course |
| Fixed cart discount | Deducts a flat $X from the cart total | Low-ticket courses, cart total minimum incentives | $10 off any order |
| Fixed product discount | Deducts a flat $X from a specific product/course price | Targeted discounts on specific courses | $20 off Course X specifically |
Coupon Amount: Enter the percentage (e.g., “20” for 20% off) or the fixed dollar amount (e.g., “20” for $20 off). The field does not include a currency symbol – just the number.
Coupon Expiry Date: Setting an expiry date creates urgency. Leaving it blank creates an indefinitely valid coupon – useful for evergreen codes you share with affiliates or embed in long-running email funnels. For time-limited promotions, always set an expiry date. Expired coupons throw a visible error at checkout, which is better than accidentally running a promotion longer than intended.
Free Shipping: For course products delivered digitally, this checkbox is irrelevant – leave it unchecked unless you are selling a physical companion product alongside the course.
Step 4: Configure Usage Restrictions
The Usage Restriction tab is where you define exactly which courses and users can redeem the coupon. This is the most important tab for most LearnDash use cases.
Minimum and Maximum Spend
- Minimum spend: Require a cart value above a threshold before the coupon applies. If your courses are $97 each and you want to incentivize purchasing two, set a minimum spend of $150 – the coupon applies only when the cart contains at least two courses.
- Maximum spend: Cap the coupon at a maximum cart value. Less common for course businesses, but useful if you want to prevent a coupon from applying to high-end premium courses above a certain price.
Course-Specific Restrictions
- Products: Restrict the coupon to specific WooCommerce products (your course products). If left blank, the coupon applies to everything in your store. For a single-course promotion, always specify the product here – otherwise, a coupon intended for a $97 course also works on your $997 program.
- Excluded Products: Explicitly exclude high-ticket courses or recent launches you do not want discounted from a general promotion.
- Product Categories: If you organize your WooCommerce course products into categories (Beginner Courses, Advanced Courses, Workshop Recordings), you can run category-wide promotions by restricting the coupon to a product category rather than listing individual products.
- Exclude Sale Items: Prevents the coupon from applying to products already on sale. Important for maintaining your pricing integrity if you run separate sale pricing alongside coupon promotions.
Individual Use and Email Restrictions
- Individual Use Only: When checked, this coupon cannot be combined with any other coupon in the same cart. Enable this for exclusive codes, launch coupons, and partner discounts to prevent stacking.
- Email Restrictions: Restrict the coupon to specific email addresses or email domains. This is one of WooCommerce’s most powerful and underused features for course businesses. You can create a personalized coupon code and restrict it to a single customer’s email – they see a coupon code that feels personalized, and it cannot be shared with others. You can also restrict by domain (e.g., @company.com) for corporate training discounts limited to employees of a specific organization.
Step 5: Set Usage Limits
The Usage Limits tab controls scarcity – how many times the coupon can be redeemed in total and per customer.
- Usage Limit per Coupon: The total number of redemptions across all customers before the coupon automatically deactivates. Set to “1” for a unique one-time gift code. Set to “50” for a limited launch promotion where only the first 50 students get the discount. Leave blank for unlimited use – standard for evergreen affiliate codes.
- Limit Usage to X Items: In a multi-course cart, this caps how many items receive the discount. If you offer “first course free with purchase of any three,” set this to 1 and the minimum spend to cover three courses – the cheapest course gets the discount applied automatically.
- Usage Limit per User: Prevents a single customer from redeeming the same coupon multiple times. Setting this to “1” is standard for promotional codes. This is tracked by user account and billing email – customers cannot circumvent it by logging out without also changing their email address.
Step 6: Test Your Coupon Before Promoting It
A coupon that does not apply correctly, gives the wrong discount amount, or does not trigger course enrollment is a customer service problem waiting to happen. Always test before promotion.
Complete Test Process
- Open an incognito browser window (or use a separate browser profile) to simulate a non-admin customer
- Create a test user account with an email address you control
- Add the target course product to cart
- Proceed to checkout
- Enter the coupon code in the coupon field
- Verify: the correct discount amount appears, the product is eligible (not getting “coupon is not valid for this product” error), the expiry date has not triggered prematurely
- Complete checkout using WooCommerce’s test payment gateway (enable in WooCommerce > Settings > Payments > WooCommerce Payments > Test Mode, or use Stripe’s test card numbers)
- Log into the LearnDash dashboard as the test user and confirm: the course appears under “My Courses,” the course is accessible (not locked), progress tracking works
- Check WooCommerce > Orders to confirm the test order shows the coupon applied and the correct final amount
Testing with Stripe’s test card is particularly important if your coupon reduces the price to $0 – some payment gateway configurations do not handle $0 transactions gracefully. Verify the full flow before assuming it works.
Step 7: Display Coupon Opportunities on Your Site
Creating a coupon is only half the work. Your potential students need to know it exists. Effective coupon visibility tactics for LearnDash course sites:
Countdown Timers on Course Pages
For time-limited coupons, a visible countdown timer on the course landing page dramatically increases conversion rates. Countdown Woo (free WooCommerce plugin) adds a countdown timer to product pages that shows the time remaining on a sale. When the timer hits zero, the sale ends – real scarcity, not fake urgency.
Banner Bars and Notification Strips
Site-wide notification bars (Hello Bar, WP Notification Bars, or OptinMonster) that display a coupon code and deadline create site-wide awareness of a promotion. Position these at the very top of your site so they are visible on every page. Include the coupon code directly in the banner – “Use LAUNCH25 at checkout – expires Friday” – so visitors can act immediately without hunting for a code.
Exit Intent Popups
When a visitor moves their cursor toward the browser navigation (signaling they are about to leave), an exit intent popup offering a discount can recover the sale. “Wait – here’s 20% off your first course: [FIRST20]” with a simple email capture converts a meaningful percentage of otherwise-lost visitors. OptinMonster, Bloom, and Elementor Pro all support exit intent triggers.
Post-Purchase Upsell Coupons
Immediately after a student enrolls in their first course, show them a coupon for their next purchase. “Congrats on enrolling! As a welcome gift, here’s 30% off any other course: WELCOME30” – timed when excitement is highest converts better than any re-engagement email sent later. WooCommerce’s Thank You page is the natural place for this offer.
Effective LearnDash Coupon Strategies for Course Businesses
Launch Discounts
For new course launches, offer a time-limited discount – typically 30-50% off – for the first 7-14 days. Announce the launch via email, social media, and your website simultaneously. Set a hard expiry date in WooCommerce and display a countdown timer on your course page. Urgency is the primary conversion driver for launch discounts – without a clear deadline, “I’ll buy it later” becomes never.
One tactic that works well: launch to your email list 24-48 hours before the public launch with an exclusive early-bird code. This rewards your subscribers, creates early social proof (enrollment numbers, first reviews), and generates testimonials you can use for the public launch. Set the early-bird coupon to expire the day before the public launch date.
Seasonal Promotions
Align course promotions with moments when people invest in learning: January (New Year’s goals and fresh starts), late August and September (back-to-school mindset applies to adult learners too), and Black Friday through Cyber Monday (the biggest discount period of the year – buyers actively seek deals and will buy courses they have been considering). Prepare coupons two weeks ahead, schedule announcement emails, and create promotional landing pages rather than relying on basic product pages.
Subscriber-Only and Community Discounts
Offer a discount code exclusively to your email subscribers as an ongoing benefit of staying subscribed. Send it in a monthly newsletter, not just at sale time – “As a subscriber perk, here is your discount code for this month: [CODE].” The email restriction field in WooCommerce works for this if you want to limit the code to specific email addresses, but for subscriber lists of any size, a code shared only via email (not public-facing) achieves the same exclusivity without technical restrictions.
If your LearnDash site has a BuddyPress community (added with one of the BuddyPress-LearnDash integration plugins), post exclusive discount codes in a members-only group. This rewards community participation and drives community members toward course purchases – a natural progression from community engagement to paid learning.
Bundle and Cross-Sell Discounts
Create coupon codes that trigger when a student has multiple courses in their cart. Use the “Minimum Spend” restriction to activate the discount only when the cart value exceeds what two courses would cost. Example: if your courses are $97 each, set a minimum spend of $150 with a 20% discount – any student buying two or more courses saves 20%. This increases average order value without requiring a dedicated bundle product.
Corporate and Group Training Discounts
For corporate clients buying seats for multiple employees, create custom coupon codes restricted by email domain. A company at yourbusiness.com gets the code CORP_ABC25 which only works for email addresses ending in @thecompany.com. This creates a professional corporate discount experience without complex custom development. Use LearnDash Groups to manage corporate enrollments – add all company employees to a Group and enroll the Group in your course.
Re-Engagement Coupons
For students who purchased a course but have not logged in for 60 or more days, send a re-engagement email with a discount on their next course. Email address restriction in WooCommerce lets you create personalized codes valid only for specific email addresses. WooCommerce’s customer data under WooCommerce > Reports > Customers shows last purchase dates, and tools like Metorik or Klaviyo can automate this segmentation and re-engagement sequence.
Tracking Coupon Performance
WooCommerce tracks usage data for every coupon automatically. Go to WooCommerce > Coupons, click a coupon, and you will see usage count, the customers who redeemed it, and the dates. For more detailed analysis, go to WooCommerce > Reports > Coupons to see total discount amounts, revenue generated, and which coupons are driving the most activity across a date range.
Key Metrics to Track After Every Promotion
- Redemption rate: Total uses versus how many people saw the code. If you sent the code to 1,000 email subscribers and only 10 redeemed it (1%), something about the offer is not compelling. If 80 redeemed it (8%), that is an above-average course promotion conversion rate.
- Revenue generated vs. discount given: Did the promotion generate net new revenue, or did it mostly discount purchases from people who would have bought anyway? Look at whether course enrollment spiked above your typical baseline during the promotion period.
- Course completion rates for discounted buyers: Students who purchased at a heavy discount sometimes have lower completion rates (lower psychological investment). Track whether discounted buyers complete at similar rates to full-price buyers. If not, consider adding a welcome email sequence specifically for promotional buyers to increase their sense of commitment.
- Email unsubscribes during promotions: If you are emailing your list heavily about a promotion and seeing unsubscribes spike, reduce frequency or segment better.
Common Coupon Issues and How to Fix Them
| Problem | Likely Cause | Fix |
|---|---|---|
| Coupon says “not valid for this product” | Product restriction set to different products | Check Usage Restrictions > Products and ensure correct product is listed |
| Coupon is expired when it should not be | Expiry date set incorrectly or in wrong timezone | Verify expiry date in coupon settings; check WordPress timezone in Settings > General |
| Same customer using code multiple times | Usage Limit per User not set | Set Usage Limit per User to 1 in Usage Limits tab |
| Email restriction not working | Customer using different email than restricted list | Confirm customer’s billing email matches restricted email exactly |
| Course not accessible after discounted purchase | WooCommerce-LearnDash connection issue | Check product is linked to course in the Courses tab; verify order status is “completed” |
| Coupon reduces price below $0 | Discount amount larger than product price | WooCommerce prevents negative totals; set maximum coupon value below minimum product price |
Coupons with LearnDash Subscriptions and Access Expiry
LearnDash supports course access expiry – a student who buys a course gets access for a set period (30 days, 6 months, lifetime) configured in the course settings. WooCommerce Subscriptions adds the ability to sell recurring access to courses on a subscription basis.
WooCommerce Subscriptions has its own coupon handling. You can create coupons that apply to the first payment only (sign-up discount), to all recurring payments (ongoing subscriber discount), or to the total subscription lifetime. This is particularly powerful for membership-style course access: offer a discounted first month, then regular pricing going forward. The “First Payment” coupon type handles this automatically without requiring any custom code.
For courses with a trial period, you can use a $0 first-payment coupon combined with WooCommerce Subscriptions to offer a free trial week or month, then automatically bill at the full rate. This is a much cleaner implementation than the various “free trial” workarounds that existed in earlier versions of LearnDash.
Frequently Asked Questions About LearnDash Coupons
Can I create a 100% off coupon to give a course for free?
Yes. Create a percentage discount coupon set to 100%. Restrict it to the specific course product. WooCommerce will process the order at $0, and the LearnDash integration will still trigger course enrollment automatically since an order was placed and completed. This is how you can distribute free course access via coupon code rather than manually enrolling users.
Do I need the LearnDash add-on or can I use WooCommerce alone?
You need a connection between WooCommerce orders and LearnDash enrollment. The official LearnDash WooCommerce Integration add-on is the simplest path. Alternatively, you can use Uncanny Automator (which has a free version) to create an automation rule that triggers LearnDash enrollment when a WooCommerce order for a specific product is completed. Both work reliably.
Can students share coupon codes with others?
Codes shared publicly can be used by anyone until you add restrictions. To prevent sharing: use email restrictions (valid only for specific email addresses), set usage limits per coupon, or use unique auto-generated codes that you distribute one-per-customer. Random auto-generated codes are the most secure option for exclusive discounts.
How do I create different prices for different groups of students?
Use email domain restrictions to create group-specific coupons. Corporate clients from company.com get coupon CORP20. Alumni from university.edu get coupon ALUMNI30. Each coupon is restricted to the relevant email domain and cannot be used by outside students. This creates a clean tiered pricing system without needing a membership plugin.
Extend Your LearnDash Platform with Wbcom Designs
WooCommerce coupons are one piece of the LearnDash revenue toolkit. Wbcom Designs offers a range of LearnDash plugins that extend what your learning platform can do – from BuddyPress integration that creates social learning communities around your courses, to custom student dashboards, group instructor management, and advanced reporting. If you are building a serious course business on WordPress, the standard LearnDash setup only gets you partway there.
Popular Wbcom LearnDash extensions include plugins for BuddyPress activity stream integration (course progress shows in the social feed), group management enhancements, and custom profile fields that connect student learning history to their community profiles. These integrations turn a standalone course platform into a learning community – and communities retain students at much higher rates than solitary course sites.
