Beskrivelse
Labqi QR Manager is a complete QR code management solution for WordPress.
Features:
- Generate QR codes (PNG, 500×500) using endroid/qr-code v6
- Link-type QR codes — redirect to any URL on scan
- Attachment-type QR codes — serve PDF, DOCX, XLSX, PNG, JPG, WEBP securely
- Custom rewrite endpoint:
yoursite.com/qr/{code} - Scan tracking — count + last-scan timestamp per QR
- Bulk CSV import with per-row error reporting
- Export to CSV, Excel (XLSX), or ZIP (images + manifest)
- Bootstrap 5 admin UI with DataTables, SweetAlert2
- Analytics dashboard widget
- Settings: QR size, margin, logo overlay, default status
Installation
- Upload the
labqi-qr-managerfolder to/wp-content/plugins/ - Activate the plugin in WordPress › Plugins
- Go to Settings › Permalinks and click Save (to flush rewrite rules)
- Visit Labqi QR Manager in the admin sidebar
FAQ
-
Where are QR images stored?
-
Inside
wp-content/uploads/labqi-qr-manager/qr-codes/, so files survive plugin updates and reinstalls. -
Are attachment files publicly accessible?
-
No. A
.htaccessblocks direct access. Files are served through PHP only. -
How do I change QR size or add a logo?
-
Go to Labqi QR Manager › Settings.
Anmeldelser
Der er ingen anmeldelser for denne widget.
Bidragsydere & udviklere
“Labqi QR Manager” er open source-software. Følgende personer har bidraget til dette plugin.
BidragsydereOversæt “Labqi QR Manager” til dit eget sprog.
Interesseret i udvikling?
Gennemse koden, tjek SVN repository, eller abonner på udviklerloggen via RSS.
Ændringslog
1.2.1
- Fixed nonce checks that WordPress.org’s Plugin Check scanner couldn’t verify: several AJAX handlers and the Add/Edit form handler called a custom security wrapper method instead of WordPress core’s check_ajax_referer()/check_admin_referer() directly. The wrapper genuinely did call wp_verify_nonce() and current_user_can() correctly, but automated scanners can’t trace into custom methods — all handlers now call the core functions directly.
- Moved the nonce check in the Add/Edit form handler earlier, before the submitted action type is read (previously it was only verified deeper inside the add/update logic)
- Sanitized $_FILES data field-by-field at the point of use (name, type) instead of passing the raw array through, and explicitly sanitized the “default_status” setting instead of relying only on a whitelist check
- Added sanitize_text_field()/sanitize_key() before re-displaying submitted form values on validation errors (previously only wp_unslash() + esc_attr(), which escapes safely for output but skips the sanitize step)
1.2.0
- Renamed the plugin again from “ProductQRScan Pro” to “Labqi QR Manager” (slug: labqi-qr-manager) — WordPress.org’s reviewer AI flagged “Product QR Scan” as too purely descriptive of the plugin’s functionality to be a distinctive name, even with “Pro” appended
- Fixed several leftover references to the previous plugin name that the automated rename missed the first time (a page heading, the admin sidebar menu label, and internal page-slug/query-var prefixes)
- Fixed an admin-page asset loading bug introduced by the rename: WordPress’ submenu page hook suffix must exactly match the parent menu slug’s hyphens (e.g. “labqi-qr_page_labqi-qr-add”); an earlier pass had generated an underscore in that position, which silently prevented Bootstrap/DataTables/custom JS/CSS from loading on the Add, Import, and Settings pages
1.1.2
- Fixed: the “All QR Codes” page list showed “NaN” for total entries/pages.
wp_send_json_success()nests the AJAX response inside adataenvelope, but DataTables readsrecordsTotal/recordsFilteredfrom the top level of the response — the frontend now hoists those fields correctly before DataTables reads them - Fixed: a leftover page heading still read “QR Code Master” instead of the current plugin name
1.1.1
- Completed the library update from 1.1.0: endroid/qr-code was still on 5.1.0 (unchanged) and DataTables had only received a patch bump — both are now updated to their current stable releases (endroid/qr-code 6.0.9, DataTables 3.0.0)
- Fixed a stray FAQ answer that pointed to the wrong QR image storage path
1.1.0
- Renamed the plugin from “QR Master Pro” to “Labqi QR Manager” (slug: labqi-qr-manager) to resolve a trademark/naming conflict flagged during WordPress.org review
- Removed load_plugin_textdomain() call (unnecessary on WordPress.org since WP 4.6, translations are loaded automatically)
- Fixed: uploaded PDF/attachment files now live in a plugin-slug-namespaced uploads folder (wp-content/uploads/labqi-qr-manager/qr-pdfs/) instead of a bare top-level uploads/qr-pdfs/ folder; existing files are migrated automatically
- Fixed: the Logo setting no longer asks for a typed absolute server file path — it now uses the WordPress Media Library picker and stores a portable attachment ID
- Fixed: moved an inline block on the QR error page into a properly enqueued stylesheet
- Updated bundled libraries to current stable releases: Bootstrap 5.3.3 5.3.8, DataTables 1.13.8 3.0.0, endroid/qr-code 5.1.0 6.0.9 (PHP requirement stays at 8.2 — a newer 6.1.x line of endroid/qr-code requires PHP 8.4 and was intentionally not used)
1.0.3
- Massive package size reduction (26MB ~3MB installed) to fit WordPress.org’s 10MB upload limit:
- Removed an unused 16MB bundled font (only needed for a QR “label” feature this plugin never uses)
- Replaced the phpoffice/phpspreadsheet library with a small built-in XLSX writer (no functionality change — XLSX export still has the same styled header, frozen header row, and auto-sized columns)
- No user-facing behavior changes in this release
1.0.2
- Fixed: removed bundled hidden file (.htaccess) and obsolete legacy uploads folder from the package
- Fixed: missing direct-access protection in templates/error.php
- Fixed: Domain Path header now points to an existing languages/ folder
- Fixed: replaced move_uploaded_file() with a WP_Filesystem-based secure upload handler
- Fixed: replaced parse_url() with wp_parse_url(), unlink() with wp_delete_file()
- Improved: all database queries now use $wpdb->prepare() with %i identifier placeholders for table/column names
- Improved: added missing translator comments for all strings with placeholders
- Improved: internal redirects now use wp_safe_redirect(); external QR-destination redirects remain wp_redirect() by design (admin-configured destinations, not public input)
1.0.1
- QR code images now stored under wp-content/uploads/ instead of inside the plugin folder (data now survives plugin updates/reinstalls; existing images are migrated automatically)
- Uninstall now fully removes all generated QR images and attachments
- Removed unused legacy code files
- Minor readme and translation string fixes
1.0.0
- Initial release
