Selling Courses with WooCommerce Is a Breeze!

Selling Courses WooCommerce

One of my favorite plugins that allows you to sell products on your website is WooCommerce. WooCommerce was one of the first e-commerce plugins for WordPress, introduced in 2011. WooCommerce was immediately a hit within the WordPress community. As you may know, WooCommerce was acquired by Automattic in May of 2015 and is continually being improved.

Selling courses with WooCommerce

WooCommerce currently powers over 30% of online e-commerce sites and boasts over 1 million active installations. It's no wonder we jumped on board and created an integration for WP Courseware soon after we launched our WordPress LMS plugin. WooCommerce allows you to set up a product, shopping cart, and sell products with one of the many payment gateways they offer.

In case you're wondering, WooCommerce by default does not include "membership" functionality, although this can be accomplished with add-ons. It simply allows you to create and sell products for a one-time fee, similar to Easy Digital Downloads. While many of our WP Courseware users utilize membership plugins for recurring subscriptions to their content, for some of them the model of selling lifetime access to a course at a higher one-time price fits better. This is where e-commerce plugins such as WooCommerce and Easy Digital Downloads become powerful companions to WP Courseware.

Today, I want to walk you through the steps required to set up your WordPress site so that you can begin selling WP Courseware courses with WooCommerce. One great thing about WooCommerce is that it is SUPER easy to set up. I must admit I was very impressed with their UI for the initial WooCommerce setup wizard.

The prerequisites

Be sure that you have the following installed, activated, and ready to go.

Setup WooCommerce

As I mentioned before, WooCommerce has a very slick user interface for the initial setup wizard.

  1. Install and activate WooCommerce
  2. Upon activation you will then immediately be redirected to the super cool WooCommerce wizard. Fill out the information for your Store Setup and click Let's Go.
  3. The next step in the wizard will allow you to enable a Payment Gateway. Once you determine your payment gateway then click Continue.
  4. Next, you will be prompted to set up some recommended features.
  5. You will then be prompted to activate JetPack. (I recommend that you don't activate). The Skip Step text is small and toward the bottom of the screen.
  6. Lastly click Create your first product.

That's it!

WooCommerce configuration

One thing that must be disabled for student enrollment to work properly is Guest Checkout. To disable guest checkout:

  1. Click WooCommerce→Settings
  2. Click the Account & Privacy tab
  3. Deselect the checkbox next to Allow customers to place orders without an account

Set up a product

  1. As a continuation from step 7 above, you should be on the Add New Product page.
  2. Give your product a title.
  3. In the body of the post, simply write a description of the course that will be associated with this product.
  4. Next, configure the product. For the Product data drop down, choose simple product and check the virtual product checkbox.
  5. Set a price for your product.
  6. In the lower right hand corner there is an option to add a product image. I highly recommend adding an image here. This image will show up on the shop page. If you want to get really fancy, you can add multiple Product Gallery images. These images will display on the product page in a light-box when clicked on.
  7. Lastly click Publish.

That's it! I told you this was going to be super easy!

Let's create a course…

Courses are made up of modules, units, and the optional quiz or survey.  For this tutorial we will simply setup a basic course. Before I forget, we have a YouTube playlist that will walk you step-by-step through how to create your first course.

  1. Click WP Courseware→Courses→Add a Course
  2. Give your course a Title.
  3. Add your first module by clicking +Add Module. Insert the module Title and Description and click Add Module.
  4. Add a unit to the module by clicking +Add Unit. Insert the title for your unit and enter some content into the unit. Click Add Unit.
  5. You have setup all the components necessary for a course to be published. Obviously you can add more modules and units and even quizzes. Click publish.

Here are some additional items that you can configure within your course settings.

  • Admin notification email address
  • User notification messages
  • Email templates
  • Enable certificates
  • Add course prerequisites

Connecting the course to the product

  1. Click WP Courseware→WooCommerce.
  2. Find your product ID in the list and click Edit Course Access Settings.
  3. Select your course or courses that you want to associate with the product.
  4. Click Save Changes.

It's easier than adding hot sauce to your taco!


Give your students a course outline

There is a Courses endpoint available in the latest version of the WooCommerce addon for WP Courseware. That means that your students will be able to navigate to the My Account page and click on the Courses tab to see an outline for each course they are enrolled into.

Give it a test drive

This assumes you've setup a payment gateway like PayPal or Stripe. We recommend testing with PayPal Sandbox or Stripe Test Mode. To be completely transparent, Stripe Test Mode is much easier to configure and test.

  1. Navigate to your Shop page.
  2. Find a product and click Add To Cart, then click View Cart.
  3. Next click Proceed to checkout.
  4. Complete the order form.
  5. Click Place Order.
  6. Now we need to check to ensure that your user account was enrolled into the course. To do so, navigate back to the WordPress admin panel and click Users. Check your user account to see if you have a course associated with it. If so, then you've successfully engineered your site for selling courses with WooCommerce.

I want to point something out. If you navigate to WooCommerce→Orders, you will find the test transaction you just made. If you see a green circle with three dots inside of it, then you know that the status of the order is Processing. WooCommerce considers the processing status a successful completed transaction, meaning that the the product was successfully paid for. However, it remains in a processing  status until it is manually set to completed. This is to allow for handling and processing of any tangible goods associated with the product. There is an easy solution to get around this with WooCommerce.

What about WooCommerce Subscriptions and WooCommerce Memberships?

The WooCommerce addon for WP Courseware not supports both WooCommerce Subscriptions and WooCommerce Memberships right out of the box.

Basically if a subscription falls into one of the following statuses, the student will be automatically de-enrolled from their course.

  • On Hold
  • Expired
  • Cancelled

In a like manor if a membership falls into one of the following statuses, the student will be automatically de-enrolled from their course.

  • Paused
  • Expired
  • Cancelled

There is no additional configuration for either of these two integrations.

Time to start selling courses with WooCommerce!

The only thing left to do is:

  1. Create more products
  2. Create more courses
  3. Associate the products with courses
  4. Make some $$$!

Do you have any special tips for using WooCommerce to sell WP Courseware courses? Let us know in the comments below!

Last Updated August 23, 2017



About Ben Arellano

Ben Arellano is one of the co-founders of Fly Plugins, creators of the first and most widely-implemented learning management system for WordPress, WP Courseware. Since 2012, he has helped thousands of entrepreneurs, corporate training departments, and higher education institutions develop and deploy online training courses from their WordPress websites.


  1. Dino on August 15, 2016 at 10:26 am

    This is awesome, I plan to install all the “prerequisites” as soon as I can. I’m writing as fast as I can, with videos in the pipeline~ This would be the 2nd iteration of my project, I’ll be testing in the coming months.

    • Nate Johnson on August 15, 2016 at 3:39 pm

      Thanks, Dino! Best of luck with your project!

  2. Bayo on August 15, 2016 at 10:53 am

    Good overview. Are there videos for these articles available?

    • Nate Johnson on August 15, 2016 at 3:37 pm

      Hi Bayo,

      Absolutely! You can always find tutorial videos for our integrations, as well as several dozen others, on our YouTube channel:

  3. Wolfram on February 23, 2017 at 5:11 am

    i have the requirement that one purchaser buy for example 10 times the same course for the employee of his company. He need 10 Accounts for each employee – how can i managed this?


  4. Matt Garcia on August 10, 2017 at 9:31 am


    I am selling several online courses and only want students to see the courses that they are enrolled in when they go to the “my courses” page. Is there any way to do this? I don’t want them to see 10 other classes that they aren’t enrolled in every time they log in to study.

    Matt Garcia

    • Ben Arellano on August 30, 2017 at 9:35 pm

      Hi Matt,
      Yes, you can certainly do this by utilizing the “overall user progress” shortcode. Check out this article to see instruction on how to implement the shortcode.

  5. Teri on May 13, 2018 at 6:26 pm

    Is this plugin only for online courses. My client offers in-person classes but wants to offer online purchase and register. Will this plugin work?

    • Ben Arellano on May 14, 2018 at 1:57 pm

      Hi Teri,
      This is a great question. WP Courseware is definitely for online courses. There are great event plugins like EventEspresso that might work for scheduling, registering, selling and hosting offline courses.

  6. Teri on May 16, 2018 at 11:18 am

    We are using Event Espresso now; there are quite a few “holes” in the system. If you know of any others I am glad to look into them.

    • Tamara on June 1, 2018 at 1:53 pm

      We are using The Events Calendar and Event Tickets Plus for the scenario you describe — online registration for in-person classes.

  7. John Romaine on January 9, 2019 at 12:01 am

    This looks great but I wish you had of shown how the courses look in the video above.

  8. NICHOLAS AMOL GOMES on April 1, 2019 at 8:40 am

    Thanks for a post

  9. Sharen on June 26, 2019 at 6:03 am

    Hi, thank you for your tutorial.
    I am stuck at the start, when you suggest unchecking ‘allow customers to place orders without an account’
    I also have an online store on my website and don’t customers having to open an account to buy a (physical) product.
    How can I work around this?
    I have purchased wp courseware, WC subscriptions, WP memberships, and am wanting to sell physical products, online membership with course material as well as one-off online courses.
    Apologies if answer is there already, I’m not very techy 😊

    • Ben Arellano on June 27, 2019 at 10:04 am

      Hi Sharen,
      Unfortunately you can’t use guest checkout. An account is required to track student progress, grade student quizzes, enroll students into other courses etc…There is no way to have a an online course with tracking capability and not register the individual on the WordPress site.

  10. Sam on May 15, 2020 at 9:55 am

    I Find LMS plugins really helpful in creating the courses. I have one question. where to host your videos when you have tight budget? Vimeo?

    • Ben Arellano on May 22, 2020 at 7:30 pm

      I recommend AWS S3 cloud storage. Their rates are very competitive. I like that you only pay for what you use, which is especially important when you are on a budget.

  11. Jessica Abenduchi on May 28, 2020 at 11:18 am

    Hey, Ben! This blog is amazing, I’m going to go through and read all of your posts. 😍 You’re doing a great job! Another fantastic article that is well laid out. – Jessica

  12. Giacomo on June 26, 2020 at 12:53 am

    i can use also a variable product subscription?

    • Ben Arellano on July 10, 2020 at 11:40 am

      Hi there,
      Yes and no. You can use variable product subscription, however, the course will apply to the parent subscription. You can’t created multiple options for various courses with in the variable subscription.

  13. Aayah Khalaf on June 26, 2020 at 8:16 pm

    thanks! this is the exact setup I have but I want to start breaking down my course into a subscription-style and have certain content be blocked until they renew for the 2nd month, 3rd month, and so on.
    What’s the best plugin to use for that?

    • Ben Arellano on July 3, 2020 at 11:21 am

      Hi Aayah, You can use the drip function that comes with WP Courseware. You can drip out content by calendar date or by time interval from when the student was enrolled into the course. Aside from that, I don’t know of any other solutions to make additional content available based upon renewal.

  14. Christophe H on August 25, 2020 at 3:45 pm

    Hi Ben,
    I need to juggle between WP Courseware, Woocommerce and Event Tickets ( It will happen, I’ll need to sell tickets to provide access to online seminars I’d like to give with Courseware. How can I link a ticket sell with a course?

    • Ben Arellano on August 30, 2020 at 9:01 pm

      Hi Christophe,
      I’m not really familiar with the event ticket plugin, however, assuming that tickets are associated with WooCommerce products, then you can use the WP Courseware/WooCommerce integration. If you aren’t selling products, then there currently isn’t any integration directly with the event tickets plugin.

Leave a Comment