✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount

SleekView for LifterLMS: enrollments, progress & quiz attempts as tables

Read directly from lifterlms_quiz_attempts and lifterlms_user_postmeta. Build per-student progress views, instructor grading queues, and per-quiz score reports without scripting against the LifterLMS database.

♾️ Lifetime License available

SleekView table view for LifterLMS

Quiz attempts and progress, finally legible

LifterLMS stores quiz attempts in lifterlms_quiz_attempts and per-student/post relationships in lifterlms_user_postmeta. Course, lesson, and quiz definitions live as post types (course, lesson, llms_quiz) like any other CPT. The default LifterLMS reports give aggregates with limited per-attempt detail in one screen, and quiz-attempt history sits in a separate report from student progress — fine for occasional review, painful for daily ops.

SleekView reads the custom tables directly so instructors get a grading queue filtered to status = pending sorted by submission date, students get a per-attempt history visible during support calls, and L&D admins get course-completion plus quiz-pass-rate views filterable by cohort and time period. The pivot of lifterlms_user_postmeta turns long-format progress data into per-student progress columns — one row per student, columns for current lesson, completion percentage, last-active date, and any custom progress meta.

Inline status edits route through LifterLMS's quiz-attempt API where supported, so auto-grade, notification, and certificate-issuance hooks fire normally. Direct-table edits are available for back-fills where you don't want side effects. Membership and access-plan post types are exposed as standard CPTs; voucher tables (lifterlms_vouchers, lifterlms_voucher_code_redemptions) appear as separate views for redemption audits.

Workflow

Quiz-attempt and progress views without SQL

1

Read attempts and progress

Pick lifterlms_quiz_attempts for grading workflows or lifterlms_user_postmeta for course progress. Both are joinable to users and to the quiz/course post types.
2

Pivot user_postmeta

Long-format progress rows pivot into per-student columns at query time — current lesson, completion percentage, last-active. New progress meta keys surface automatically.
3

Filter and sort

Combine status (pass/fail/incomplete/pending), start_date, grade, and user_id in saved views. Grading queues, leaderboards, and stalled-learner reports use the same filter engine.
4

Edit through the API

Status updates and grade overrides route through the LLMS_Quiz_Attempt API so auto-grade, notification, and certificate hooks fire. Direct edits available for back-fills.

Sample columns

A typical LifterLMS quiz attempts view

Direct read from lifterlms_quiz_attempts joined with users and the quiz post.
Source: wp_lifterlms_quiz_attempts + wp_lifterlms_user_postmeta
Student Quiz Attempt Status Grade Submitted
alex@studio.co CSS Fundamentals 1 Pass 92 Apr 24
ria@design.io JS Basics 2 Pass 78 Apr 24
tom@hello.dev JS Basics 1 Fail 48 Apr 23
mia@brew.coop JS Basics 1 Incomplete Apr 23

Comparison

Default LifterLMS reports vs SleekView

Default LifterLMS reports

  • Default reports are aggregate — limited per-attempt detail in one screen
  • Quiz attempt history and student progress are in different reports
  • Filtering quiz attempts by status + start_date together isn't a saved view
  • Pivoting lifterlms_user_postmeta for at-a-glance progress requires SQL
  • Per-quiz grading queues aren't a first-class screen

SleekView

  • Per-student progress + quiz history in one combined view
  • Filter quiz attempts by status (pass/fail/incomplete) and date range
  • Pivot lifterlms_user_postmeta into per-student progress columns
  • Inline-edit quiz status for grading queues
  • Save named views per instructor or course

Features

What SleekView gives you for LifterLMS

Per-student progress combined with attempts

Build a single view joining lifterlms_user_postmeta (course progress) with lifterlms_quiz_attempts (scores) — one row per student per course, with progress percentage and quiz history visible together.

Grading queue for instructors

Filter quiz attempts to status = pending, sort by submission date, and review or grade inline. No clicking into each attempt — process the whole queue in one pass.

Score and difficulty analysis

Sort attempts by grade across quizzes, find low-scoring questions, and audit attempt counts per student. Surfaces course-design issues that aggregate reports hide.

Audience

Who uses SleekView for LifterLMS

Instructors

Grading queue with student, quiz, and attempt visible — process pending attempts in one pass. Inline grade entry routes through the API so notifications send and certificates issue.

L&D admins

Course completion and quiz pass rates filterable by cohort and time period. Compare cohorts side by side without exporting reports — useful for program-quality reviews.

Student support

Per-student attempt history at a glance during email or chat support. Course progress percentage and last-active date tell the story without opening multiple screens.

The bigger picture

Why LMS reports lag behind LMS data

LifterLMS focuses on the learner experience — clean course delivery, drip content, certificates, memberships — and the admin reflects that priority: aggregate reports for the L&D lead, per-student detail screens for support, instructor dashboards for grading. What gets less attention is the day-to-day operational view that doesn't fit any of those shapes: a grading queue across all courses sorted by oldest pending, a cohort comparison filtering attempts by user-id ranges, a per-question pass-rate audit that requires unpacking serialised answer data. These are real needs in any LMS once it scales past a single course, and they live in the data already — but the default screens don't compose them.

SleekView's job is to make the underlying tables addressable by the people who need them, without dropping into custom SQL or custom plugins. An instructor processes their pending queue in one pass, a course designer audits which questions get the most wrong answers, a customer-success rep pulls a learner's full attempt history during a chat. Same database, hooks intact when wanted, dramatically less context-switching.

Questions

Common questions about SleekView for LifterLMS

Yes — those are post types (course, lesson, llms_quiz), and SleekView treats them like any other CPT. Course progress and quiz attempts come from the custom tables, but the post-type joins let you show course title and quiz title alongside attempt data without manual lookups. Drag-and-drop columns from either source live alongside each other in one view.

 

lifterlms_quiz_attempts.questions stores per-question answers in a serialised column. SleekView can show that as a related child view per attempt, decoded into rows with question text, student answer, correct answer, and points awarded. Useful for grading manually-reviewed quizzes and for spotting questions where students consistently get the same wrong answer.

 

Where SleekView uses the LLMS_Quiz_Attempt API (status changes, grade overrides), the standard hooks fire — auto-grade, completion notifications, certificate issuance, group progress updates. Direct DB edits skip hooks by design for back-fill scenarios where you don't want side effects. Pick per view based on whether the operations should trigger downstream effects.

 

Yes. Memberships (llms_membership) and access plans (llms_access_plan) are post types with metadata, so SleekView shows them as standard CPT views. Voucher tables (lifterlms_vouchers, lifterlms_voucher_code_redemptions) are exposed if you need redemption audit views — useful for tracking promo-code usage or partner-program redemptions.

 

Yes — save views per role and filter to the courses or quizzes that instructor authored. The author-id filter on course or llms_quiz posts gives you per-instructor scoping naturally. Combined with WordPress capability gating, each instructor sees only their cohort's grading queue and progress data.

 

Yes — each subsite has its own LifterLMS tables, and SleekView reads the current site's tables only. Useful when an organisation runs separate LMS instances per department or per region. Cross-site aggregations aren't supported (each subsite is independent), but per-site dashboards behave as expected with role-scoped views per subsite.

 

Achievements and certificates are stored as posts (llms_achievement, llms_certificate) earned by users, with relationships in lifterlms_user_postmeta. SleekView exposes per-user achievement and certificate lists as either pivoted columns on a student view or as separate audit views — useful for spotting students close to a milestone for marketing follow-up.

 

Yes. Any SleekView view exports to CSV or JSON. Useful for a weekly grading log delivered to stakeholders, or for archiving graded attempts to an external learner-record store. The export respects the column choice in the view, so the result matches what you saw on screen — no surprise extra columns or missing fields.

 

Pricing

More than 1000+
happy customers

Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.

Starter

€79

EUR

per year

  • 3 websites
  • 1 year of updates
  • 1 year of support

Pro

€149

EUR

per year

  • Unlimited websites
  • 1 year of updates
  • 1 year of support

Lifetime ♾️

Most popular

€249

EUR

once

  • Unlimited websites
  • Lifetime updates
  • Lifetime support

...or get the Bundle Deal
and save €250 🎁

The Bundle (unlimited sites)

Pay once, own it forever

Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.

What’s included

  • SleekAI

  • SleekByte

  • SleekMotion

  • SleekPixel

  • SleekRank

  • SleekView