- 1 Introduction
- 2 Features
- 3 Compatibility
- 4 Usage
- 4.1 ShortCodes
- 4.2 Hooks
- 5 Notes
- 6 Development Status
- 7 Changelog
- 8 Licenses
For a LearnDash LMS based website I manage, the admin needed to manually copy paste all notes from her classrooms in another software used by the high-school, and which doesn’t have import CSV/SpreadSheets/File functionality.
It was not very handy because when you display LearnDash Quiz Results, you have to do open a page manually for each users, and the results are not filtered: you have all attempts to all quiz.
The main issue was that the admin needed to have reports for all users of a classroom/groups. Reports per groups of users. So it required to first filter the student list by groups and then open a page for each one of them, and do the selection + copy pasting, taking care of the date, of the attempt index for the quiz etc. What a pain.
I came up with the idea of displaying students results per group on a single page, with results filtered to only display the attempt of a quiz (which is, in the vast majority of cases, the best score). And to make the copy pasting more easier, a simple click on a cell would copy the result. Also, I added filters to be able to only display the desired time range. This was a huge time saver, and more user-friendly.
To push the thing even further, I decided to add just a touch of DataVisualization, by including interactive bar charts below the tables.
I realized it could be useful to others, so I took two days to make it sharp and clean: it is now ready to be a premium add-on for LearnDash!
Let’s discover the features and the look of the plugin.
Update: few months later, I still update and maintain this plugin!
- Interactive Tables per Users with
- Search filter
- Sort by Quiz Name, Quiz Date, Last User Date, Score
- Date filter (min and max)
- Interactive Results Charts per User
- Possibility to output several users table and charts at the same times with groups shortcode
- CSV Export
- Global copy button, or simply click on a cell to copy a value
- Display only most recent quiz attempt for each quiz
- Customizable chart with filter
- Update from Dashboard
- Charts and tables customizable with CSS. For the chart, see Highcharts doc.
Display a single user quiz results table
Display a group of users quiz results table
These attributes are common to all the previous shortcodes.
||integer or csv if type is set to users.||
||Required||Choose a group ID|
||Optional||Choose what kind of groups you want to display||
The following code snippet are the filters declaration, not usage examples. You can see examples usage on this Gist page.
apply_filter( 'learndash_users_results_datatable_data', $data_attr, $user_id );
apply_filters( 'learndash_users_results_user_display', $user_info );
apply_filters( 'learndash-users-results-users', $users, $tags );
apply_filters( 'learndash_users_results_quizzes', $quizzes, $user_id );
- Coded with WordPress conventions and standards in mind.
- Clean deactivation and uninstall process.
- Minimal default styles for better integration in your theme.
- Default sorting arrows for table required Font-Awesome, but you can replace them with custom CSS.
- Performance is highly dependent on your amount of data. The more quiz and users you have, the more it can take to load.
- Showcased on the official LearnDash Community Addons page: More LearnDash Add-Ons | LearnDash
No new features planned at this time. The plugin already satisfy more than what I initially needed. The only known issue is that I don’t have find a way to make datatables buttons (copy and successful copy) translatable in a WordPress-friendly way at this time.
Some customization ability (hooks, shortcodes attributes, plugin compatibility) can be suggested by users. Advanced customization/update may require custom development contract.
- Update bug fix
- New ld_group_quiz_table shortcode with table and graph
- Style charts by CSS
- Warning (backward compatible issue): ld_user_quiz_results shortcode is replaced by [[ld_group_quiz_results type=”current”]]
- New “id” types for shortcodes (you can put id of users as CSV)
- Charts lazy loading (now appears only if their source table is on screen)
- Charts columns colored according to “quiz-passed” status
- Prevent image loading by DataTables, now required Font-Awesome or custom CSS for sorting arrows display
- New filters for quiz and users
- Performance optimizations
- New filter to change user name display. See doc on the product page.
- Don’t load assets from CDN (all scripts and styles are now included).
- Small refactoring and optimizations
- Bug Fix
- All groups type attribute
- New translation strings
- Initial release
License are valid 365 days, from purchase date.