Contributors: pexelle
Donate link: https://pexelle.com
Tags: learndash, certificate, qr code, pexelle, share
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.2.6
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Connect LearnDash with Pexelle via QR codes. Share, verify, and export certificates with secure JSON/PDF handoff.
Pexelle for LearnDash provides a modern bridge between LearnDash and Pexelle using secure QR-based handoff.
It enables sharing and verifying certificates or exporting clean JSON/PDF for external integrations.
- 🔗 Seamless integration with LearnDash courses
- 📱 QR code login & sharing (device handoff support)
- 🎓 Certificate transfer to Pexelle infrastructure
- 🔒 Secure one-time login flow with approval system
This plugin is ideal for educators and institutions who want certificate verification to be modern, secure, and easy to share.
- Upload the plugin files to the
/wp-content/plugins/pexelle-learndashdirectory, or install directly from the WordPress plugin repository. - Activate the plugin through the Plugins screen in WordPress.
- Navigate to your LearnDash courses and configure QR sharing options.
- Done! Certificates can now be scanned and shared with Pexelle.
Yes. You must have LearnDash LMS installed and active.
Yes. The QR codes generate a short-lived, one-time token and require approval from the user’s main device before login is completed.
Yes. The plugin includes frontend CSS classes (psl-modal, psl-btn, etc.) that you can override in your theme or child theme.
Currently tested on single-site WordPress. Multisite support is planned.
- Example QR modal for certificate sharing
- Device handoff waiting screen
- Certificate transfer confirmation
- Sanitized all
$_GET['course_id']lookups withabsint( wp_unslash() )to resolve PHPCS security warnings. - Removed remaining usage of
suppress_filtersin WP_Query arguments (not allowed in WordPress.org standards). - Added targeted
phpcs:ignorecomments for LearnDash-requiredmeta_queryusage, with explanations. - Optimized fallback queries with
fields => 'ids', disabled caching, andno_found_rowsto minimize load. - Finalized short description under 150 characters for WordPress.org parser compliance.
- General compliance hardening: passed Plugin Check and WordPress.org PHPCS scans without blocking errors.
- Sanitized all
$_GETand$_POSTinputs withwp_unslash()+sanitize_text_field()/absint()for strict security compliance. - Removed
suppress_filters => truefrom WP_Query calls to meet WordPress.org and VIP coding standards. - Optimized query arguments (
fields => ids,no_found_rows,update_post_meta_cachedisabled) for performance. - Shortened plugin short description to be under 150 characters.
- Added inline PHPCS ignore comments for unavoidable
meta_queryusage (LearnDash dependency). - General code cleanup and compliance improvements for plugin repository review.
- Added full nonce verification and wp_unslash() handling for all AJAX and GET/POST inputs.
- Secured Magic Login flow with bridge nonce to prevent CSRF-style misuse.
- Updated frontend JS (
psl-frontend.js) to include and sendajaxNoncewith AJAX requests. - Optimized database queries with
fields => ids, disabled meta/term cache for faster response. - Improved code compliance with WordPress Plugin Check (PHPCS).
- Maintenance release — focused on passing automated + manual plugin review checks.
- Aligned Text Domain with plugin slug:
pexelle-for-learndash. - Removed discouraged
load_plugin_textdomain()(WP ≥ 4.6 auto-loads translations). - Ensured
/languages/directory exists (POT scaffold ready). - Updated all i18n calls to the new text domain.
- Maintenance release to pass automated plugin checks.
- Added secure token bridge for JSON/PDF certificate handoff.
- Improved frontend modal styling.
- Added countdown timer to waiting page.
- Fixed minor LearnDash course ID parsing bug.
- Updated translations.
- Initial public release with QR-based certificate sharing.
Important security and UX improvements. Please update immediately.