AccessTrace for LearnDash

説明

Know exactly what happened to a student’s course access, who or what caused it, and whether it looks right.

When a student says “I lost access to my course” or “I paid but I’m not enrolled”, AccessTrace for LearnDash gives you the answer in seconds. It keeps a clear, searchable record of every enrollment and unenrollment on your site, shows the likely cause, and tells you whether the change makes sense.

It is a passive tool: it only watches and records. It never enrolls or unenrolls anyone, restores access or changes expiry dates, and a logging problem can never block a student’s enrollment.

What you get

  • A complete enrollment history. Every enrollment and unenrollment is recorded with the student, course, date and time, and who or what made the change.
  • The cause, not a guess. See whether a change came from an administrator, a WooCommerce purchase or refund, access expiry, a scheduled task, WP-CLI or the REST API. When the cause can’t be proven it says “Unknown” instead of making something up.
  • Valid, Invalid or Unknown at a glance. Each event is checked and labelled. “Invalid” means something looks wrong, for example a student was unenrolled while their access was still active and no administrator did it. It is worth a look, not proof of a bug.
  • Fast search and filters. Search by student name, username, email or ID, or by course. Filter by action, status, source and date range. Active filters appear as chips you can remove one at a time.
  • Event details. Open any event to see the full story: cause, trigger, who acted, status and the reason for it.
  • Export to CSV. Download exactly what you are looking at, to share with your team or a support agent. Opens correctly in Excel, Numbers and Google Sheets.

Email alerts for administrators

Get told when something needs attention, without watching the log.

  • Turn alerts on or off with one switch.
  • Choose who receives them (defaults to the site admin email).
  • Choose what triggers an email: invalid events only (recommended), unenrollments, enrollments, unknown events, or everything. Optionally limit alerts to chosen sources.
  • Receive each alert immediately, or as an hourly or daily summary.
  • A rate limit protects your inbox during bulk imports: extra events arrive together in one summary email.
  • Write your own subject and message with simple placeholders such as {user_name}, {course_title}, {action}, {status} and {log_url}. Choose plain text or HTML, and optionally set the sender name and address.
  • The student’s email address is hidden in alerts unless you choose to show it.
  • Send yourself a test email to see exactly how alerts will look.

Emails go out through your own site’s mail setup. Nothing is sent to any outside service.

Stay in control of your data

  • Pause logging, or choose whether to record enrollments, unenrollments or both.
  • Ignore specific courses.
  • Delete old events automatically after 30 days up to 2 years, or keep them forever.
  • Choose what happens on uninstall: keep your logs (default) or remove everything.
  • Optionally erase a user’s events when their account is deleted.
  • Works with the WordPress Export and Erase Personal Data tools, and adds suggested text for your privacy policy.

Built to stay out of the way

  • No effect on page speed. Nothing runs unless course access actually changes.
  • The log and the export stay fast, even with a large history.
  • Only administrators can see the log and settings (developers can change this with a filter).
  • Never stores passwords, IP addresses or email addresses in the log.

This plugin is an independent project. It is not affiliated with, endorsed by or sponsored by LearnDash, which is a trademark of its respective owner.

Need help, a custom integration, or want to support development? Get in touch.

Support: Support – wpforwards.com

Requirements

  • WordPress 5.8+
  • PHP 7.4+
  • LearnDash (LearnDash tested up to: 5.2.0). If LearnDash is missing the plugin does not fatal, shows an admin notice, and starts logging once LearnDash becomes available.

スクリーンショット

インストール

  1. Upload the folder to /wp-content/plugins/ and activate.
  2. Open Enrollment Logs > View Logs to see enrollment events as they happen.
  3. Open Enrollment Logs > Logs Settings to turn on admin email alerts and choose your logging and privacy options.

Logging starts when the plugin is activated. Changes made before that cannot be reconstructed, because LearnDash does not keep that history.

FAQ

Will this plugin change or interfere with my students’ enrollments?

No. It is strictly read-only: it never enrolls, unenrolls, restores access or changes expiry dates, and it deliberately avoids LearnDash functions that can trigger access changes as a side effect. It only listens to the events LearnDash already fires and writes a record of them. If anything goes wrong while logging, the error is caught, so the student’s enrollment always completes exactly as it would without the plugin.

How do I find out why a student lost (or gained) access to a course?

Go to Enrollment Logs > View Logs and search for the student’s name, username, email or ID, or for the course. Each row shows when the change happened, whether it was an enrollment or unenrollment, what caused it and whether the result looks correct. Click the date to see the full details, including which user performed the action.

What do Valid, Invalid and Unknown mean?

The plugin checks whether each change makes sense at the moment it happens. Valid means the result is consistent with the event, for example a student was unenrolled because their access had expired. Invalid means something conflicts, for example a student was unenrolled while their access was still active and no administrator did it. That is worth investigating, but it is not proof of a bug. Unknown means there was not enough information to judge safely, which is common for enrollments made by payment or membership plugins. The plugin never guesses: an unenrollment is never assumed wrong and an enrollment is never assumed correct.

Which enrollments are logged, and will I see changes from before I installed it?

Every change that goes through LearnDash’s course access system is logged: manual enrollment by an administrator, self-enrollment, purchases through WooCommerce or LearnDash payments, memberships, group enrollment, imports, custom code, the REST API, WP-CLI and access expiry. The cause is shown when it can be proven; otherwise it is shown as Unknown. Logging starts when the plugin is activated; earlier changes cannot be reconstructed because LearnDash does not keep that history.

How do I get an email when something goes wrong?

Go to Enrollment Logs > Logs Settings > Email Notifications, switch on “Enable admin emails” and choose what should trigger an alert. Invalid events only is the recommended setting. Use “Send test email” to check that your site can deliver mail.

I’m not getting the emails. What should I check?

Check the recipients, check your spam folder, and use “Send test email”. The plugin sends mail through your site’s normal WordPress mail setup, so if other emails from your site (such as password resets) don’t arrive either, install an SMTP plugin or ask your host to fix outgoing mail.

Will I get flooded with emails during a bulk import?

No. A per-hour rate limit (20 by default) holds back extra alerts and sends them together in one summary email. You can also switch to an hourly or daily summary.

Why does one WooCommerce purchase show two events, an unenrollment and then an enrollment?

When a student who is already enrolled, with course access that has expired, buys the same course again, LearnDash’s own WooCommerce integration removes the old access and grants it again so the access period restarts. Both changes really happen, so both are logged. The plugin shows them as source WooCommerce, with the unenrollment labelled “Access reset (repeat purchase)” and the enrollment labelled “Purchase”. A first purchase by a new student produces a single enrollment.

Will it slow down my site, and what data does it store?

There is no noticeable impact. Nothing runs on page loads where course access does not change; when it does, the event is saved once, with a single database insert at the end of the request. The log stores only IDs (student, course and the user who acted), the action, its cause and status, and a little technical context. It does not store passwords, IP addresses or email addresses, and only administrators can view it.

Can I remove the data when I delete the plugin?

Yes. By default your logs are kept, because they are an audit trail. To remove everything, tick “Delete data on uninstall” in Logs Settings > Privacy & Data before deleting the plugin.

Can I delete old logs automatically?

Yes. In Logs Settings > Logging choose “Auto-delete old logs” (30 days to 2 years). The default is to keep logs forever.

Does it support privacy requests (GDPR)?

Yes. It works with the WordPress Export and Erase Personal Data tools, can erase a user’s events when their account is deleted, and adds suggested text for your privacy policy.

Who can see the logs and settings?

Users with the manage_options capability (administrators). Developers can change this with the evlfl_capability filter.

評価

このプラグインにはレビューがありません。

貢献者と開発者

AccessTrace for LearnDash はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“AccessTrace for LearnDash” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログを RSS で購読してみてください。

変更履歴

1.0.1

  • Minor fixes and readme updates.

1.0.0

  • Initial release.