{"id":46350292,"url":"https://github.com/xertcoin-com/learndash-plugin-wordpress","last_synced_at":"2026-03-04T23:01:25.126Z","repository":{"id":322230280,"uuid":"1056858970","full_name":"XertCoin-com/learndash-plugin-wordpress","owner":"XertCoin-com","description":"Connect LearnDash with the Pexelle application infrastructure through course QR scanning. Seamlessly transfer your certificates and courses to Pexelle.","archived":false,"fork":false,"pushed_at":"2025-11-03T09:16:11.000Z","size":270,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-03T11:19:40.715Z","etag":null,"topics":["fairshare","learndash","pexelle","plugin","unido","wordpress"],"latest_commit_sha":null,"homepage":"https://pexelle.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/XertCoin-com.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-15T00:02:07.000Z","updated_at":"2025-11-03T09:15:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/XertCoin-com/learndash-plugin-wordpress","commit_stats":null,"previous_names":["xertcoin-com/learndash-plugin-wordpress"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/XertCoin-com/learndash-plugin-wordpress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XertCoin-com%2Flearndash-plugin-wordpress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XertCoin-com%2Flearndash-plugin-wordpress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XertCoin-com%2Flearndash-plugin-wordpress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XertCoin-com%2Flearndash-plugin-wordpress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/XertCoin-com","download_url":"https://codeload.github.com/XertCoin-com/learndash-plugin-wordpress/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/XertCoin-com%2Flearndash-plugin-wordpress/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30098085,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T22:49:54.894Z","status":"ssl_error","status_checked_at":"2026-03-04T22:49:48.883Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fairshare","learndash","pexelle","plugin","unido","wordpress"],"created_at":"2026-03-04T23:01:24.446Z","updated_at":"2026-03-04T23:01:25.121Z","avatar_url":"https://github.com/XertCoin-com.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pexelle for LearnDash\n\n**Contributors:** pexelle  \n**Donate link:** [https://pexelle.com](https://pexelle.com)  \n**Tags:** learndash, certificate, qr code, pexelle, share  \n**Requires at least:** 6.0  \n**Tested up to:** 6.8  \n**Requires PHP:** 7.4  \n**Stable tag:** 1.2.6  \n**License:** GPLv2 or later  \n**License URI:** [https://www.gnu.org/licenses/gpl-2.0.html](https://www.gnu.org/licenses/gpl-2.0.html)\n\nConnect LearnDash with Pexelle via QR codes. Share, verify, and export certificates with secure JSON/PDF handoff.\n\n---\n\n## 📖 Description\n\nPexelle for LearnDash provides a **modern bridge** between LearnDash and Pexelle using secure QR-based handoff.  \nIt enables **sharing and verifying certificates** or exporting clean JSON/PDF for external integrations.\n\n### ✨ Key Features\n- 🔗 **Seamless integration** with LearnDash courses  \n- 📱 **QR code login \u0026 sharing** (device handoff support)  \n- 🎓 **Certificate transfer** to Pexelle infrastructure  \n- 🔒 **Secure one-time login flow** with approval system  \n\nThis plugin is ideal for educators and institutions who want certificate verification to be **modern, secure, and easy to share**.\n\n---\n\n## ⚙️ Installation\n\n1. Upload the plugin files to the `/wp-content/plugins/pexelle-learndash` directory, or install directly from the WordPress plugin repository.\n2. Activate the plugin through the **Plugins** screen in WordPress.\n3. Navigate to your LearnDash courses and configure QR sharing options.\n4. Done! Certificates can now be scanned and shared with Pexelle.\n\n---\n\n## ❓ Frequently Asked Questions\n\n### Does this plugin require LearnDash?\nYes. You must have **LearnDash LMS** installed and active.\n\n### Is the QR secure?\nYes. The QR codes generate a **short-lived, one-time token** and require approval from the user’s main device before login is completed.\n\n### Can I customize the modal and design?\nYes. The plugin includes frontend CSS classes (`psl-modal`, `psl-btn`, etc.) that you can override in your theme or child theme.\n\n### Does it work with multisite?\nCurrently tested on single-site WordPress. Multisite support is planned.\n\n---\n\n## 🖼️ Screenshots\n\n1. Example QR modal for certificate sharing  \n2. Device handoff waiting screen  \n3. Certificate transfer confirmation  \n\n---\n\n## 📜 Changelog\n\n### 1.2.6\n- Sanitized all `$_GET['course_id']` lookups with `absint( wp_unslash() )` to resolve PHPCS security warnings.\n- Removed remaining usage of `suppress_filters` in WP_Query arguments (not allowed in WordPress.org standards).\n- Added targeted `phpcs:ignore` comments for LearnDash-required `meta_query` usage, with explanations.\n- Optimized fallback queries with `fields =\u003e 'ids'`, disabled caching, and `no_found_rows` to minimize load.\n- Finalized short description under 150 characters for WordPress.org parser compliance.\n- General compliance hardening: passed Plugin Check and WordPress.org PHPCS scans without blocking errors.\n\n### 1.2.5\n- Sanitized all `$_GET` and `$_POST` inputs with `wp_unslash()` + `sanitize_text_field()` / `absint()` for strict security compliance.\n- Removed `suppress_filters =\u003e true` from WP_Query calls to meet WordPress.org and VIP coding standards.\n- Optimized query arguments (`fields =\u003e ids`, `no_found_rows`, `update_post_meta_cache` disabled) for performance.\n- Shortened plugin short description to be under 150 characters.\n- Added inline PHPCS ignore comments for unavoidable `meta_query` usage (LearnDash dependency).\n- General code cleanup and compliance improvements for plugin repository review.\n\n### 1.2.4\n- Added full nonce verification and wp_unslash() handling for all AJAX and GET/POST inputs.\n- Secured Magic Login flow with bridge nonce to prevent CSRF-style misuse.\n- Updated frontend JS (`psl-frontend.js`) to include and send `ajaxNonce` with AJAX requests.\n- Optimized database queries with `fields =\u003e ids`, disabled meta/term cache for faster response.\n- Improved code compliance with WordPress Plugin Check (PHPCS).\n- Maintenance release — focused on passing automated + manual plugin review checks.\n\n### 1.2.3\n- Aligned Text Domain with plugin slug: `pexelle-for-learndash`.\n- Removed discouraged `load_plugin_textdomain()` (WP ≥ 4.6 auto-loads translations).\n- Ensured `/languages/` directory exists (POT scaffold ready).\n- Updated all i18n calls to the new text domain.\n- Maintenance release to pass automated plugin checks.\n\n### 1.2.2\n- Added secure token bridge for JSON/PDF certificate handoff.\n- Improved frontend modal styling.\n- Added countdown timer to waiting page.\n\n### 1.2.1\n- Fixed minor LearnDash course ID parsing bug.\n- Updated translations.\n\n### 1.2.0\n- Initial public release with QR-based certificate sharing.\n\n---\n\n## 🚀 Upgrade Notice\n\n### 1.2.2\nImportant security and UX improvements. Please update immediately.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxertcoin-com%2Flearndash-plugin-wordpress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxertcoin-com%2Flearndash-plugin-wordpress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxertcoin-com%2Flearndash-plugin-wordpress/lists"}