LearnPress – WordPress LMS Plugin


WordPress LMS Plugin – LearnPress is a comprehensive WordPress LMS Plugin for WordPress. This is one of the best WordPress LMS Plugins which can be used to easily create & sell courses online. You can create a course curriculum with lessons & quizzes included which is managed with an easy-to-use interface for users. Having this WordPress LMS Plugin, now you have a chance to quickly and easily create education, online school, online-course websites with no coding knowledge required.

Live Demo | Documentation | Support
Free LearnPress Theme
LearnPress Themes
LearnPress Mobile App
LearnPress PRO Bundle

LearnPress is free and always will be, but it is still a premium high-quality WordPress Plugin that definitely helps you with making money from your WordPress based LMS. Also, LearnPress is highly recommended by WPML as the Learning Management System Plugin for Multilingual Sites. Just try and see how amazing it is. LearnPress WordPress Online Course plugin is lightweight and super powerful with lots of Add-Ons to empower its core system.

Highly recommended by LearnPress users, we are pleased to introduce you to our best Education WordPress Themes which have Premium LearnPress Add-Ons included already.

Eduma | Education WordPress Theme (#1 Selling Education WordPress Theme).
Coaching | Life & Fitness Coaching WordPress Theme (Rising Star).
Course Builder | Online Course WordPress Theme (Potential).


Take a look at Premium Online LMS & Education WordPress Themes that are developed to work perfectly with LearnPress LMS WordPress Plugin. These incredible WordPress Themes are the best for your Online LMS & Education websites using LearnPress with the clean and modern design. From more than 50 demos, you can easily chose the most suitable one which fits your purpose and customize it as your style.


LearnPress Mobile App is an LMS Mobile App for iOS & Android built with React Native Technology. If you have Online Education & LMS websites using WordPress Themes or LearnPress Plugin, LearnPress Mobile App supports you to convert your current websites to LMS Mobile App easily. Your LMS Mobile App will be on both App Store and Google Play Store. All courses will be synced immediately between your Online Education & LMS Website and your LMS Mobile App. This LMS Mobile App brings to your students a new learning experience when they can manage and track their courses as well as instructors.

LearnPress Tutorials

Are you looking for the best LMS WordPress Plugin?

LearnPress features

LearnPress – WordPress LMS Plugin works with your Theme
We create LearnPress LMS Plugin to work with any WordPress Themes.

LearnPress supports WordPress Multisite
Create WordPress based LMS as a multi-site.

Create course
LearnPress LMS Plugin provides an excellent user interface for online courses creating with any options you need. You can find it easy to make a full curriculum layout as well as edit and maintain it.
You can also export and import your courses to another website using LearnPress.

Manage course
With the course you’ve created, you can share it, manage it, watch statistic about the number of students, trends, etc.

Sell course
LearnPress is free but it still allows you to sell your courses with many billing methods supported such as PayPal, WooCommerce, Stripe, etc.

Communicate with your students
BuddyPress makes it easier for you to communicate with your students or instructors via the WordPress forum. Studying, making friends and having fun.

LearnPress provides a bunch of add-ons
Add-ons are used to provide extra features for LearnPress and you can also write your own add-on for more purposes.

LearnPress is free and always will be
Education should be free and we want you to bring it to as many people as you can. Therefore, we create LearnPress as a tool for you to create online course and share it. We’ll continue to develop it as long as we can and make it better and better.

LearnPress is actively developed
We are developing and improving LearnPress day by day and bringing you more new features cos we want LearnPress to become the best WordPress LMS plugin.

LearnPress WordPress LMS Plugin Documentation

Free Add-ons for LearnPress WordPress LMS Plugin

Premium add-ons for LearnPress WordPress LMS Plugin

LearnPress has been translated into the following languages

  1. English
  2. French
  3. Indonesian
  4. Italian
  5. German
  6. Polish
  7. Russian
  8. Dutch (Netherlands)
  9. Spanish (Costa Rica)
  10. Spanish
  11. Spanish (Mexico)
  12. Spanish (Venezuela)
  13. Indonesian
  14. Chinese

WordPress LMS Plugin – LearnPress ROADMAP

  • Payment Method support (first priority)
    • Google Checkout
    • Amazon Payments
    • Dwolla
    • Braintree
    • Samurai by FeeFighters
    • WePay
  • Etkinlikler
  • Share Grade
  • BadgeOS
  • Create quiz from random questions in question bank (DONE)
  • Attach restriction to lesson
  • Presentation support (maybe support SlideShare)
  • Student ranks
  • REST API for mobile app (DONE)
  • No distraction mode (when doing quiz)
  • Report/feedback about a question/quiz/lesson
  • Commission for payment method (DONE)
  • Instructor’s note
  • Private message from Admin to teacher
  • Group payment

Any suggestions for this WordPress LMS Plugin? Send us via email: support@thimpress.com

Other note

Documentation is available in ThimPress site.
LearnPress github repo.

Ekran Görüntüleri

  • Curriculum - Drag and Drop lesson or quiz.
  • Lesson content.
  • Quiz preview.
  • General settings.
  • Quiz settings.
  • Email settings.
  • Demo course page.
  • Add-ons of LearnPress.


From your WordPress dashboard
1. Visit ‘Plugin > Add new’.
2. Search for ‘LearnPress’.
3. Activate LearnPress from your Plugins page.

From WordPress.org
1. Search, select and download LearnPress.
2. Activate the plugin through the ‘Plugins’ menu in WordPress Dashboard.


What is LearnPress?

LearnPress is a plugin for LMS website to spread out courses and sell courses online.

Where can I find LearnPress documentation and user guides?

If you want to use LearnPress to build a Learning Management System website, please refer to our user guides in LearnPress official site.
And if you want to extend or use LearnPress, see our Wiki.

Where can I get support or talk to other users?

If you get troubles when using LearnPress you can ask for help on the LearnPress Support Forum or join the private Facebook group. You could share your feedback about LearnPress. And let us know which feature you want us to build next.

For help with premium add-ons, use our helpdesk.

Where can I ask for new features, suggest new ideas or new themes for LearnPress?

You can send us your thoughts through via email: support@thimpress.com

Where can I report bugs or contribute to the project?

You can also report bugs on LearnPress Support Forum or LearnPress Github Repository.

Where can I find the REST API documentation?

You can find the REST API documentation here.

LearnPress is great, can I contribute to it?

Yes, you can and we appreciate it. Join in our Github Repository.

LearnPress Translation project


10 Ocak 2024 1 yanıt
I installed Learnpress on my WordPress site few weeks ago.As soon as I did it, a lot of spam new users started to sign up. That is a bit annoying, because those are fake users and I get emails every single time a new user signs up. Despite disabling the sign up function and hiding that page, how can I delete this feature completely?I don’t want to accidentally delete another important file. Could you please tell me how to delete the sign up file without affecting my current user (the administrator) and install an antispam plugin?Thank you very much in advance!
4 Ocak 2024
I am new to using Learnpress and have found it really great so far. I love what I can create with it. Our first course is entitled Beyond Biodiversity Net Gain. We are just about to launch and I ran into an important problem that I couldn't figure out how to resolve by myself. I am based in Spain so I noted the time difference that is stated on the support area and by doing that, I was able to get very quick responses from Louisa. Once she had the information I could supply her, she resolved my really important issue in no time at all. I feel very grateful to her and the team at Learnpress. I have used other great products that a poor support system lets down, over the years. Learnpress is a great product with a superb support system. I am loving using it so far. Many thanks.
5 Aralık 2023
Even without having the paid plugin, they provided support for a problem we encountered. Quick and to the point. I recommend them!
4 Aralık 2023
I have some years using the plugins, Its works very well, and they have been give me a good support when I have needed
544 incelemeyi oku

Katkıda Bulunanlar ve Geliştiriciler

“LearnPress – WordPress LMS Plugin” açık kaynaklı yazılımdır. Aşağıdaki kişiler bu eklentiye katkıda bulunmuşlardır.

Katkıda bulunanlar

“LearnPress – WordPress LMS Plugin” 24 dile çevrildi. Katkıda bulundukları için çevirmenlere teşekkürler.

“LearnPress – WordPress LMS Plugin” eklentisini dilinize çevirin.

Geliştirmeyle ilgilenir misiniz?

Kodu görüntüle, SVN deposuna göz at veya RSS ile geliştirme günlüğüne abone ol.

Değişiklik Kaydı (2024-02-20)

~ Fixed: missing translate on “html_count_student” function.
~ Fixed: missing translate on profile avatar function.
~ Fixed: error when only has a payment method, will be not show payment form.
~ Fixed: error widget list courses elementor with theme override content-course.php.
~ Fixed: course query filter with polylang.

4.2.6 (2024-01-29)

~ Tweak: courses js.
~ Tweak: course filter js.
~ Added: some class has -no-css for purpose not set style on this class.
~ Added: fake student on count students show on list courses.
~ Added: get_tags function for single courses.
~ Tweak: checkout js, not use serializeJSON() of JQuery.
~ Added: defer js some script.
~ Fixed: add param lang if exist for loadAjax.
~ Added: option “Class of list courses want to filter” on the Widget Filter Courses.
~ Added: icon drag material.
~ Remove callback hook learn-press/before-courses-loop-item, learn-press/after-courses-loop-item.
~ Fixed: code searching post by taxonomies make error block Woocommerce. (2024-01-09)

~ Added: show notification addons bought near expire support.
~ Fixed: error “Fib in blank” question case duplicate, when submit quiz wrong result.
~ Fixed widget course filter: error WPML handle wrong if link send not param lang. (2023-12-25)

~ Fixed: security.
~ Fixed: translate some text.
~ Tweak: layout list courses, set hooks for override, will soon stop support override template file.
~ Fixed: clear cache quiz question_ids when add/remove/delete/clone question on the quiz.
~ Added: code use for flutter. (2023-12-06)

~ Added: new feature “Assign/Unassign Courses” on the Tools Backend.
~ Added: courses filter support multiple language.
~ Dev: widget elementor filter courses.
~ Dev: widget elementor list courses.
~ Fixed: save sale price. (2023-11-24)

~ Tweak: logic load Widget Filter Courses.
~ Dev: assign/unassign course to user.
~ Fixed: error still show price when user has bought course but not start course.
~ Fixed: search suggest courses on Widget Filter Courses.
~ Fixed: not call function calculate price when edit course with user is instructor. (2023-11-16)

~ Fixed: security issue.
~ Added: new feature Statistic on the Backend.
~ Fixed: minor bug material.
~ Added: strategy defer/async for some script (WP 6.3 or higher will run).
~ Fixed: label ‘Free’ not show on the single free course.
~ Fixed: error sanitize key, make certificate can’t save. (2023-11-07)

~ Fixed: security issue.
~ Tweak: display Category for filter courses.
~ Added: attribute disable if filter count = 0.
~ Tweak: widgets.js use fetch instead of wp.apiFetch.
~ Added: page tool clear cache. (2023-11-02)

~ Fixed: security issue.
~ Tweak: only show 1 level categories right behind cate parent, on the widget “Course Filter”.
~ Added: method count students enrolled of course.
~ Added: method count courses free.
~ Added: cache for count. (2023-10-27)

~ Fixed: security issue.
~ Fixed: miss hook start quiz, retake quiz.
~ Fixed: minor bug material.
~ Fixed: error same course when access any single course.
~ Fixed: error don’t hide info price/free when user enrolled course. (2023-10-24)

~ Fixed: security issue.
~ Compatible with WP 6.4.

4.2.5 (2023-10-19)

~ Tweak: start quiz, retake quiz.
~ Tweaks: icon social.
~ Fixed: error font Arabic when export invoice.
~ Fixed: minus point when skip question.
~ Fixed: error duplicate message “out of stock” on the single course.
~ Fixed: error not show material of lesson.
~ Fixed: error set 0 to not show material.

4.2.4 (2023-10-03)

~ Fixed: error Paypal Standard (use IPN), replace to use API REST, client ID, client secret.
~ Clean resource.
~ Check load Widget Elementor on hooks plugins_loaded.
~ Tweak: load Curriculum when edit course, query on Frontend.
~ Tweak: layout single instructor.
~ Fixed: error set Section Per Page = 0 or < -1.
~ Fixed: error set load curriculum item = 0.
~ Tweak: logic create/delete user_item. (2023-09-18)

~ Tweak: display Date Time, time zone by format of WP.
~ Fixed: count Progress course on the Single Item.
~ Fixed: current item active on the Curriculum.
~ Fixed: error not show price course when user repurchase course. (2023-09-14)

~ Tweak: checkout.
~ Fixed: case start quiz but user_item_id = 0.
~ Added: dynamic tag Course for Elementor.
~ Tweak: breadcrumb.
~ Set 404 if user not login, view page single instructor/no-slug-instructor.
~ Fixed: expire date, end date format i18n on Profile Page. (2023-08-24)

~ Fixed: error when use same namespace class JWT library, with some plugin like Google Listings and Ads. (2023-08-08)

~ Added: feature choose type Pagination when load courses on page Archive: navigation Number, Load more, Infinite scroll.
~ Added: feature “Downloadable Materials”, manager can upload files document for each course, lesson, so student can download it.
~ Fixed: error with WPML, show wrong list courses with lang.
~ Fixed: sidebar Course Filter show wrong with Firefox.
~ Fixed: error fonts tiny with theme OceanWP.
~ Fixed: error 404 when view item’s course with Polylang.
~ Fixed: SEO, show title of Category & Tag of Courses.
~ Tweak: checkout function. (2023-07-19)

~ Added: widget filter courses, option enable fields want to filter, sort fields, option load widget on REST.
~ Added: Search course suggest (AJAX).
~ Added: shortcode filter courses [learn_press_filter_course].
~ Fixed: error install/update Addon. (2023-07-05)

~ Fixed: Security.
~ Item Course: completed, display Date Time by format WP.
~ Tweak: message of LearnPress.
~ Fixed: function “Add course to Order manual”

4.2.3 (2023-07-03)

~ Added: page list instructors.
~ Added: page single instructor.
~ Added: option set number instructor per page.
~ Added: shortcode show list instructors [learn_press_instructors].
~ Added: shortcode show single instructor [learn_press_single_instructor].
~ Auto add shortcode if page is list instructors or single instructor, if enable Elementor will not auto add.
~ Added: Widgets For Elementor: list instructors, instructor title, instructor description.
~ Added: Template default for list instructors on path “config/elementor/template-default”, can import via Elementor.
~ Tweak: Widgets For Elementor: list courses, become a teacher, login form, register form.
~ Profile: added tab My Courses, display course attend of User.
~ Profile: tab My Courses, display statistic: total course enrolled, course in-progress, course finish, course passed, course failed.
~ Profile: tweak tab Courses, display course created by User (Admin, Instructor).
~ Profile: tab Courses, display statistic: total course created, course publish, course pending, total student, student in-progress.
~ Tweak: set default section_per_page, course_item_per_page = -1 to load full.
~ Added: format_human_time_diff method.
~ Tweak: get cart from session.
~ Check: $course->get_instructor() is null.
~ Added: hook do_action( ‘lp/order-completed/update/user-item’, $item, $order ), for case buy item not course.
~ Added: hook do_action( ‘lp/order-pending/update/user-item’, $item, $order ), for case buy item not course.
~ Added: nest_elements, print_sections methods on class Template, for easy override template without override file.
~ Tweak: statistic student/instructor on profile page.
~ Added: method “count_courses_of_author” instead “count_courses_publish_of_author”
~ Tweak: method “count_status_by_items”
~ Profile: added text “upload” translate on localize script.
~ Apply: add internal scripts to head on page List Instructors.
~ Fixed: error buy item with Guest, order is no item.
~ Fixed: Security Broken Access Control.
~ Added: hook login/register of WP on page LP Checkout for plugin captcha display.
~ Fixed: error 404 function comment on the lesson. (2023-04-04)

~ Compatible theme Gutenberg.
~ Compatible WP 6.2.
~ Fixed: auto add shortcode Profile.
~ Show notification: Addons has new version.
~ Fixed: error buy with Guest display pending Order.
~ Tweak: shortcode learn_press_button_course.
~ Fixed: error display title on mobile app.
~ Lesson: stop support post-formats. (2023-03-21)

~ Fixed: some error with Profile, LP_Profile_Tabs class.
~ Fixed: make some page builder like: elementor, visual composer work incorrect.
~ Remove implements ArrayAccess of LP_Query_List_Table class (to compatible with PHP8.1). (2023-03-09)

~ Fixed: permalink item 404 when install “YoastSeo” plugin.
~ Fixed: error not show tab Avatar on Profile Page.
~ Modified: rewrite rules. (2023-03-03)

~ Fixed: error link course with ‘%course_category%’, on screen list courses Backend.
~ Fixed: some theme load only course on Archive Course Page.
~ Fixed: error not save basic info on Profile page.
~ Fixed: url current has symbol like الاعدادات.
~ Fixed: error not show message when save info Profile.

4.2.2 (2023-03-01)

~ Optimized performance.
~ Optimize: rewrite “add_rewrite_rules” method, only call on “admin_init” hook.
~ Optimize: flush_rewrite_rules only when save settings.
~ Optimize: not call get_available_payment_gateways on hook ‘wp_loaded’.
~ Optimize: not call learn_press_get_current_profile_tab on hook ‘init’.
~ Optimize: add thim_cache table for cache (apply for site not install plugin Object Cache – or cache not working).
~ Optimize: set/get/clear cache for count total students enrolled.
~ Optimize: set/get/clear cache user_course (user_items) data.
~ Optimize: only load class REST when call on url of API.
~ Optimize: modified set cookie session for user Guest(user not login).
~ Added: a slash to the end of the course item link.
~ Fixed: some functions make out of memory.
~ Fixed: some functions use static not correct make out of memory.
~ Deprecated “learn_press_get_the_course” function, replace with “learn_press_get_course” function.
~ Deprecated: “learn_press_get_current_url” function, replace with “LP_Helper::getUrlCurrent” method.
~ Temporary comment _get_theme_info, plugin info, because very low.
~ Comment: hook learn_press_lesson_comment_form_fields, learn_press_get_only_content_permalink, learn_press_lesson_before_delete_post (2023-02-04)

~ Fixed: error js when add user on LP Order manual.
~ Modified: Not translate course slug base (permalink).

4.2.1 (2023-02-03)

~ Added: feature manager addons of LearnPress, download, update, activate, deactivate.
~ Fixed: style button.
~ Fixed: deprecated register widget elementor.
~ Added: ‘get_evaluation_type’ function.
~ Modified: ‘get_passing_condition’ function.
~ Added: ‘get_evaluation_type’ function.
~ Added: hook ‘lp/course/extra-info/before-save’.
~ Added: hook ‘learn-press/login-redirect’.
~ Added: hook ‘learn-press/register-redirect’.
~ Added: “status” row on LP Order Receiver.
~ Fixed: error not set pagination page numbers questions when retake quiz.
~ Modified: “set_title_pages” function.
~ Modified: “get_order_status_html” function, now can translate status LP Order.
~ Fixed: error “load more” on Profile page.
~ Fixed: error can’t set Sale price to 0.
~ Modified: step of input Passing Grade from 1 to 0.01.

4.2.0 (2022-12-20)

~ Fixed: compatibility with WordPress PHP 8.1.
~ Not implements ArrayAccess, Iterator, Countable of PHP on classes: LP_Datetime, LP_Session_Handler, LP_User_Item_Course, LP_User_Item, LP_Quiz_Results, LP_Course_Item, LP_Quiz, LP_Array_Access, LP_Profile_Tabs.
~ Except class LP_Query_List_Table we still keep implements ArrayAccess (will notice the warning, but don’t worry, you only need to disable WP_DEBUG mode), because addons: learnpress-h5p(version 4.0.1 and lower), learnpress-assignment(version 4.0.7 and lower) require it. So you need to update to the higher version of these plugins to make sure.
~ Modified: LP_Datetime, deprecated method: toLocal, toRFC822, toUnix, setGMT, getSqlNullDate, addDuration, getPeriod.
~ Deprecated: get_time_remaining, get_time of the class LP_User_Item, get_finishing_type of the class LP_User_Item_Course.
~ Deprecated: get_course_remaining_time on the class LP_Abstract_User.
~ Modified: get_expiration_time, deprecated param $format (17502a0).
~ Modified: class LP_Question_True_Or_False, LP_Question_Single_Choice, LP_Question_Multi_Choice, LP_Question_Fill_In_Blanks (3af1d1c).
~ Modified: class LP_Question, deprecated method: _get_default_answers, _filter_meta_box_meta, update_answer_orders (3af1d1c)
~ Modified: method ‘get_answers’ of class LP_Question (3af1d1c)
~ Deprecated: ‘learn_press_course_question_permalink_friendly’ function.
~ Added: ‘LP_Question_Cache’, LP_Session_Filter class.
~ Commented: ‘learn_press_mark_user_just_logged_in’ function.
~ Not store key ‘order_awaiting_payment’ in session, you need update ‘learnpress-certificate’ addon to version 4.0.4 or higher.
~ Not call: ‘learn_press_clear_cart_after_payment’ on hook ‘get_header’.
~ Not call: ‘learn_press_custom_checkout_cart’ on hook ‘learn_press_checkout_cart’.
~ Deprecated: ‘learn_press_add_order’ function.
~ Deprecated: learn_press_generate_transaction_object function.
~ Modified: LP_Shortcode_Checkout class.
~ Fixed: shortcode [learn_press_checkout] working right.
~ Deprecated: ‘LP_Request_Handler’ class, your need to update addons ‘Course Review’ (version 4.0.4 or higher), ‘Wishlist’ (version 4.0.4 or higher).
~ Not call ‘learn_press_set_user_cookie_for_guest’ function on hook ‘wp’.
~ Commented: ‘set_cookie’ method on class LP_Request. c12c4b54
~ Modified: ‘LP_Session_Handler’ class (c12c4b54).
~ Optimized: handle session.
~ Only set the cookie when the user does not log in.
~ When a user login is successful, the previous session of the guest user is deleted.
~ When a user logs out, expired sessions are deleted.
~ Modified: ‘save_data’ method of class LP_Session_Handler (c12c4b5).
~ Modified: ‘get_cart_from_session’, ‘get_session_data’, ‘save_data’ methods on class LP_Session_Handler.
~ Change name ‘get_session’ method to ‘get_session_by_customer_id’.
~ Modified: ‘update_session_timestamp’, ‘delete_session’ methods on class LP_Session_Handler.
~ Modified: ‘LP_Cart’, optimize how to set session for cart, get cart items when called, instance of set on hook ‘wp_loaded’ always call, not call ‘set_cart_cookies’ when ‘add_to_cart’ method called.
~ Modified: ‘calculate_totals’ on class LP_Cart.
~ Deprecated: method ‘get_cart_for_session’ on class LP_Cart.
~ Modified: ‘LP_Profile_Tabs’ class.
~ Replace all access via array to fields and methods of classes LP_Query_List_Table, LP_Profile, LP_Profile_Tab.
~ Deprecated: ‘offsetExists’, ‘offsetGet’, ‘get_current_question’, ‘get_question_position’, ‘check_question’, ‘get_question_link’ methods LP_Quiz class.
~ Modified: ‘create_order’ method on class ‘LP_Checkout’.
~ Deprecated: ‘instructions’ method on ‘LP_Gateway_Offline_Payment’ class.
~ Moved: settings permalink Profile to tab Permalinks.
~ Fixed security: inject SQL (CVE-2022-45820).
~ Fixed security: XSS.
~ Fixed: styles Backend, Frontend.
~ Remove save lesson preview on list lessons on the Backend.
~ Remove sortable between multiple section.
~ Modified: method “list_courses”, change how call the template.
~ Checked: price is valid.
~ Fixed: search course in term with Polylang.
~ Modified: statistic of LP Order.
~ Checked: MathJax.Hub undefined.
~ Fixed: error json syntax API search courses, curriculum. (2022-11-18) – View detail

~ Added: tab permalink option.
~ Modified: remove border style on the tab single course.
~ Modified: style popup complete item.
~ Show: notice check wp_remote_get if the call fail.
~ Show: notice if LearnPress has beta version.
~ Changed: text ‘Enable’ to ‘Sticky Quiz Paging’ on the Advanced Settings. (2022-11-03)

~ Fixed: error build missing styles. (2022-11-02)

~ Updated: text grammar.
~ Modified: LP_DateTime class.
~ Added: Course category and tag to menu.
~ Changed: input type regular price, sale price to text.
~ Call quiz get_questions function to get_question_ids.
~ Fixed: upgrade LP3 to LP4 missing result of lesson.
~ Remove file class-lp-backward-plugins.php, class-lp-factory.php, class-lp-query-search.php, class-lp-course-utils.php, class-lp-rest-authentication.php
~ Remove code deprecated before. (2022-10-03)

~ Removed: delete file mu-plugin (Moved to the plugin Thim Optimize).
~ Fixed: CVE-2022-3360 security.
~ Fixed: error “Quiz is not auto submitted when the time is expired”.
~ Fixed: error “Completed item is not redirected to the next item”.
~ Modified: Shortcode button LP.
~ Removed: delete shortcode ‘learn_press_button_enroll’. We recommend using the shortcode ‘learn_press_button_course’ instead.
~ Fixed: error “Email content on one line when you save”. (2022-09-16)

~ Fixed: non-LP plugins causing errors.

4.1.7 (2022-09-13)

~ Fixed: IPN paypal.
~ Added: autocomplete meta-box field.
~ Fixed: h5p error in curriculum editor.
~ Modified: duplicate course, sections, items.
~ Handle multiple button Continue course.
~ Modified: has_completed_item() function.
~ Fixed: custom fields register not show on the Profile page.
~ Fixed: save order status.
~ Added: hook ‘learn-press/user-item/expiration-time’.
~ Added: function duplicate question answer-meta when duplicate question.
~ Fixed: error show content of quiz when user doing questions.
~ Fixed: error fetch api has x-wp-nonce with cache expire.
~ Fixed: sidebar toggle on mobile with theme Eduma.
~ Added: autocomplete meta-box field.
~ Fixed: error not send mail when register user on page checkout.
~ Fixed: error wrong status graduation when set Passing Grade is 100% on Quiz.
~ Fixed: header, footer email of LP not detect variable.
~ Fixed: error duplicated items, section when double click. (2022-08-10)

~ Fixed: show wrong shortcode on course, item’s course. (2022-08-09)

~ Fixed: show wrong special character (Ex: ü) on Section title, description.
~ Fixed: error on duplicate course, item function not same content old course, item.
~ Fixed: button sidebar toggle not show on default theme WP.
~ Fixed: ESC make error with payment gateway. (2022-08-04)

~ Fixed: error ESC content of course, items’ course make iframe, embed not working.
~ Fixed: error complete lesson, do quiz on API for App mobile. (2022-08-03)

~ Modified: read items, read sections of course. (optimize read speed).
~ Modified: ‘set_viewing_item’ method.
~ Modified: set thumbnail image size on the ‘Profile Page’ by width setting on ‘Avatar Dimensions’.
~ Fixed: error search no courses but return all (Archive courses).
~ Fixed: error LP_Shortcode_Course_Curriculum with Elementor.
~ Sanitize, ESC.
~ Deleted: folder attributes, files: ‘class-lp-gdpr.php’, ‘class-lp-hard-cache.php’, ‘class-lp-repair-database.php’, ‘class-lp-utils.php’.
~ Clear, optimize codes.
~ Added: hook do_action ‘lp/background/course/save’.
~ Added: hooks for addon LP – WPML.
~ Deprecated: methods ‘load_curriculum’.
~ Style: FAQs on single course, spacing items progress, space in single tab.
~ Change: ‘Course Item Per Page’ set default is 10. (2022-07-05)

~ Fixed: click pagination when enable 2 option Load Courses Ajax.
~ Added: loading, error message(if it has) when start quick.
~ Fixed: error sort by popular with theme Eduma.
~ Fixed: Wordfence denied param: “author”, convert to “user” on API.
~ Fixed: query popular courses for app.
~ Added: return price format for app.
~ Added: API delete account for app.
~ Merged: addon Offline Payment.
~ Fixed: styles with themes: Avada, Divi, Flastsome, Bridget, Astra, The 7.
~ Fixed: security. (2022-06-20)

~ Fixed: errors quiz when call API LP remove action ‘wp_loaded’.
~ Fixed: some minor bugs.
~ Fixed: install tables for multiple sites.
~ Fixed: save settings always return tab General.
~ Fixed: layout ‘select items’ popup when edit course.= (2022-06-13)

~ Fixed: security.
~ Added: option “Enable loading ajax Courses on the Archive Course page”.
~ Added: option “No Page load Courses Ajax”. (2022-05-16)

~ Fixed: error with block theme 2022.
~ Fixed: error with LP Addon Frontend Editor. (2022-05-05)

~ Modified: setup require tables for LearnPress when activate plugin.
~ Modified: setup wizard.
~ Optimized: code.
~ Fixed don’t scroll to item of section > config “Section Per Page”. (2022-04-20)

~ Fixed: sort section of course.
~ Fixed: sort item of course’s section when edit course.
~ Fixed: sometime call get_curriculum empty.
~ Modified: fixed when set seconds big (about 100 hours), can’t convert to format time right.
~ Fixed: duplicate course not duplicate sections, items.
~ Fixed: error wp.media on page Email setting.
~ Fixed: count wrong order on the backend. (2022-04-04)

~ Fixed: go to last item of section still show button “load more items”.
~ Fixed: “Undefined” when click “load more sections” on theme Eduma. (2022-04-01)

~ Optimize.
~ Fixed: error show input when retake Fill In Blank – off option “Show correct answer”.
~ Modified: filter query courses API.
~ Hide load more item button which section it hide.
~ Fixed: save course is sale when edit course.
~ Added: hook “learn-press/user/quiz-finished”.
~ Fixed: error site use sub-folder domain will be error 301 when checkout.
~ Fixed: error show “The item is not assigned to this course” on Page builder.
~ Fixed: error style RTL item-actions.
~ Fixed: case user guest buy course and not login, back to this course will not show button “purchase course”.
~ Added: hook do_action( ‘login_form’ ) on the page LP Checkout, form “Login”.

4.1.6 (2022-03-14)

~ Compatible: with “Polylang” plugin.
~ Compatible LP Shortcode with Elementor.
~ Compatible: with block theme (Gutenberg).
~ Added: set -1 value for no limit Retake Quiz.
~ Added: order by popular courses on API.
~ Fixed: case set duration quiz = 0.
~ Fixed: case set password for quiz.
~ Fixed: create new question didn’t set type.
~ Fixed: when search global WP with ?s= will not search item’s course and question not assign.
~ Fixed: “Active Courses” empty on the Profile page.
~ Fixed: security does not sanitise and escape the lp-dismiss-notice.
~ Fixed: error many times redirect when access link domain/type/not_found.
~ Fixed: compare string answer not set “Match case” type Fill In Blank Question.

4.1.5 (2022-01-24)

~ Modified: optimize, handle cache for query courses.
~ Added: meta key ‘_lp_regular_price’.
~ Modified: get price of course.
~ Added: “get_user_courses” function.
~ Fixed: security avatar image (Arbitrary Image Renaming).
~ Modified: upload avatar image.
~ Fixed: RTL style.
~ Modified: optimize load Curriculum via API, fast for big data (larger thousands items). (2021-12-22)

~ Added: settings redirect when finish course.
~ Added: enqueue script by shortcode button purchase.
~ Fixed: error save value on the textarea format code HTML.
~ Fixed: error timezone is different UTC-0 will finish quiz soon.
~ Save info total items (quiz, question,…) of course when saving the course – improve performance.
~ Fixed: error change user Guest to another user on LP Order not save.
~ Fixed: Guest buy course with user exists.
~ Fixed: Guest buy course with create account.
~ Fixed: High CPU (many query) when user login view single course.
~ Fixed: No require enroll.
~ Changed: view course’s user on the Backend to the profile’s user.
~ Modified: submit quiz, get result course, quiz.
~ Fixed: query get orders on Profile page.
~ Fixed: query get orders by user (multiple user) on the Backend.
~ Modified: delete course will delete section, section_items, lp_user_items, user_itemmeta.
~ Saved: info total items of course when save course – to make call fast.
~ Rewrite: function count total items of the Course.
~ Fixed: get course id when click Get Passing Grade in Evaluate via results of the final quiz.
~ Fixed: count Unassigned questions.
~ Changed logic check “fill in blank” question: user answer right all fields will get point of question, one of answer wrong, the question is fail and get point = 0.

4.1.4 (2021-11-08)

~ Fixed security: when user share profile, another user can see settings as change password, change info.
~ Modify: not scroll to title courses when load first.
~ Fixed: get incorrect key setting “archive course layout”.
~ Fixed: get value “From name”, “Footer text” setting Email.
~ Removed: option set “From address” email, removed hook “wp_mail_from” make some site can’t send email when install LP.
~ Comment some functions deprecated: “_learn_press_restrict_view_items”, “_learn_press_set_user_items”.
~ Added: hook “learnpress/course/template/price/can-show”.
~ Added: filter “before_show_lp_widget_content”.
~ Show icons on the child Settings tab – Profile page.
~ Fixed: case answer’s question Fill in blank = “0” always incorrect.
~ Fixed: case content of question answers will change by hook apply_filters( ‘the_content’) when reload page, change to do_shortcode().
~ Fixed: store answer of user when reload page will lose.
~ Added: hooks apply_filters(‘learnpress/profile/tab/enrolled/subtab-active’), apply_filters(‘learnpress/profile/tab-active’).
~ Modified: functions course_external_button, can_enroll_course with case course is external and purchased course.
~ Sanitize: email_footer, email_header.
~ Removed: some functions not use on file class-lp-email.php: “get_variable”, “get_object”, “get_common_template_data”, “data_to_variables”
~ Fix show explanation when reload site.
~ Fix show message: “Your order is waiting for processing” when LP Order status is processing.
~ Fixed: condition get link last item if all items completed – on button continue.
~ Fixed: show explanation.
~ Fixed: error user login with mail buy as Guest and LP Oder completed but can’t view course.
~ Fixed: error, sql injection, sanitize feature duplicate post (Course, Lesson, Quiz v.v…) (2021-10-15)

~ Fixed: security CVE-2021-39348, set sanitize for some params missing. (2021-09-15)

~ Fixed: some shortcode of latex show incorrect on question answer.
~ Added: hooks for course_continue_button, course_purchase_button, course_enroll_button.
~ Fixed: Fatal error LP_Abstract_User::get_course_data() when upgrade from LP3 to LP4.
~ Moved: function “Email hook notify” to hook “plugin_loaded”.
~ Added: hooks “learnpress/hook/before-addons-call-hook-learnpress-ready”.
~ Fixed security: Cross Site Scripting (XSS) on fields: External Link, Requirements, Target Audience, Key Features, FAQs.
~ Fixed: click button continue redirect wrong item.
~ Added: functions get_user_ids_enrolled, get_total_user_enrolled.
~ Fixed: error WP_Filesystem_Direct::exist not exist.

4.1.3 (2021-09-07)

~ Modified: Learnpress order status on Dashboard of WordPress.
~ Fixed: Widgets: Popular course, Feature course, Recent course, Course Progress, Course Info, Course Extra. All widget compatible with Elementor.
~ Fixed: Info Order have courses deleted on page Profile .
~ Fixed: error user can’t learn course set external link when Admin created Order manual Completed has this course.
~ Improve performance.
~ Modify function set cache.
~ Modify custom post type of LP.
~ Modify feature run progress on background.
~ Handle send all email of LP (New Order, Processing Order, Completed Order, Cancelled Order, Enrolled Course, Finished Course, Become An Instructor) on Background.
~ Remove child order when Admin created Order manual.
~ Modify enroll/buy course (user, guest).
~ Added wysiwyg field for metabox.
~ Compatible with MathJax-LateX plugin.


~ Modify, optimize Archive course page – call API – make faster
~ Added: back icon on item page
~ Fixed: some where call old function “get_profile_socials” not has param $user_id


~ Added: tool clean “table session” clean sessions expire after 1 days.
~ Fixed: not show button “continue” when course is blocked.
~ Fixed: course doesn’t has any item will be not show button “continue”, “finish”, “retake”.
~ Updated: file languages


~ Added: feature “Allow repurchase option”. Manager can set fixed: Reset/Keep course progress of course or allow student choice.
~ Fixed: show incorrect “Active Courses” on page profile.
~ Fixed: show fake student.
~ Fixed: duplicate label on form Register custom fields.


~ Added: option enable sticky navigation pagination when user answer question on quiz.
~ Fixed: set again current item when manager remove item current when edit course.
~ Modified: page profile – load ajax call API, show more info.
~ Fixed: can’t upgrade DB from 3 to 4 because user translate menu “LearnPress”.
~ Modified: Navigation on page quiz – change icon next, previous to text.
~ Fixed: function “duplicate course” not duplicate “answer option”
~ Fixed: Social icons on page profile when user view another user.
~ Fixed: on multiple site enable option “Registration is disabled” will not show form register on page Profile.


~ Added: feature “Allow Repurchase course”
~ Added: feature “No require enroll”
~ Fixed: Custom register fields error with some name not utf8
~ Added: field “confirm password” on register form profile
~ Fixed: file config.js permission 403 on some sites, change name to lp-configs.js
~ Fixed: When edit course, Admin can add item of another user


~ Fixed: CPU runs high
~ Fixed: “start quiz” error with some cases have cached.
~ Fixed: make Elementor pro show wrong: header, footer… (theme builder)


~ Fixed: Page profile not show login/register form
~ Fixed: translated text on js function “Quiz”
~ Fixed: js scroll to item viewing
~ Fixed: show html title question
~ Fixed: Order change status from “completed” to “pending” => user can’t learn courses in this order
~ Added: Option “Logout Redirect”
~ Fixed: Set default sidebar curriculum will be hide on mobile
~ Modify: Remove course on Overview tab when enable “Publish Profile”
~ Fixed: Elementor pro make archive course show wrong


~ Fixed: error “Duplicate entry” for case upgrade LP4, if user install LP4 and save setting before Upgrade Database
~ Fixed: get option ‘avatar_dimensions’ set default value if user not set
~ Fixed: get option ‘course_thumbnail_dimensions’ set default value if user not set
~ Modify template Profile
~ Fixed: tool “Reset course progress”
~ Fixed: get options “Courses per page”


~ Fixed: get option “archive_course_limit” default value if empty.
~ Fixed: Profile shortcode.
~ Fixed: error table “learnpress_user_itemmeta” doesn’t exist when install new.
~ Fixed: style comment function.
~ Added: form comment on course.
~ Fixed: js itemProgress undefined in Eduma theme


~ Fixed: tool “Reset course progress”
~ Fixed: tool “Reset user progress”
~ Added: tool “Create Database Indexes”
~ Fixed js button “Retake course” if you have more than one.
~ Added: tool “Re upgrade Database” ~ If DB upgrade not success
~ Fixed: show button finish when completed quiz – if assessment passed


~ Upgrade library chart.js to v3.2.1
~ Optimize query with cache get list questions on a quiz
~ Show content(description) on page LP Profile, LP Archive
~ Fixed: errors when activated “Metabox” plugin
~ Fixed: broken layout profile page when activated “All in one seo” plugin
~ Removed: tool “Remove current Data”
~ Removed: tool “Remove outdated Data”
~ Removed: tool “Repair database”


~ Fixed: upgrade LP error if mysql version < 5.7 – “Specified key was too long”.
~ Fixed: minor bugs.


~ Added new UI/UX for Quiz screen in frontend.
~ Added enable Gutenberg for lesson and quiz and question.
~ Added extra meta for course: Requirements, Target Audience, Key Features.
~ Improved quiz settings that made it simpler and easy to use.
~ Improved single course page.
~ Improved archive course page.
~ Restructure database tables.
~ Added some hooks/filters.

~ Fix compatible PHP 8.0.3
~ Fix Yoat SEO course category title not working

~ Fix: start quiz 404
~ Optimize

~ Fix minor bug
~ Optimize enroll course
~ Add cache get items’ course
~ Add reset progress by course_id
~ Fix “Enroll Button” is not appearing when disable “Auto Enroll” option

~ Fix header lesson style error on iphone
~ Fix scrollbar error some themes
~ Fix scroll js to item user viewing
~ Add filter ‘lp/email/type-order/object’, ‘lp/email/order/support_variable’

~ Add function Scan database if have not index in table will create
~ Add function Repurchase course when course finished or block duration expire
~ Fix function Statistics
~ Fix error content lesson conflict when activated elementor & yoast seo
~ Fix order status on Dashboard screen
~ Remove js scrollbar jquery
~ Add option ‘Enable Popup Confirm Finish Course, Complete Item
~ Add message block duration

~ Fix compatible PHP 8.0
~ Fix checkout message error
~ Optimize

~ Fix compatible WP 5.6
~ Fix error Yoast-Seo in course archive page
~ Error file global.js on ‘Twenty Seventeen’ theme
~ Fix error page course archive with YoastSeo
~ Fix count students enrolled course on list course backend
~ Fix toggle curriculum bar for right-to-left

~ Fix WPBakery load style inline on course’s item page
~ Fix make co-instructor not show list courses on backend
~ Fix miss lib vue js on LearnPress / Tools / Course page


~ Fix query get posts (courses, items courses) on Backend – multiple site
~ Fix error not same param on hook of Yoast SEO vs Yoast SEO premium
~ Fix security XSS function view_log
~ Fix check if get user on function learn_press_course_purchase_button() is null
~ Fix create statics pages LP on ‘lp setup’ page
~ Show message duplicate class RWMB_Field with another plugins

~ Fix question not show description

~ Fix save author id when add item when edit course
~ Fix title, description item course when install yoast seo plugin
~ Fix Retake when not enable duration expire
~ Fix function ‘Instructors Registration’
~ Add function Export order invoice PDF

~ Add Evaluate via questions
~ Add Evaluate via mark
~ Fixed duration expire course
~ Fixed link ‘Preview change’ button when edit item course
~ Fixed title of course archive page
~ Fixed if quiz has only one question will not show paginate

~ Fix missing file class-lp-course-database.php

~ Fixed run Elementor with question.
~ Fixed lesson preview not show button complete when user enrolled.
~ Add tag apply_filter ‘learn-press/order-item-not-course-id’ on received-order.
~ Add tag apply_filter ‘learn-press/tmpl-button-purchase-course’ before return button purchase course.
~ Optimize (permalink of items course).
~ Show finish course button when items of course completed although the course not passed.
~ Fixed explanation of question when user completed quiz.
~ Hide description of quiz when the quiz completed.

~ Fix can’t load items when select on Order Backend

~ Fixed error get_image() return bool not string on the file \templates\loop\course\thumbnail.php
~ Modify description for the function ‘External Link’
~ Fixed LP_Datetime error with date = ‘0000-00-00 00:00:00’
~ Fixed not show number Duration of Lesson when translate text
~ Fixed not send mail for instructor when have new order
~ Remove hook get avatar of Ultimate member plugin
~ Fixed get value with, height image_size on LP setting
~ Fixed security, clear sanitize
~ Wilfried, security ninja at Synacktiv
~ Fixed compatible with Elementor on items of course (lesson, quizz, question v.v…)

~ Fixed email setting not save tag html

~ Fix save settings


~ Fix sanitize

~ Fix add-on GradeBook

~ Revert library meta-box to v4.15.7

~ Fixed security: remove functions low security
~ Fixed some minor bugs
~ Fixed confusing “external link button” name default of course
~ Fixed filter items of course
~ Fixed create same name, slug page Checkout with Woo
~ Improve performance (2020.03.16)

~ Fixed security issues (CVE-2020-7916): uer logged can change role all users to Instructor
~ Fixed security issues (CVE-2020-7917): remove function low security
~ Fixed error preview Assignment

~ Fixed option Block Lessons not working (20.11.2019)

~ Fixed email doesn’t send.
~ Fixed some js errors.
~ Fixed js call twice times.
~ Fixed question doesn’t show after added to quiz.
~ Fixed ignore some metadata when copying course.
~ Fixed search orders in backend.

~ Fixed some errors.

~ Fixed css conflict with text block of vc.
~ Fixed show message ‘Out of stock’ for course reached limitation users.
~ Fixed show checked answers when review quiz.
~ Fixed review quiz option does not work properly.
~ Fixed update view after removing order’s items.

~ Fixed cannt add items to course.


~ Added option to exclude js/css libraries unnecessary (used in theme or other plugins).
~ Added alt prop to user profile avatar.
~ Fixed can’t next/prev questions when doing quiz.
~ Fixed wrong items navigation when learning course.
~ Fixed missing js of some pages in admin.
~ Fixed can’t close admin notices.
~ Updated envato api to newer version.

~ Added new strings for translating.
~ Corrected currency of Rwandan franc.
~ Fixed missing utils library when adding manually the orders.
~ Fixed upgrade function that doesn’t hide the message when it done.
~ Fixed can’t create new page in settings.

~ Fixed guest can not start quiz with no require enroll course option.
~ Fixed sql to filter orders by user ID.
~ Fixed issue of sending email when finished course: not correct Grade.
~ Fixed can not see Actions buttons when adding questions into the quiz.
~ Fixed changed the logic of Continue button for Course: continue with the next incomplete item.
~ Fixed wrong code to pick up instructor email.

~ Fixed load js missing dependencies and only in LP page.

~ Changed SQL to read course items by user item ID.
~ Improved performance in admin orders page.
~ Upgraded Vue/Vuex to latest version.
~ Added new theme to LP ad.

~ Fixed bug can’t access course after purchased.
~ Fixed bug user can’t redo quiz with option ‘Retake’ is 1.
~ Fixed bug can’t order questions by date in questions bank.
~ Extracted purchased date to date and time in order emails.
~ Show point of quiz in result page.

~ Fixed can not next/prev question when doing quiz.
~ Fixed get wrong total student of a course.
~ Updated language .POT file.


~ Fixed button for creating LP pages does not work properly.
~ Fixed warning when getting course items does not exists.
~ Added button to close warning for outdated templates.
~ Fixed search order not working.
~ Fixed get course items in incorrect order.
~ Fixed can’t start quiz when the course is not required enroll.
~ Fixed the amount number of enrolled users isn’t updated correctly.


~ Fixed cannot enroll course.
~ Fixed prev question button not working correct.
~ Fixed one extra answer option when add new question.
~ Fixed some deprecated keywords for PHP 7.3.
~ Fixed item is null for an item which doesn’t support it’s type (like assignment after deactivate).
~ Fixed bug the next and prev button not work in review mode of quiz.


~ Removed un-security code in PP library.
~ Fixed get curriculum item types doesn’t work properly.
~ Fixed sort sections/items wrong in SQL query.


~ Fixed review quiz doesn’t work properly.
~ Fixed table session create a lot of rows.
~ Fixed can’t enroll to a course purchased.
~ Removed unused functions.


~ Fixed can’t enroll course.
~ Fixed upload issue and drag user avatar on mobile.
~ Fixed course duration does not work properly.
~ Fixed question with multi language.
~ Fixed mail to user 2 times when completed course.


~ Fixed issue info of order added manual not correct.
~ Fixed issue course duplicated is published.
~ Fixed issue Course content column show as “No Content”.
~ Fixed some issues related to cache.


~ Fixed issue vulnerabilities.
~ Fixed issue related to object cache when doing quiz.
~ Fixed lesson 404 with Polylang.
~ Fixed PHP Fatal error class ‘LP_Plugins_Helper’ not found


~ Fixed minor bug in gradebook list in admin
~ Made hook learn-press/course-tabs work
~ Fixed bug: not auto complete quiz. Add 1 more filter hook for checking publicity in profile page
~ Fixed bug: auto enroll course without permission to enroll course
~ Changed filter tag for get_default_meta of lesson
~ Auto full-screen in mobile view
~ Fixed bug: wrong count number in No Preview at Lessons List back-end page
~ Fixed bug: Instructor user cannot see comments of lesson
~ Changed version for template files
~ Added base url for construct nav in user profile
~ Added param for get_nav method
~ Fixed bug: answer correct all question but quiz result is failed with 0%
~ Fixed small bug in quiz editor
~ Fixed bug: wrong count number of the courses in back end because of the status of preview course
~ Fixed bug: not redirect to correct page after logged in in Profile page
~ Fixed bug fatal error include file
~ Added icon for chat-type-format of content item
~ Fixed header-sent when log file


~ Added quiz option to minus a number of points for each wrong question in quiz
~ Added admin email to send to admin when an order is completed
~ Added button allows wp admin can send a request to subscriber
~ Improved auto redirecting to current question when user go to a quiz
~ Improved UI of course editor for RTL
~ Improved content of email sending to admin and instructor
~ Fixed page show 404 with pagination in courses page (conflict with WPML)
~ Fixed course price is still showing after user enrolled course
~ Fixed not auto redirecting to checkout after logged in
~ Fixed some issues made question can’t edit
~ Fixed issue for requesting to get related themes/addons in admin
~ Fixed some issues with content header when viewing in Safari
~ Fixed wrong ordering of course item when adding new
~ Fixed order for multiple users is not show in list of orders
~ Fixed some text is not translatable
~ Fixed breadcrumb not show page name when viewing archive course
~ Fixed archive course show header is title of first course