=== 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/<token>`). 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

