{"id":318130,"date":"2026-07-23T12:38:49","date_gmt":"2026-07-23T12:38:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/unifylms\/"},"modified":"2026-08-09T13:11:27","modified_gmt":"2026-08-09T13:11:27","slug":"courseglade-lms","status":"publish","type":"plugin","link":"https:\/\/hy.wordpress.org\/plugins\/courseglade-lms\/","author":14991161,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0.3","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"CourseGlade LMS","header_author":"devitemsllc","header_description":"A complete Learning Management System for WordPress with courses, quizzes, multi-instructor support, and built-in payments.","assets_banners_color":"849cd1","last_updated":"2026-08-09 13:11:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/devitems.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":187,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"devitemsllc","date":"2026-07-23 12:38:21"},"1.0.1":{"tag":"1.0.1","author":"devitemsllc","date":"2026-07-30 12:48:05"},"1.0.2":{"tag":"1.0.2","author":"devitemsllc","date":"2026-08-09 13:11:27"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3620020,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3620020,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3620020,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3620020,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"courseglade\/course-template":{"name":"courseglade\/course-template","title":"Courseglade Course Template"}},"tagged_versions":["1.0.0","1.0.1","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3620020,"resolution":"1","location":"assets","locale":"","width":1600,"height":900},"screenshot-10.jpg":{"filename":"screenshot-10.jpg","revision":3620020,"resolution":"10","location":"assets","locale":"","width":1600,"height":900},"screenshot-11.jpg":{"filename":"screenshot-11.jpg","revision":3620020,"resolution":"11","location":"assets","locale":"","width":1600,"height":900},"screenshot-12.jpg":{"filename":"screenshot-12.jpg","revision":3620020,"resolution":"12","location":"assets","locale":"","width":1600,"height":900},"screenshot-13.jpg":{"filename":"screenshot-13.jpg","revision":3620020,"resolution":"13","location":"assets","locale":"","width":1600,"height":900},"screenshot-14.jpg":{"filename":"screenshot-14.jpg","revision":3620020,"resolution":"14","location":"assets","locale":"","width":1600,"height":900},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3620020,"resolution":"2","location":"assets","locale":"","width":1600,"height":900},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3620020,"resolution":"3","location":"assets","locale":"","width":1600,"height":900},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3620020,"resolution":"4","location":"assets","locale":"","width":1600,"height":900},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3620020,"resolution":"5","location":"assets","locale":"","width":1600,"height":900},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3620020,"resolution":"6","location":"assets","locale":"","width":1600,"height":900},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3620020,"resolution":"7","location":"assets","locale":"","width":1600,"height":900},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3620020,"resolution":"8","location":"assets","locale":"","width":1600,"height":900},"screenshot-9.jpg":{"filename":"screenshot-9.jpg","revision":3620020,"resolution":"9","location":"assets","locale":"","width":1600,"height":900}},"screenshots":{"1":"Admin dashboard \u2014 revenue, top courses, and quick actions","2":"Admin \u2014 Course Management list","3":"Admin \u2014 Students list","4":"Admin \u2014 Orders list","5":"Course builder \u2014 general course settings","6":"Course builder \u2014 drag-and-drop curriculum editor","7":"Course builder \u2014 quiz question editor","8":"Course catalog \u2014 browse all published courses","9":"Single course page \u2014 curriculum, pricing, and enroll button","10":"Learning mode \u2014 lesson player with progress tracking","11":"Quiz player \u2014 interactive question types","12":"Instructor dashboard \u2014 earnings and student overview","13":"Instructor public profile","14":"Checkout page"}},"plugin_section":[],"plugin_tags":[7114,5298,18342,2195,26514],"plugin_category":[47],"plugin_contributors":[126991],"plugin_business_model":[],"class_list":["post-318130","plugin","type-plugin","status-publish","hentry","plugin_tags-courses","plugin_tags-education","plugin_tags-elearning","plugin_tags-lms","plugin_tags-online-courses","plugin_category-education-and-support","plugin_contributors-devitemsllc","plugin_committers-devitemsllc"],"banners":{"banner":"https:\/\/ps.w.org\/courseglade-lms\/assets\/banner-772x250.jpg?rev=3620020","banner_2x":"https:\/\/ps.w.org\/courseglade-lms\/assets\/banner-1544x500.jpg?rev=3620020","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/courseglade-lms\/assets\/icon-128x128.png?rev=3620020","icon_2x":"https:\/\/ps.w.org\/courseglade-lms\/assets\/icon-256x256.png?rev=3620020","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-1.jpg?rev=3620020","caption":"Admin dashboard \u2014 revenue, top courses, and quick actions"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-2.jpg?rev=3620020","caption":"Admin \u2014 Course Management list"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-3.jpg?rev=3620020","caption":"Admin \u2014 Students list"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-4.jpg?rev=3620020","caption":"Admin \u2014 Orders list"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-5.jpg?rev=3620020","caption":"Course builder \u2014 general course settings"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-6.jpg?rev=3620020","caption":"Course builder \u2014 drag-and-drop curriculum editor"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-7.jpg?rev=3620020","caption":"Course builder \u2014 quiz question editor"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-8.jpg?rev=3620020","caption":"Course catalog \u2014 browse all published courses"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-9.jpg?rev=3620020","caption":"Single course page \u2014 curriculum, pricing, and enroll button"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-10.jpg?rev=3620020","caption":"Learning mode \u2014 lesson player with progress tracking"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-11.jpg?rev=3620020","caption":"Quiz player \u2014 interactive question types"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-12.jpg?rev=3620020","caption":"Instructor dashboard \u2014 earnings and student overview"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-13.jpg?rev=3620020","caption":"Instructor public profile"},{"src":"https:\/\/ps.w.org\/courseglade-lms\/assets\/screenshot-14.jpg?rev=3620020","caption":"Checkout page"}],"raw_content":"<!--section=description-->\n<p>CourseGlade is a full-featured Learning Management System plugin for WordPress. Build and sell online courses, manage students and instructors, and deliver engaging learning experiences \u2014 all from your WordPress site.<\/p>\n\n<p><strong>Key Features<\/strong><\/p>\n\n<ul>\n<li>7 quiz question types (multiple choice, true\/false, fill in the blank, matching, ordering, short answer, essay)<\/li>\n<li>Multi-instructor support with earnings and withdrawal management<\/li>\n<li>Become-an-instructor application flow with admin approval<\/li>\n<li>Public instructor profiles at \/instructor\/{username}\/<\/li>\n<li>Built-in payment processing with Stripe, WooCommerce, Manual, and Free (zero-price) gateways<\/li>\n<li>Coupons and discounts, plus free course enrolment<\/li>\n<li>Student dashboard with progress tracking and a course wishlist<\/li>\n<li>Course reviews and discussion boards<\/li>\n<li>Course categories, tags, and difficulty levels<\/li>\n<li>Transactional email notifications (enrolment, course completion, orders, instructor applications)<\/li>\n<li>Maintenance mode for your learning site<\/li>\n<li>Shortcodes for course grids, dashboard, checkout, and authentication pages<\/li>\n<\/ul>\n\n<p><strong>More Free Features<\/strong><\/p>\n\n<ul>\n<li>Drag-and-drop course builder with sections, lessons, and quizzes<\/li>\n<li>Video lessons from YouTube, Vimeo, self-hosted, or any oEmbed provider<\/li>\n<li>Distraction-free learning mode with a curriculum drawer and progress tracking<\/li>\n<li>Course catalog with search, category filtering, and pagination<\/li>\n<li>Custom student and instructor roles with granular capabilities<\/li>\n<li>Custom avatar uploads (falls back to Gravatar)<\/li>\n<li>React-based admin with a clean dashboard, orders, students, and reports<\/li>\n<li>Fully translation-ready (<code>.pot<\/code> included) and block-theme compatible<\/li>\n<\/ul>\n\n<p><strong>CourseGlade Pro \u2014 Premium Add-ons<\/strong><\/p>\n\n<p>CourseGlade Pro extends the free plugin with independently toggleable add-ons (requires the separate CourseGlade LMS Pro plugin):<\/p>\n\n<ul>\n<li><strong>Certificates<\/strong> \u2014 auto-issue completion certificates with custom templates and shareable, verifiable certificate numbers<\/li>\n<li><strong>Assignments<\/strong> \u2014 file-upload assignments with instructor grading and feedback<\/li>\n<li><strong>Content Drip<\/strong> \u2014 release lessons and modules on a schedule or by enrolment date<\/li>\n<li><strong>Leaderboard &amp; Gamification<\/strong> \u2014 award points and badges, and rank learners<\/li>\n<li><strong>Gradebook<\/strong> \u2014 a per-student grade overview across quizzes and assignments<\/li>\n<li><strong>Advanced Email<\/strong> \u2014 broadcast campaigns, a send queue, and expanded notification events<\/li>\n<li><strong>Course Bundles<\/strong> \u2014 sell groups of courses together as a single product<\/li>\n<li><strong>Advanced Reports<\/strong> \u2014 detailed revenue, enrolment, course, and instructor analytics<\/li>\n<li><strong>Live Classes (Zoom &amp; Google Meet)<\/strong> \u2014 schedule and host live sessions with per-instructor connections<\/li>\n<li><strong>Google Classroom<\/strong> \u2014 import and sync course rosters<\/li>\n<li><strong>White Label<\/strong> \u2014 rebrand the admin with your own name, logo, and colours<\/li>\n<\/ul>\n\n<h3>Source Code<\/h3>\n\n<p>The admin interface is built with React (Vite). The full, unminified source code is included in the plugin under <code>assets\/admin\/src\/<\/code>. The compiled output is at <code>assets\/admin\/build\/<\/code>.<\/p>\n\n<p>To rebuild the admin assets:<\/p>\n\n<ol>\n<li><code>cd assets\/admin<\/code><\/li>\n<li><code>npm install<\/code><\/li>\n<li><code>npm run build<\/code><\/li>\n<\/ol>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following external services:<\/p>\n\n<p><strong>Stripe<\/strong>\nUsed to process course payments when the Stripe gateway is enabled.\n- Data sent: payment amount, currency, customer email, course details\n- When sent: only during checkout when a student purchases a course\n- Service URL: https:\/\/api.stripe.com\n- Terms of Service: https:\/\/stripe.com\/legal\n- Privacy Policy: https:\/\/stripe.com\/privacy<\/p>\n\n<p><strong>YouTube<\/strong>\nUsed to embed lesson videos when an instructor provides a YouTube video URL for a lesson.\n- Data sent: standard browser request (IP address, browser info) when the video is loaded\n- When sent: only when a student views a lesson that has a YouTube video URL set\n- Service URL: https:\/\/www.youtube.com\n- Terms of Service: https:\/\/www.youtube.com\/t\/terms\n- Privacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Vimeo<\/strong>\nUsed to embed lesson videos when an instructor provides a Vimeo video URL for a lesson.\n- Data sent: standard browser request (IP address, browser info) when the video is loaded\n- When sent: only when a student views a lesson that has a Vimeo video URL set\n- Service URL: https:\/\/vimeo.com\n- Terms of Service: https:\/\/vimeo.com\/terms\n- Privacy Policy: https:\/\/vimeo.com\/privacy<\/p>\n\n<p><strong>oEmbed video providers<\/strong>\nWhen an instructor sets a lesson video to the \"Embed\" source type, the plugin uses WordPress's built-in oEmbed (<code>wp_oembed_get()<\/code>) to fetch the embed markup from the provider of the URL the instructor supplies (any provider on the WordPress oEmbed allowlist, e.g. Dailymotion, Wistia, TED).\n- Data sent: the video URL the instructor entered, plus a standard server request, to the matching provider\n- When sent: server-side, when a lesson with an \"Embed\" video is rendered\n- Service URL: depends on the provider URL the instructor supplies\n- Terms \/ Privacy: governed by the chosen provider's own terms and privacy policy<\/p>\n\n<p><strong>Gravatar<\/strong>\nUsed to display user avatars (students and instructors) when a custom avatar has not been uploaded. This is the standard WordPress avatar service.\n- Data sent: an MD5 hash of the user's email address\n- When sent: when an avatar is rendered for a user who has no custom uploaded avatar\n- Service URL: https:\/\/gravatar.com\n- Terms of Service: https:\/\/wordpress.com\/tos\/\n- Privacy Policy: https:\/\/automattic.com\/privacy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>courseglade-lms<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install via the WordPress plugin installer.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Navigate to <strong>CourseGlade<\/strong> in the admin menu to complete setup.<\/li>\n<li>Configure payment gateways under <strong>CourseGlade \u2192 Settings \u2192 Payments<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20courseglade%20work%20with%20any%20wordpress%20theme%3F\"><h3>Does CourseGlade work with any WordPress theme?<\/h3><\/dt>\n<dd><p>Yes. CourseGlade includes its own frontend templates that work with any theme. Block-theme support is included.<\/p><\/dd>\n<dt id=\"what%20payment%20gateways%20are%20supported%3F\"><h3>What payment gateways are supported?<\/h3><\/dt>\n<dd><p>Stripe, WooCommerce, Manual payment, and Free (zero-price) enrolment are supported in the free version.<\/p><\/dd>\n<dt id=\"can%20i%20have%20multiple%20instructors%3F\"><h3>Can I have multiple instructors?<\/h3><\/dt>\n<dd><p>Yes. You can invite instructors, set commission rates, and manage withdrawal requests from the admin.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20translation-ready%3F\"><h3>Is the plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes. All strings use the <code>courseglade-lms<\/code> text domain and a <code>.pot<\/code> file is included in <code>languages\/<\/code>.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>Yes. CourseGlade LMS Pro adds premium add-ons \u2014 Certificates, Assignments, Content Drip, Leaderboard &amp; Gamification, Gradebook, Advanced Email, Course Bundles, Advanced Reports, Live Classes (Zoom &amp; Google Meet), Google Classroom, and White Label. Each can be enabled or disabled independently. The free plugin is fully functional on its own.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<p><strong>New &amp; improved<\/strong>\n* Course pages now use your theme's fonts. The plugin no longer forces its own font family on the frontend, so changing fonts in your theme or global styles takes effect everywhere.<\/p>\n\n<p><strong>Fixes<\/strong>\n* The course builder now sends the course along with content drip requests, so drip rules can be set on a lesson while it is still being created.<\/p>\n\n<h4>1.0.1<\/h4>\n\n<p><strong>Security<\/strong>\n* Restricted the enrollment REST endpoints to administrators (were reachable with an instructor-level capability).\n* Escaped instructor-application data returned by the REST API.\n* Closed several per-course ownership gaps and stopped quiz endpoints exposing answer keys.\n* Added login throttling; the instructor user-picker now searches by name only and no longer exposes emails.<\/p>\n\n<p><strong>New &amp; improved<\/strong>\n* Course cards show the instructor's avatar linked to their public profile.\n* Maintenance mode now also covers the course archive and category\/tag\/difficulty pages, with a new filter to adjust its scope.\n* Real avatars now appear in quiz grading, submissions, and order details.<\/p>\n\n<p><strong>Fixes<\/strong>\n* Scheduled maintenance tasks (cache cleanup, stale-order cancellation, enrollment expiry, stats refresh) now actually run on cron.\n* Made order and withdrawal status transitions atomic to prevent duplicate processing.\n* Blocked creating a duplicate order while one is still pending for the same course.\n* Numerous settings, learning-mode, and responsive-layout fixes.<\/p>\n\n<p><strong>Performance<\/strong>\n* Removed N+1 queries from the instructor and order lists and batched dashboard revenue calculations.\n* Per-order options are no longer autoloaded on every request.<\/p>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"A complete Learning Management System for WordPress with courses, quizzes, multi-instructor support, and built-in payments.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/318130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=318130"}],"author":[{"embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devitemsllc"}],"wp:attachment":[{"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=318130"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=318130"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=318130"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=318130"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=318130"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=318130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}