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.
Shared question setting
Shared quiz setting
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:
- The prerequisite course, if any.
- The course itself.
- The certificate.
- 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.
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.
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.
Version 2.5, 2.6, 3.0, 3.1, 3.1.7.
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,
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.
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?
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?
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.
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?
I’ll organise the file and send it through, thanks for the prompt reply!
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.
I need a user to purchase a course on the main site and than have access to the course on the sub domain.
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.
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?
Sure is: here is a snippet that should help you out. If you need any more help, just e-mail!
Can the plugin be used for copying courses/ quizzes from one site to another?
Yes! I’ve added two new screenshots showing the course broadcast tool.
The New Blog Broadcast add-on is probably more what you’re looking for.
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?
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.
Is it possible to broadcast a course from the parent website to a single child site rather than the entire network?
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?
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?
Yes. Once the course is broadcasted and linked, any changes to the parent course are broadcasted to the child course.
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
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?
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?
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.