LDX Design

How & Why to Integrate Easy Digital Downloads with LearnDash

Affiliate Disclosure: We may be compensated if you use our links to make a purchase. We are extremely selective in who we partner with & only recommend products we believe in. Our affiliate relationships do not influence our recommendations.

In this article, I’ll walk you through how to integrate Easy Digital Downloads with LearnDash, step-by-step. In addition, I’ll explain my reasoning for choosing Easy Digital Downloads (EDD) as the platform to power my recent online training platform, ldx.training.

This video will cover about 90% of the setup involved. Feel free to continue reading for:

The video includes some techniques that require the Elementor page builder, but even if you’re not using it, it’ll still be helpful in setting up LearnDash w/ EDD.

This post contains affiliate links. If you plan to purchase any EDD extensions, using my affiliate link helps support future free content like this. Thanks 🙂.

Why I chose Easy Digital Downloads for LearnDash

1. Performance

Courses are digital products, and EDD was designed for digital products from the very beginning. It doesn’t include all the features required for physical stores, shipping, etc. Therefore, it’s a bit more lightweight than WooCommerce, and other ecommerce platforms, that need to support the sales of physical goods.

Recommended ProductKinsta 2 months of free hosting

Easy Digital Downloads was optimized for digital products since its inception. Therefore, I believe it to be an optimized, performant platform to sell LearnDash courses.

2. Features

Simply put, EDD has everything you need to sell LearnDash courses. There are other platforms that also have everything you need, but EDD maintains & supports many of their extensions. Everything I’m using to build ldx.training is supported by EDD, not third-parties.

You will most likely need to purchase a premium Easy Digital Downloads plan (free will only get you so far), but their bundles are competitively priced with other ecommerce platforms on the market. Once you buy 2-3 premium WooCommerce extensions, you’re looking at about the same cost for a comparable EDD plan.

3. Setup

Compared to other platforms, integrating Easy Digital Downloads with LearnDash is pretty easy. It doesn’t come with quite as many features as a full-fledged membership platform does, but for basic transactions & course subscriptions, it’s one of the easier platforms to set up, in my opinion.

4. Quality of Code

The original developer of Easy Digital Downloads is Pippin Williamson, arguably one of the greatest WordPress plugin developers of all time. He now runs a 20+ person company called Sandhills Development, and everything they produce is top-notch.

I have the utmost confidence in everything they produce. It just works. It’s stable. And it will be around for a long time.

5. Other Integrations

Speaking of Sandhills Development, the same team also produces one of the most powerful WordPress membership solutions, Restrict Content Pro, as well as the top-rated affiliate plugin for WordPress, AffiliateWP.

Recommended Product

Rapyd WordPress Hosting
Rapyd just launched the fastest BuddyBoss, LearnDash & WordPress LMS hosting on the planet. Get 25% OFF with their early bird discount and lock-in up to 2 years of discounted pricing. From the creators of BuddyBoss.

Get 25% OFF Rapyd Today →

EDD integrates beautifully with both of these products. When it’s time to expand, I know I have great options.

6. Third-Party Ecosystem

While certainly not as big as WooCommerce, EDD still has a pretty big community of developers behind it. Check out this list of third-party EDD extensions.

And because it’s so beautifully coded, and built with flexibility for developers to extend it, there’s very little that it can’t do if you find the right developer to help.

And finally, I’m not the only one who likes it. As of April 2020, the free Easy Digital Downloads plugin has 320 ratings, 284 of which are 5-star. It’s actively used on over 60,000 WordPress sites, and has been around since April of 2012.

How to set up Easy Digital Downloads with LearnDash

To start, let’s go over which plugins you’ll need to set up & configure Easy Digital Downloads to work with LearnDash.

Required Plugins

Optional Plugins

These are helpful to improve the checkout & login process. They are discussed in the video at the top of this page, but are not technically required. However, we highly recommend them.

The Stripe Payment Gateway extension is only if you want to use Stripe to accept payments. The free version of EDD supports PayPal Standard & Amazon Payments.

Easy Digital Downloads Settings

There are a quite a few settings to configure with EDD, and many will depend on how you want your specific platform to operate. I won’t cover all the settings in this article, but I will go through a few important ones that relate to selling courses with LearnDash.

Recommended ProductIntuitive way to create websites with Elementor

If you’re selling other items in addition to LearnDash courses, you might want to tweak these settings to better fit your needs.

All of the following settings can be found under Downloads > Settings.

Emails Tab

Easy Digital Downloads settings, email tab

On the Emails > General page, under Email Configuration, you’ll want to set the following information:

  • add your company’s logo
  • set the From name
  • set the From email

On the Emails > Purchase Receipts page, you can customize the receipt that the customer receives after making a purchase.

Easy Digital Downloads purchase receipt settings page

I like to include a personal note, along with a link to the customer’s “My Courses” page, which I’ve created using the [ld_profile] shortcode.

You can also set:

  • the email subject line
  • the email header text

If you, as an administrator, want to be notified of every new sale, click on the New Sale Notifications link and customize the notifications that you’ll receive. You can also disable these notifications at the bottom of the page.

Extensions Tab

Easy Digital Downloads auto register settings page in the admin

If you’ve activated the Auto Register EDD extension, you’ll have a few options available under Extensions > Main. In the Auto Register section, I highly recommend checking both boxes for:

  • Disable User Email
    This disables the default WordPress email that gets sent to new users with their username & password, along with instructions on how to login. Since they are automatically logged into the site, and since you can provide instructions in your purchase receipt email, this email is unnecessary.
  • Disable Admin Notification
    This disables the notification that admins receive every time a new account is created on a WordPress site.

If you’ve activated the Downloads as Services EDD extension, you’ll want to select a category that EDD recognizes all products within this category as “services.” If you don’t see any options under Downloads as Services, you need to create a category.

  1. Navigate to Downloads > Categories
  2. Under Name, type “Courses”
  3. Click the Add New Download Category button

Now head back over to Downloads > Settings > Extensions, and you should be able to check the box next to “Courses.” This will designate all download products that are within the “Courses” category as services, which will remove some unnecessary language that would have otherwise been displayed by EDD in a few places throughout the site.

Easy Digital Downloads, set categories as services in admin

Create a Course in LearnDash

Obviously, you’ll need a course set up in LearnDash. I won’t go into detail on setting this up, but you should have at least one course set up before moving forward.

  1. Navigate to LearnDash LMS > Courses
  2. Click Add New
  3. Add content, lessons, topics & configure course settings
  4. Be sure to publish your course

Create a Download in Easy Digital Downloads

For each course, you’ll need to create a download product to associate to the course. In most cases, you’ll want the download product to have the same name as your course.

  1. Navigate to Downloads > Add New
  2. Give it a title, add content, set the price, etc.
  3. There are a few specific settings that we’ll discuss below…

Product Notes

Easy Digital Downloads product notes field setup for LearnDash

The information you enter in this field is shown in two key places:

  • on the receipt page, after someone makes a purchase
  • in the receipt email that a customer receives after making a purchase

Both places are good spots to help the customer navigate to the course they just purchased. Therefore, I like to add a link to the course page to help them get started.

Add the following code to the Product Notes section, but change the URL to reflect your course page.

<a href="https://yoursite.com/course/your-course-url/">Start the course</a>

Connect Download Product to Course

This is the most important step in the process. It’s what connects your product to your LearnDash course, and ensures the user is automatically enrolled into the course immediately after purchasing the product.

Connect LearnDash course to Easy Digital Downloads product

In the sidebar, look for the LearnDash section.

  1. Check the box for “Is this a LearnDash course?”
  2. Under “Which course?” search for & select the associated LearnDash course

Download as Service

If you’ve created a “Courses” category as mentioned above, and enabled the global setting under Settings > Extensions, this step is not necessary.

If you’ve activated the Downloads as Services EDD extension, there’s another option we recommend you enable on the Download page. In the sidebar, look for the Download Settings section.

  • Check the box for “This download is a service”
Easy Digital Downloads set product as a service

All this does is remove some language that would normally allude to no files existing for this product. EDD was originally designed for downloadable products, but since a course does not have any downloadable files associated with it, we don’t need or want this language to be displayed.

This option simply removes that text from appearing to users 👍.

Once those are set, be sure to click the Publish button to publish your download product.

Design Your Product Page

There are many ways to do this, but I’ve chosen to use the Elementor page builder to design my EDD product pages. The video above gives you a decent overview of what I’ve done, but I’ll include a helpful tip here.

On your Edit Download page in the admin, look for Download Settings, and check the box to “Disable the automatic output of the purchase button.”

Then, you can use the Purchase Shortcode that is displayed just below that setting, and insert it anywhere in your Elementor design.

[purchase_link id="123" text="Purchase" style="button" color="white"]

Be sure to grab your specific purchase link code, as the id= will have your unique product ID.

Login Page

Because there are so many different ways to handle your login flow, this is often one of the most confusing aspects to setting up a LearnDash site. I chose the method below because I feel it gives me the most control over the pages. But there’s nothing inherently wrong with other methods.

The key things to note about my login process are:

  • I don’t use the default WordPress login page
  • I don’t have a single page dedicated to login. Users can login from any of the 3 “my account” pages I’ve created.
  • I use EDD shortcodes to insert the login form

You’ll see how it works in the following section about my account pages.

Set Up Your Account Pages

I’ve opted to use 3 different account pages for my setup. You might want to do things differently. There is no single right or wrong way to set this up. The great thing about using Easy Digital Downloads is that you have options.

I’ll explain my setup below, but feel free to experiment and adjust it to suit your needs.

For reference, I prefer the following URL/permalink structure:

  • My Account – /account/
  • My Courses – /account/courses/ (a child page of “My Account”)
  • Purchase History – /account/purchases/ (a child page of “My Account”)

I’ve used https://ldx.training in my examples below. Be sure to update that to your domain name.

My Account

For the “my account” page, I chose to simply include an “edit profile” form. This allows the logged-in user to update their profile, including name, email, billing address & password.

Alternatively, anyone who is not logged in will see a login form. Upon successful login, the page is reloaded and they can now edit their profile.

I believe Easy Digital Downloads creates a few “my account” pages for you upon installation, but if you don’t already have one:

  1. Create a new page
  2. Give it the title & set the URL/permalink
  3. Insert the following shortcode sequence (I like to use an HTML block to make sure there are no erroneous spaces or line breaks)
[edd_is_user_logged_in][edd_profile_editor][/edd_is_user_logged_in][edd_is_user_logged_out][edd_login redirect="https://ldx.training/account/"][/edd_is_user_logged_out]
  • Change the URL of the redirect parameter to be the URL of your account page
  • The [edd_is_user_logged_in] and [edd_is_user_logged_out] shortcodes check for the user’s login status
  • The [edd_profile_editor] shortcode adds the “edit profile” form
  • The [edd_login] shortcode adds a login form

This is the page that I link to when I need to add a login link on my site or “link to my login page.”

My Courses

This page will likely not be created for you, as it’s not a default EDD page. This page is going to have more LearnDash-specific stuff on it, so EDD will not create it for you.

  1. Create a new page
  2. Give it the title & set the URL/permalink (I like to make this a child page of my account page)
  3. Insert the following shortcode sequence:
[edd_is_user_logged_out][edd_login redirect="https://ldx.training/account/courses/"][/edd_is_user_logged_out]

This will handle the login form for logged-out users.

  • Add the LearnDash Profile block (or use the [ld_profile] shortcode)

This will insert a list of courses that the user is enrolled in. It will only be displayed to logged-in users, so there’s no need to use the [edd_is_user_logged_in] shortcode.

LearnDash profile block settings

I like to enable “Expand All Course Sections” and disable all other options, but you can tweak these settings to customize what shows up in your LearnDash profile.

The free Uncanny LearnDash Toolkit has a neat feature called the Resume Button. You can insert the Resume Button block, or use the [uo_learndash_resume] shortcode, anywhere on this page to take a user back to the last lesson/topic/quiz they have yet to complete.

Purchase History

This page will include a list of all purchases made using Easy Digital Downloads.

  1. Create a new page
  2. Give it the title & set the URL/permalink (I like to make this a child page of my account page)
  3. Insert the following shortcode sequence
[edd_is_user_logged_in][purchase_history][/edd_is_user_logged_in][edd_is_user_logged_out][edd_login redirect="https://ldx.training/account/purchases/"][/edd_is_user_logged_out]

Once again, we’re using the [edd_is_user_logged_in] and [edd_is_user_logged_out] shortcodes to control whether they see a login form or the purchase history.

  • The [purchase_history] shortcode will add that user’s purchase history to the page
  • And if they see the login form, we’re redirecting right back to this page as soon as they login

If you have any questions as you set up LearnDash on Easy Digital Downloads, leave a comment below and I’ll try to help.

If you’d like to say thanks, and plan to purchase one of EDD’s extension packages, you can use my affiliate link. It costs you nothing, and EDD sends me a commission for referring you. It helps me continue publishing free content like this 🙂.


How to Enable Comments for LearnDash


LearnDash Focus Mode Edge-to-Edge Content for Page Builders


  1. Hi Dave ,
    the article link is broken ” WooCommerce vs EDD for LearnDash”
    Also could you please tell me which commenting plugin are you using on this website ?


    • Hi Said,

      Sorry about that link. I haven’t finished writing that post yet; it’s still being worked on. I added a note that it’s “coming soon.”

      As for the comments section on this site, it uses the default WordPress commenting system, which is styled nicely by our theme, Lovecraft. Then we use the Jetpack module for allowing people to be notified of follow-up comments. That’s it.

    • Said A. Elshayeb

      Thanks so much Dave

  2. Michel Morin

    how did you change the name of the download menu by product?

  3. hasan

    Hi excuse me in the learnDash course settings, which one should be chosen: open, free or closed?
    in access mode .
    thank you.

  4. hasan

    1. How can a user who registered via EDD-Auto Register be logged in again? without any password?
    2. In addition, EDD-Auto Register prevents a user who is already registered on the site from accessing the course. But there is no problem with new users.

    thank u very very much.

    • 1. How can a user who registered via EDD-Auto Register be logged in again? without any password?
      With EDD Auto Register, the user’s password is automatically created for them when they complete their purchase. So the user doesn’t know what their password is, but you can use the EDD receipt email to include a “reset password” link for them to change their password. Then they would know what it is and use it to login next time they need to.

      2. In addition, EDD-Auto Register prevents a user who is already registered on the site from accessing the course. But there is no problem with new users.
      I don’t understand what you mean. Maybe the answer to #1 addresses this. For someone who is already registered on the site, they simply login, and then have access to whatever course(s) they purchased.

  5. hasan

    About number 2: If a person who has not previously registered, purchases a course for the first time, he / she can access the course immediately without having to log in. And the closed course opens for him /her in that moment. But this is not the case for older users. So I realized that logging in is mandatory. Thank you again.

  6. Thank you very much for this Video! Now I know Tor sure, I can`t do that by myselfe. I dosn`t Even find the Learndash LMS EDD Integration, so I can`t Download that Plugin.

    I`m allmost done with Learndash. I can`t go forward, even everything is in English, and as you can read, I am from Austria.

    I need Really help. Please, can you help je? Do you know, how can I geht Support?

    Best regard
    Andrea Krumschnabel
    0043676 6584000

    • Hi Andrea – Sorry to hear you’re struggling with the LearnDash-Easy Digital Downloads integration setup.

      In order to download the add-on, you just need an active LearnDash license. From there, you will have a page under “LearnDash LMS” that says “Add-Ons.” You go there, click “install” and then “activate” next to the LD-EDD integration plugin.

      I don’t have the bandwidth to help right now, but you can find LearnDash developers on Codeable and in the LearnDash Facebook group.

Leave a Reply

Your email address will not be published. Required fields are marked *