=== Webwall QR Campaign Tracker ===
Contributors: webwall
Tags: qr code, qr tracking, campaign analytics, marketing, redirects
Requires at least: 6.4
Tested up to: 7.0
Stable tag: trunk
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create tracked QR links, measure scans, and monitor offline campaign performance in WordPress.

== Description ==

Webwall QR Campaign Tracker helps teams measure offline campaign outcomes with tracked QR redirects and scan analytics.

Core capabilities:

* QR code creation with tracked short links (`/r/{short_code}`)
* Redirect tracking with scan logging
* Basic dashboard metrics and charts
* Project, subproject, and client organization
* Safe URL validation and redirect hardening
* Privacy controls for retention and uninstall behavior

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/` or install via WordPress admin upload.
2. Activate **Webwall QR Campaign Tracker** from the Plugins screen.
3. Open **Webwall QR Tracker** in wp-admin.
4. Create clients, projects, and QR codes to start tracking scans.

== Frequently Asked Questions ==

= Does the plugin work without a paid license? =

Yes. The free package works without a paid license and supports core QR tracking and dashboard functionality.

= Does this plugin use external CDNs? =

No. Runtime assets (including charts) are bundled locally in the plugin.

= Does this plugin contact third-party services? =

No third-party services are required by the free plugin at runtime.

= What data is stored for scans? =

Scan logs may include `ip_hash`, `user_agent`, `referer_url`, device type, bot flag, and timestamp. IPs are stored as one-way hashes.

= Can I delete data on uninstall? =

Yes. By default data is preserved. You can enable delete-on-uninstall in plugin settings.

== Screenshots ==

1. Dashboard with scan trends and top performers.
2. Client management and campaign organization.
3. QR codes page with creation form, diagnostics, and downloads.
4. Reports and analytics area.
5. Settings page with privacy, retention, and protection controls.

== Changelog ==

= 1.5.5 =
* Removed premium/pro code paths from the WordPress.org free package to keep only fully functional free features.
* Removed Freemius references from the free package and improved WordPress.org compliance hardening.

= 1.5.4 =
* Hardened upload path resolution and deletion safeguards for QR assets.
* Hardened client IP extraction defaults for analytics and scan logging quality.
* Restricted diagnostics/log output behind explicit `WEBWALL_QR_DEBUG` admin-only guard.
* Fixed bot-exclusion setting persistence in admin settings.

= 1.5.3 =
* Removed temporary development upgrade notice content from packaged readme output.
* Improved release packaging consistency for WordPress.org free distribution.

= 1.5.2 =
* Removed temporary update debugging endpoint and related troubleshooting helpers.
* Finalized production cleanup for release packaging.

= 1.5.1 =
* Added update targeting stability improvements.
* Updated plugin/runtime version references for release verification.

= 1.4.0 =
* Added legacy token migration utility and shortcode collision retries.
* Added redirect safety hardening and expanded scan anti-abuse controls.
* Added QA checklist documentation.

= 1.3.0 =
* Implemented GDPR export/erase callbacks for scan metadata handling.

= 1.2.3 =
* Added uninstall safety controls and retention settings.
* Improved analytics uniqueness calculation and security checks.

