SleekView for LearnDash: user activity & quiz attempts as tables
Read directly from learndash_user_activity and learndash_pro_quiz_statistic. Build per-student progress tables, quiz score leaderboards, and stalled-learner reports in one screen — without ProPanel.
♾️ Lifetime License available
Course progress as a real table, not a series of profiles
LearnDash stores activity in learndash_user_activity with metadata in learndash_user_activity_meta, and quiz results across the learndash_pro_quiz_* family of tables. The default LearnDash reports are aggregate-shaped and pre-defined; ProPanel adds richer visualisation but still works on a fixed schema. Anything you want shaped differently — per-student progress joined with quiz history, stalled-learner queues, per-question difficulty audits — needs custom queries.
SleekView reads the activity and quiz tables directly so instructors and L&D admins can build the views their workflows actually need. A per-student progress table joins course, lesson, topic, and quiz activity into one row per student per course. A quiz leaderboard sorts learndash_pro_quiz_statistic by score across the catalogue. A stalled-learner report filters where activity_status != 1 and activity_started is older than a chosen threshold — find learners who began but never finished and follow up before drop-off becomes attrition.
Inline edits to activity status route through LearnDash's APIs where they support the change (course/lesson/topic completion, quiz grading), so the standard hooks fire and any integrations listening run normally. Direct-table edits skip hooks by design for back-fill scenarios where you don't want notifications. Multisite installations get per-subsite scoped views automatically.
Workflow
Build the LearnDash views ProPanel doesn't ship
Read the activity tables
learndash_user_activity as the base. SleekView joins learndash_user_activity_meta for score, points, and any custom activity meta added by your installation.
Add quiz statistics
learndash_pro_quiz_statistic by user and quiz to surface scores alongside completion. For per-question detail, expose learndash_pro_quiz_statistic_ref as a related child view.
Filter by progress state
activity_type, activity_status, activity_started, and activity_completed in saved views. Stalled-learner queries become a one-click filter.
Save per-role views
Sample columns
A typical LearnDash activity view
learndash_user_activity with score pulled from _meta.
wp_learndash_user_activity + wp_learndash_user_activity_meta + wp_learndash_pro_quiz_statistic
| User | Type | Course/Quiz | Status | Score | Updated |
|---|---|---|---|---|---|
| alex@studio.co | Lesson | Intro to Photoshop | Completed | — | Apr 24 |
| ria@design.io | Quiz | CSS Fundamentals | Completed | 92% | Apr 24 |
| tom@hello.dev | Course | Full Stack Bootcamp | In Progress | — | Apr 23 |
| mia@brew.coop | Quiz | JS Basics | Failed | 48% | Apr 23 |
Comparison
Default LearnDash reports vs SleekView
Default LearnDash reports
- Reports are pre-shaped — limited column choice
- Per-student progress and quiz history live in different screens
- Stalled-learner reports require ProPanel or custom queries
-
Quiz score data in
learndash_pro_quiz_statisticisn't easy to surface alongside activity - Bulk operations on activity records aren't available
SleekView
- Per-student progress table joining course, lesson, topic, quiz activity
-
Quiz score leaderboard from
learndash_pro_quiz_statistic -
Filter incomplete activity by
activity_startedto find stalled learners -
Surface
activity_metavalues (score, points) as columns - Save views per role (instructor, admin, support)
Features
What SleekView gives you for LearnDash
Per-student progress views
Filter learndash_user_activity by user_id and group by activity_type — one table that shows everything that user has done across courses, lessons, topics, and quizzes.
Quiz score leaderboards
Sort learndash_pro_quiz_statistic by score across courses or per quiz. Surface attempts and pass rates inline; spot top performers and learners struggling with specific topics.
Stalled-learner reports
Filter activity where activity_status != 1 and activity_started is over N days ago — find learners who started but never finished. Trigger follow-up before drop-off becomes attrition.
Audience
Who uses SleekView for LearnDash
Instructors
Per-course completion table sorted by who's stalled — easy to identify learners who need a nudge. Grading queue filters pending quiz attempts to a clean review list.
L&D admins
Course-completion rates and quiz pass rates across the catalogue, filtered by date range. Per-question difficulty reports help spot quiz items that need rewriting.
Customer success
Per-student activity history visible during support calls — no jumping between profile screens. Last-active date plus current course stage tells the story in one row.
The bigger picture
Why LMS data needs row-level workspaces
Learning programs live or die by completion rates, and completion rates depend on early intervention with stalled learners. The default LearnDash reports surface aggregates (course pass rate, average score) that are useful for executive review but useless for a customer-success rep who needs to know which specific learners stalled in week two and what they were doing when they stopped. ProPanel improves the situation but still works on a fixed schema — adding a custom column or filtering by an arbitrary activity_meta value isn't a five-minute config change.
Instructors grading manually want a queue of pending submissions sorted by oldest first, not a per-quiz drill-down. L&D admins doing course design want per-question pass rates to identify ambiguous quiz items — that's a join across learndash_pro_quiz_statistic_ref and the question definitions, not a built-in report. SleekView's job is to expose the underlying tables as a composable workspace so each role can build the view their job actually requires.
Same data, no ProPanel dependency, dramatically more flexibility.
Questions
Common questions about SleekView for LearnDash
No. SleekView reads the underlying tables directly — learndash_user_activity, learndash_user_activity_meta, the learndash_pro_quiz_* family — so you don't need ProPanel to get the activity and quiz views described here. ProPanel adds visualisation; SleekView adds composability. The two can coexist if you want both, but neither requires the other.
Yes. Course progress is computed from learndash_user_activity rows where activity_type is course (with steps tracked as related lesson and topic activity rows). SleekView aggregates them into a per-student progress percentage column. The aggregate is heavier than direct columns, so opt in per view rather than including it in every list.
Quiz answers live in learndash_pro_quiz_statistic_ref, linking each attempt to per-question answers. SleekView exposes that as a related child table so you can drill from a quiz score down to what the student actually answered. Useful for grading manually-reviewed quizzes and for spotting questions where most students get the same wrong answer.
Where SleekView uses LearnDash's APIs (course completion, lesson completion, topic completion, quiz grading), the standard hooks fire — certificates issue, notifications send, group progress updates as expected. Direct table edits skip hooks by design for back-fill scenarios where you don't want notifications. Pick per-view based on whether side effects are wanted.
 
Yes. Group-scoped views are supported — filter activity by user IDs that belong to a given groups custom post type membership. Useful for cohort-based programs (corporate clients with sub-groups, university course sections) where reporting needs to be scoped per group rather than across the whole site. Group leaders can have their own SleekView gated to their group.
Yes. SleekView exports any view to CSV or JSON, so you can hand reports to external tools (Tableau, BI dashboards, learner-record stores) without recreating the query each time. Useful when an L&D team needs to combine LearnDash data with HRIS data — export filtered SleekView output, join externally, and the LearnDash side stays consistent across exports.
 
Queries hit indexed columns (user_id, activity_type, activity_status, activity_started). Pagination is keyset where possible. Aggregate columns (course progress percentage) are opt-in per view since they're heavier — keep them off list views where you're scanning many rows, and on per-student detail views where the aggregate cost is bounded by one user.
Yes — pivot learndash_pro_quiz_statistic with student rows and quiz columns to get a gradebook-style view. The pivot is per-cohort to keep it readable; full-catalogue pivots get unwieldy quickly. Combined with the per-question difficulty view from learndash_pro_quiz_statistic_ref, instructors get both ends of the data they need for course iteration.
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.
Lifetime ♾️
Most popular
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
€749
Continue to checkout