=== 360 QR ===
Donate link: https://www.paypal.com/ncp/payment/R2L6JRLUD6LGJ
Tags: qr code, dynamic qr, shortlink, redirects, analytics
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create, manage, and track dynamic QR codes with editable URLs, scan statistics, and SVG/PNG downloads.

== Description ==

# 360 QR

360 QR lets you create and manage dynamic QR codes directly in WordPress. The public QR URL remains stable while you can change its destination URL whenever needed.

### Features

- Create, edit, activate, pause, and delete dynamic QR codes.
- Public QR URLs using the `/q/CODE` structure.
- Scan counter and last scan timestamp.
- Local QR generation without an external QR image service.
- SVG and PNG downloads.
- QR preview in a modal window.
- Automatic page-title detection from a destination URL in the admin panel.
- Admin dashboard with pagination and quick actions.
- Frontend dashboard available through a shortcode for logged-in users.
- Frontend users can manage only their own QR codes.
- Compatible with the existing `wp_net360_qr` table used by earlier project versions.

### Donations

If 360 QR is useful to you, you can support its development with a [PayPal donation](https://www.paypal.com/ncp/payment/R2L6JRLUD6LGJ).

Developed and maintained by [NET360.PE](https://net360.pe/).

== Screenshots ==

1. QR management dashboard with dynamic QR codes, scan statistics, and quick actions.
2. Create a dynamic QR code with an editable destination URL and automatic title detection.

== Installation ==

1. Install and activate 360 QR from the WordPress Plugins screen.
2. Open **360 QR** in the WordPress admin menu to manage QR codes.
3. To display the frontend dashboard, create a page and add the shortcode `[net360qr_dashboard]`.
4. The shortcode requires the visitor to be logged in.
5. If you are upgrading from an earlier project version, keep the existing QR table to preserve registered codes.

== Frequently Asked Questions ==

= What happens if I change the destination URL? =
The public QR URL does not change. The QR redirects to the new destination URL.

= Where are scans stored? =
360 QR stores the scan counter and last scan timestamp in the WordPress database. The plugin does not store visitor IP addresses.

= Do I need an external service to generate QR images? =
No. QR images are generated locally using code included in the plugin.

== Changelog ==

= 1.0.1 =
* Addressed WordPress.org review findings for output buffering, nonce validation, permissions, and unique plugin prefixes.
* Renamed internal plugin identifiers to the unique `net360qr` prefix while keeping the public plugin slug `360-qr` unchanged.

= 1.0 =
* First stable release prepared for submission to WordPress.org.
* Updated the plugin description to reflect its current features.
* Added donation and NET360.PE links.
* Updated compatibility metadata for WordPress 7.1 and PHP 7.4+.
* Improved page-title detection with safe HTTP requests and response-size limits.
* Hardened SQL queries, redirects, input handling, and output handling for security review.
* Updated documentation and installation information.

== Upgrade Notice ==

= 1.0.1 =
Includes fixes required by the WordPress.org plugin review.
