=== MDH Dynamic QR ===
Contributors: mdhgroup
Tags: qr, dynamic qr, redirect, tracking, shortcode
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.0.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create and manage dynamic URL QR codes directly in WordPress. Change destinations later without replacing printed QR codes.

== Description ==

MDH Dynamic QR is a permanently free WordPress plugin for creating dynamic URL QR codes on your own website.

Features:
* unlimited dynamic URL QR codes
* destination URLs can be changed at any time
* QR code preview
* PNG and SVG download
* print view for browser-based PDF output
* shortcode output
* simple scan counter and last-scan timestamp
* cookie-free counting without storing full IP addresses
* no license key required

The free edition works entirely inside your own WordPress installation. It does not require an external license server, has no time limit, and does not impose a usage quota.

Commercial extensions are separate products and may provide additional QR types as well as media, design, import/export, and analytics tools. The WordPress.org edition does not contain locked premium code.

== Installation ==

1. Install the plugin ZIP through Plugins > Add Plugin > Upload Plugin.
2. Activate the plugin.
3. Open Settings > Permalinks and click Save Changes once.
4. Open MDH Dynamic QR > New QR Code and enter a title, slug, and destination URL.
5. Save the QR code, test it with a smartphone, and then export it as PNG/SVG or use the print view.

== Frequently Asked Questions ==

= Can I change the destination URL later? =
Yes. That is the purpose of the dynamic short URL. As long as the slug remains unchanged, the printed QR code does not need to be replaced.

= Does the free edition require a license key? =
No. The free edition can be used permanently without a license key.

= How many QR codes can I create? =
The WordPress.org edition does not limit the number of dynamic URL QR codes.

= Are full IP addresses stored? =
No. The simple scan counter does not store full IP addresses and does not use tracking cookies.

= Will my data remain available after a later upgrade? =
The free edition uses compatible tables for URL QR codes and scan data. A commercial edition can extend and reuse this data during a later upgrade.

= Does the plugin load code from external servers? =
No. The QR code library is bundled locally with the plugin. The free edition has no external updater and does not contact a license server.

== Third Party Libraries ==

The plugin includes a local QR code JavaScript library based on Kazuhiko Arase's QRCode Generator under the MIT License. License and copyright notices are included in THIRD-PARTY-LICENSES.txt and in the library files.

== Changelog ==

= 1.0.3 =
* Renamed the WordPress.org display name to MDH Dynamic QR and changed the intended plugin slug/text domain to mdh-dynamic-qr.
* Moved admin JavaScript into an enqueued external asset.
* Removed plugin-generated inline script and style tags from PHP templates.
* Reworked the QR print view to use an external stylesheet and DOM event listeners.
* Replaced the custom inline-styled QR error page with WordPress' standard error renderer.
* No database-schema or QR-data changes.

= 1.0.2 =
* Converted the WordPress.org readme description and metadata text to standard English.
* Documented read-only admin query parameters so Plugin Check no longer treats them as state-changing form requests.
* Prefixed variables used by admin view templates with the plugin prefix.
* Documented intentional direct database access to the plugin's own custom tables for WordPress Coding Standards and Plugin Check.
* No feature or database-schema changes.

= 1.0.1 =
* Prepared the WordPress.org submission candidate.
* Removed the quantity limit for dynamic URL QR codes.
* The free edition is separated from commercial editions by features rather than usage quotas.
* Set Tested up to to WordPress 7.0.
* Prepared dynamic custom-table identifiers with identifier placeholders in runtime queries.
* Revalidated external QR redirect destinations before output.
* No license server, external updater, or locked premium code is included in the free edition.

= 1.0.0 =
* Initial standalone free edition based on MDH Dynamic QR v2.9.0.
* Permanently free and usable without a license key.
* Dynamic URL QR codes with changeable destination URLs.
* PNG, SVG, print view, shortcode, scan counter, and last-scan timestamp.
* Removed license-server, import/export, media, logo, template, and advanced analytics features from the free edition.
* Kept the data model compatible with the existing commercial product line.

== Upgrade Notice ==

The free and commercial editions belong to the same product line and are not intended to be activated in parallel on the same WordPress installation.
