LearnDash

LearnDash banner

This add-on for Broadcast adds support for the following LearnDash LMS plugin components:

  • Certificates
  • Courses
  • Groups
  • Lessons
  • Notifications
  • Question categories
  • Quizzes
  • Topics
  • Uncanny Content: Quizzes

The add-on supports older (2.5) and newer (2.6+) versions of LearnDash.

The add-on can automatically detect and modify [ LDAdvQuiz ] and [ LDAdvQuiz_toplist ] shortcodes.

The add-on also allows for questions and answers to be mass-updated and automatically broadcasted afterwards. See notes.

Screenshots

Notes

v2.6 info

As of the 22nd of February, the add-on supports both major versions of LearnDash: 2.5 and 2.6+. The newer version has weird[er] quiz and question data storage (custom post type and extra SQL table), which the add-on handles transparently.

If the quizzes on the child blog are missing their questions, open the quiz on the parent blog for editing. This will make LearnDash automatically create the question custom fields required for the questions to be broadcasted together with the quiz.

Course quiz / builder items in wrong order

After broadcasting, are the lessons, topics and quizzes in the wrong order on the child blog? Ensure that the shared program steps setting is enabled.

Course broadcast order

Due to the way LearnDash components reference each other, if you want to broadcast the whole post manually, you will need to broadcast and rebroadcast things so that they can find each other on the child blog. The best way to broadcast a course via components is:

  1. The prerequisite course, if any.
  2. The course itself.
  3. The certificate.
  4. Lessons.
  5. Topics.
  6. Quizzes.
  7. Groups.
  8. The course again.

If the above is too complicated, the above can be accomplished using the course broadcast tool in the menu.

Question Search & Replace

The add-on allows for text in questions and answers to be replaced. The process works as follows:

  • In the text to replace tab you specify what text to replace. The select box allows you to replace the text in the questions and / or the answers.
  • If you only which specific questions to be replaced and not, say, all questions that contain the text “well”, fill in this tab.
  • If you have this quiz broadcasted to other blogs, the child blogs can be automatically updated after the text is replaced.
  • The top button only searches for the text. This can be a small preview of your changes, so you can check whether the correct questions and answers are modified.
  • The buttom button does the actual replacing and optional rebroadcasting.

Blacklist / whitelist / protect course settings

If you have different course settings (prices, materials, etc) on each blog that you would like protected, put the name of the setting into the respective Broadcast custom field list, add this snippet that enables processing of arrays in custom fields, and then broadcast the course again.

For example, if your course has different course materials on each blog, and you don’t want that setting overwritten, add sfwd-courses_course_materials into the custom field protect list and enable the above snippet.

Uncanny Content

Currently, only Uncanny quizzes are supported. The content is broadcastable when using a Gutenberg Block in the content of a post. The ID of the content is detected, the content broadcasted to each child blog and then the block is modified.

Misc

Upon activation, the add-on will automatically raise Broadcast’s save_post action priority to a value higher than LearnDash’s (2000).

Enrollments to courses on child blogs are retained when rebroadcasting the parent course – thus preventing the users on the child blog from being unenrolled from the course.

Syncing course completion between broadcasted courses is not possible due to how LearnDash is built: it stores the completion data in the user’s meta data, using the course ID as the identifier, which will conflict between blogs. LearnDash’s network-unaware way of handling course completion data will cause conflicts with things like certificate generation if users have access to courses on more than one blog.

For the same reason as the above, groups cannot be synced between blogs either.

Ensure that your quiz names are unique for the whole site. If not, the incorrect questions will be assigned to quizzes.

If you wish to preserve the course registration button URL, there’s a snippet for that.

Tested with

Version 2.5, 2.6, 3.0, 3.1, 3.1.7.

Where to buy

This add-on is a part of the following packs:

Comments

  1. Hi There,
    Would this also work for WPLMS? That is a popular e-learning platform as well, with similar buildup. It would be great if that would be possible with this integration as well, or otherwise if there comes an integration with it!

    Thanks in advance,

    1. Have never heard about it, although I can usually build Broadcast support for most plugins. Please contact me via e-mail so we can have a look at the WPLMS plugin together.

  2. Hi there, could you clarify the following:

    a) The last statement under “Notes” above (also pasted here==>): “Syncing course completion between broadcasted courses is not possible due to how LearnDash is built: it stores the completion data in the user’s meta data, using the course ID as the identifier, which will conflict between blogs.”

    b) The implications for LearnDash registering course progression between 2 broadcasted courses whereby 1 broadcasted course is a pre-requisite for another broadcasted course?

    c) What are the implications for LearnDash payment gateways? – are course pages with pages with payment buttons for a given course broadcasted/visible in a given subdomain be enabled to route payments to the central/main site’s payment gateway .. and thus avoid a need to setup multiple payment gateways in each subdomain for each course that’s broadcasted? .. or how does this aspect work?

    1. a) If the user completes course A on blog 1, it is impossible to mark course A on blogs 2 and 3 as marked also, due to how LD is programmed.

      b) Due to A, course completion is local. So all prerequisites have to be completed on the same blog, not on different blogs.

      c) I’d say no to the routing. Generally, since none of the LMS plugins available care about WordPress Networks, just imagine that broadcasting courses or quizzes or anything only copies the data between blogs. It does not override any completion management, payments, certificates, etc.

      After broadcasting, you just have the same courses, but on another blog in the network.

      Looking at my code, none of the LMS add-ons Broadcast has (Sensei, WPLMS, Learndash) have any completion syncing support, either due to not being supported in the LMS (LearnDash) or not being requested (the other two).

      Does my answer clarify things any?

  3. Hi Team,

    I have approximately 1600 quiz questions across 40 exams that I need to upload to Learndash. The questions are in a csv file.

    I have tried a couple of plugins, but, a terrible result would be an understatement.

    If this something you may be able to help with?

    Thanks, looking forward to hearing from you.

    Russ.

    1. That sounds like something that needs to be automated. Could you e-mail me the csv file so I can see what can be done about it?

    2. Thanks Ed,

      I’ll organise the file and send it through, thanks for the prompt reply!

  4. The courses, lessons, and topics are not liking correctly when trying to broadcast to a site. Could you please detail the best way to fully broadcast an entire course?
    1. I’m developing a new way to broadcast the whole course at once using a special tool. If you e-mail me I can send you the beta version of the LD add-on to test.

  5. Is there a way for the Course Access List to be updated with the broadcast?

    I need a user to purchase a course on the main site and than have access to the course on the sub domain.

    1. The course access list is stored in the custom field of the course. So what needs to happen is that the course needs to be rebroadcast. Exactly how this happens depends on which e-commerce system you’re using and what actions we can hook into. The Broadcast API will come in handy then, specifically the update_children() function. If you need any help with the code, just e-mail me and we can discuss the details.

  6. Im broadcasting a course from my subsite to my main site where its connected to my e-commerce product. However after purchasing from my mainsite, when i check the user account from my subdomain the course is not connected but on my main site the user and the course purchased is connected. Is there a way i can pass the course purchased on my subsite?
    1. I’m not familiar with any WooCommerce-Learndash connections. Is this a standard feature of LD? At any right, I think you’ll need a code snippet to somehow connect the purchases. Could you contact me via e-mail so you can show me the details of your setup?

    2. Im thinking ill just extract the order details and get the value of the course id and the user id. However is there a function i can use to get the parent id of the broadcasted post?
  7. Thank you so much for your help. It works. I can now assign the course on the subsite.
  8. Hi there,

    Can the plugin be used for copying courses/ quizzes from one site to another?

    Regards

    1. Yes! I’ve added two new screenshots showing the course broadcast tool.

  9. Hi. Can the plugin be setup to automatically copy the parent site whenever a new child site is created?
  10. Checked out the New Blog Broadcast add-on. Was wondering if it will work with my LearnDash multisite?
  11. Hi,
    I need to broadcast my courses across my network. i’ve bought your 3rd party add-on.
    When I try to broadcast my courses under Broadcast >> Learndash >> Course broadcast >> Blogs I don’t see any site other than the main site (my network uses subdomains).
    Can you help me please?
    1. Is your user an actual member of more than one blog? It’s not enough that the user is a super admin, you have to be added to each blog’s user list.

  12. Hi,

    Is it possible to broadcast a course from the parent website to a single child site rather than the entire network?

    Thanks!

    1. Single child site? You mean just one site in the network? Sure. You can broadcast courses to as many or as few sites as you want, just like with normal posts and pages.

      What on the page gave you the impression that the course must be broadcasted to the whole network at once?

  13. Love the look of this plugin and it looks perfect for my needs.

    Apologies if this is already answered on the page, but If I update a course on the master site, will Broadcast automatically update the course on other sites or will I have to manually re-broadcast the course/module after I have changed it?

    1. Yes. Once the course is broadcasted and linked, any changes to the parent course are broadcasted to the child course.

  14. Hi Team,

    Is this working properly with version 4 of LearnDash? After reading this post, I fixed the issue on subsites with content broadcasting out of order. However, we have had 2 occasions in the past month where all the courses on the MAIN site are out of order. We cannot work out how the broadcast is re-broadcasting to the main site (should just be one way) and jumbling up the lessons even when we have the correct settings in place. Any ideas? Thanks

    1. Not being a LearnDash user myself, and not having access to anything later than 3.2.1, I cannot say. Considering their track record, it wouldn’t surprise me if there are breaking changings between v3 and v4.

      Regarding the jumble on the parent site: broadcast does not do anything to the main site. All changes are on the child.

      Is the problem reproducable at will? It sounds random?

  15. Hello,
    I’m having issues with Learndash broadcasting accordions built in accordion pro to child sites. I’ve tried adding the plugin directly to the child sites to see if that resolved it but with no success. Is there an accordion plugin that is compatible with both Learndash and broadcast?
    Thanks.
    1. The best thing to do would be to first figure out what is wrong. Could you enable Broadcast debug mode, broadcast the post with that accordion, email me the long, long, long debug text. Then I can see what Broadcast is doing.

  16. Hello,

    we are planning on using the broadcast plugin for Learndash for a multisite wordpress installation. The question we’re having is,  the course progress of the users will be the same on both sites or if the broadcasted courses will work separately from another?

    Thanks alot in advance.

    1. Course progress is not synced. It is not synced because – last time I looked at it – course progress is saved in the user’s meta, and the progress only saves the course ID and not the site ID also.

      This means that the user will have progressed equally well on site 3, course 93 as on site 5 course 93. :/

      I don’t know if they’ve fixed that yet.

  17. Hi, we installed the plugin on our site, but i see when we broadcast to other multi-sites, the Udemy template does not give us the option to choose single course cover image. it greys the option out. why could this be? The original course has a cover image and it is changeable, but the broadcasted one loses the functionality.
    1. I don’t know. I have never heard of the Udemy template. Your options are to either ask your webdev to dig throught the template’s source code try and find out why and then get back to me if it’s something I need to fix in Broadcast, or contact Udemy’s support directly and ask.

Leave a Reply

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