LearnDash
Recent Updates
Security
- Tightened security around REST API endpoints.
Fixes
- Resolved a race condition where two concurrent WooCommerce order-completion events for the same order could create duplicate groups and fire the group-creation automation twice.
- Resolved an issue where a product-level Group Registration bulk discount was shown on the product page but not applied in the cart or checkout.
- Resolved an issue where the group registration metabox would not show on the edit group page in the admin.
- Prevented a double member discount from being applied in the cart for Individual group purchases when WooCommerce Memberships is active.
- Resolved an issue where group courses could not be added or removed on the group edit screen when the Classic Editor was active and the Group Registration add-on was enabled.
- Resolved an issue where the dynamic group dropdown ("increase seats to existing group" / "add courses to existing group") did not appear on Simple Subscription products and did not list the existing group on Variable Subscription products when a group leader revisited the product page.
Tweaks
- Added actions:
learndash_seats_plus_version_downgraded_to_{$version},learndash_seats_plus_version_downgraded,learndash_seats_plus_version_upgraded_to_{$version},learndash_seats_plus_version_upgraded. - Added filters:
ldgr_should_apply_stored_line_price.
Fixes
- Resolved an issue where reCAPTCHA was not loading on the login form shown after a successful password reset.
- Resolved an issue where the Login Modal would show "Incorrect username or password" instead of the captcha error.
- Resolved an issue where the reCAPTCHA scripts and security nonce were not injecting on "Latest posts" homepages when login is triggered via a navigation menu item.
Fixes
- Improved ThriveCart webhook handling by decoding JSON payload fields correctly and hardening payload validation/sanitization.
Fixes
- Reporting Pro-Panel CSV exports returned empty files on sites with very large user bases.
- Resolved an issue where admin pages could be delayed by up to 10 seconds when the remote banners endpoint was slow or unreachable, by fetching banner data in the background instead of during the page load.
- Resolved an issue where custom fields and meta boxes added by other plugins were hidden below the block editor on Lesson and Topic edit screens in WordPress 7.0 and later.
- Resolved an issue where resuming a quiz that used randomized questions with a question subset could reset the quiz and lose already-answered questions; answered questions are now restored on resume and any that became unavailable are replaced.
Tweaks
- Cached the result of learndash_get_courses_count() so reporting views and synchronization routines no longer run an uncached query on every call.
- Added filters:
learndash_report_activity_list_view_chunk_size,learndash_report_admin_export_activity_types,learndash_report_user_activity_export_chunk_size.
Security
- Tightened security around assignment file uploads.
Fixes
- Resolved an issue where expanded lesson items in the Focus Mode sidebar were not fully rendering when the sidebar was initially collapsed.
- Resolved an issue where students could reach topics and quizzes that belong to a draft lesson, either through the course navigation or a direct link.
- Resolved an issue where the Resume Course button could redirect students to a draft or unavailable step, resulting in a 404 error.
Tweaks
- Added a disclaimer to the Extend Access section on the group edit screen to clarify that the access expiration date is a one-time tool and does not extend access automatically.
- Added filters:
learndash_model_{$post_type_key}_linear_step_ids. - Updated functions:
learndash_course_get_linear_step_ids,learndash_next_post_link,learndash_previous_post_link.
Fixes
- Resolved an issue where the Stripe product was being created multiple times in the Stripe catalog when creating/updating memberships.
Fixes
- Prevented translations from loading too early when registering the dependency checker notice.
Fixes
- Instructors can now create and edit courses, lessons, topics, and quizzes when the site language is set to "German (formal)" or other formal language variants. Previously, the editor would fail to load with a console error.
- Instructors can now use Infinite Scrolling and Load More buttons in Course Grid to view all their assigned courses, not just courses they authored.
- Pagination state not restoring when navigating back from submission details.
- Resolved a PHP 8 undefined variable warning for
$ld_categoryin the Frontend Dashboardenqueue_scripts()method. - Resolved an issue where Instructors and admins were unable to update groups from the Frontend Instructor Dashboard when "Group Tags" were disabled.
- Resolved an issue where essay submissions would be shown to the question owner instead of the course owner when LearnDash Shared Quiz Questions is enabled.
- Resolved an issue where the Visit Plugin link on the wp-admin > plugins list page directed to a non-existent URL.
- Resolved an issue where the student communication TinyMCE Send button did not appear on lesson and topic pages when LearnDash Notes or another front-end editor initialized before the message modal.
- Resolved an issue with ajax pagination in the Course List Block.
Tweaks
- Improved grammar and copy for the Course Creation card in Setup - Advanced Settings.
- Improved grammar and copy for the Dashboard card in Setup.
- Updated the commission setup description text for improved clarity.
- Added filters:
learndash_instructor_role_js_locale. - Updated templates:
modules/templates/settings/ir-instructor-setup-settings.template.php.
