=== Conductor QR Generator === Contributors: conductordigital Tags: qr, qr code, file download, short url, document sharing Requires at least: 5.5 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.5.3 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Generate secure QR codes with short URLs for instant, forced file downloads with branding and admin statistics. == Description == Conductor QR Generator allows you to upload approved files and instantly create: * A short download URL (example: /q/AbC123) * A printable QR code image When scanned or opened, the file is **automatically downloaded** without any preview page. This plugin is ideal for: * Construction & engineering documentation * Training centers & institutes * Secure document delivery to clients or authorities * Any use case where you want a **clean QR → instant file download** flow A live demo of the plugin working is available here: https://conductordigital.dev/qr-system/ = Key Features = * Frontend upload via shortcode `[conductor_qr_generator]` * Auto-created QR upload page at `/qr-system` * Instant QR + short URL generation * Forced file download (no preview, no extra clicks) * Download counter per QR * Branding options (logo + footer text under the QR) * Admin dashboard with statistics and bulk delete == Installation == 1. Upload the plugin ZIP via **Plugins → Add New → Upload Plugin**, or copy the folder into `wp-content/plugins/`. 2. Activate **Conductor QR Generator** from **Plugins → Installed Plugins** 3. Visit `/qr-system` on the frontend OR insert this shortcode on any page: `[conductor_qr_generator]` 4. Go to **Conductor QR Generator → Branding Settings** to customize your logo and footer text. 5. Use the admin **QR Statistics** page to view usage and bulk-delete entries (and their files). == Frequently Asked Questions == = How does it work? = 1. A user opens the QR upload page (e.g., `/qr-system`) or any page where you placed the shortcode. 2. They upload a file (PDF, DOCX, image, etc.). 3. The plugin saves the file to a protected folder and generates: * A random token (e.g. `AbC123`) * A short URL like `/q/AbC123` * A QR code that points to that URL, with your branding at the bottom 4. When someone opens the short URL or scans the QR, the plugin **forces a direct download** of the file. = Which file types are allowed? = Allowed extensions by default: * pdf, doc, docx, xls, xlsx, ppt, pptx * txt, rtf * jpg, jpeg, png, gif, bmp, webp * zip, rar, 7z * csv Dangerous file types like `.php` or `.js` are blocked. = Where are the files stored? = Files are stored locally in: `/wp-content/uploads/conductor-qr-generator/` = Are uploaded files public? = No. Files are only accessible through the **secure short URL generated by the plugin**. There is no public browsing of the upload directory in the plugin itself, and the file names are not predictable by URL. = Can I customize the text under the QR code? = Yes. When generating a QR, you can choose between: * Custom text (e.g. equipment code or document title) * File name * No caption This caption, along with the configured footer / brand text, will appear under the QR. = Does this plugin track or send any personal data? = No. The plugin does not send any personal data to external services. It only stores: * The file itself * Original file name * MIME type * File size * Created date/time * Download count * Optional caption == External services == This plugin uses a third-party QR code API as a **fallback** when generating QR images: **Service**: `https://api.qrserver.com/` (GoQR / QR Server API) **Purpose**: Used to obtain a base PNG QR code image for the short URL (`/q/`). The plugin then optionally composites this QR with a caption and branding. **Data sent**: Only the **short URL** is sent as the `data` parameter in the QR request, for example: `https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=https%3A%2F%2Fexample.com%2Fq%2FAbC123%2F` No personal data or user-identifying information is transmitted. **Terms and Privacy**: * Terms: https://goqr.me/api/doc/create-qr-code/ * Privacy: https://goqr.me/privacy/ If the external API is unreachable, the plugin falls back to a plain QR URL and continues to function. == Changelog == = 1.5.3 = * Updated file storage paths to /wp-content/uploads/conductor-qr-generator/. * Renamed remaining prefixes to match the plugin slug (conductor_qr_generator_*). * Updated shortcode to [conductor_qr_generator] and synchronized auto-created page + docs. = 1.5.2 = * Updated plugin name to "Conductor QR Generator" * Improved documentation and external service disclosure * Refactored inline JS/CSS to use proper enqueue methods = 1.5.1 = * Added “Visit QR Page” inside admin menu * Improved onboarding usability = 1.5.0 = * Added branding settings (logo + footer text) * Replaced hard-coded branding with dynamic options * Renamed plugin for WordPress.org release = 1.4.0 = * Initial production release