{"id":371516,"date":"2026-09-24T05:38:13","date_gmt":"2026-09-24T05:38:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/360-qr\/"},"modified":"2026-10-12T15:47:09","modified_gmt":"2026-10-12T15:47:09","slug":"360-qr","status":"publish","type":"plugin","link":"https:\/\/kea.wordpress.org\/plugins\/360-qr\/","author":23551560,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.12","stable_tag":"1.0.12","tested":"7.1.3","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"360 QR","header_author":"NET360","header_description":"Create and manage dynamic QR codes with editable URLs, scan statistics, and SVG\/PNG downloads.","assets_banners_color":"00ffff","last_updated":"2026-10-12 15:47:09","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/ncp\/payment\/R2L6JRLUD6LGJ","header_plugin_uri":"https:\/\/net360.pe\/360-qr\/","header_author_uri":"https:\/\/net360.pe\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":239,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"net360pe","date":"2026-10-10 00:16:50","revision":3737449},"1.0.11":{"tag":"1.0.11","author":"net360pe","date":"2026-10-11 23:42:15","revision":3740273},"1.0.12":{"tag":"1.0.12","author":"net360pe","date":"2026-10-12 15:47:09","revision":3742041}},"upgrade_notice":{"1.0.11":"<p>Includes security hardening for QR style input and public read-only download endpoints. Includes six QR styles, optional center logo, and PNG\/SVG download options.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3710517,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3710517,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3710517,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3710517,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.11","1.0.12"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3710517,"resolution":"1","location":"assets","locale":"","width":1442,"height":513}},"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."}},"plugin_section":[],"plugin_tags":[232,62159,1373,726,544],"plugin_category":[36,59],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-371516","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-dynamic-qr","plugin_tags-qr-code","plugin_tags-redirects","plugin_tags-shortlink","plugin_category-analytics","plugin_category-utilities-and-tools","plugin_committers-net360pe"],"banners":{"banner":"https:\/\/ps.w.org\/360-qr\/assets\/banner-772x250.png?rev=3710517","banner_2x":"https:\/\/ps.w.org\/360-qr\/assets\/banner-1544x500.png?rev=3710517","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/360-qr\/assets\/icon-128x128.png?rev=3710517","icon_2x":"https:\/\/ps.w.org\/360-qr\/assets\/icon-256x256.png?rev=3710517","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/360-qr\/assets\/screenshot-1.png?rev=3710517","caption":"QR management dashboard with dynamic QR codes, scan statistics, and quick actions."}],"raw_content":"<!--section=description-->\n360 QR\n\n<p>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.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Create, edit, activate, pause, and delete dynamic QR codes.<\/li>\n<li>Public QR URLs using the <code>\/q\/CODE<\/code> structure.<\/li>\n<li>Scan counter and last scan timestamp.<\/li>\n<li>Six visual QR styles: classic, rounded, dots, diamonds, rounded squares, and geometric.<\/li>\n<li>Local QR generation without an external QR image service.<\/li>\n<li>SVG vector download and PNG downloads in standard (512 px), high (1024 px), and maximum (2048 px) resolutions.<\/li>\n<li>Optional centered logo in QR codes (PNG, JPG, or WebP), with an illustrative preview in the creation form.<\/li>\n<li>QR preview in a modal window.<\/li>\n<li>Automatic page-title detection from a destination URL in the admin panel.<\/li>\n<li>Admin dashboard with pagination and quick actions.<\/li>\n<li>Frontend dashboard available through a shortcode for logged-in users.<\/li>\n<li>Frontend users can manage only their own QR codes.<\/li>\n<li>Compatible with the existing <code>wp_net360_qr<\/code> table used by earlier project versions.<\/li>\n<\/ul>\n\n<h3>Donations<\/h3>\n\n<p>If 360 QR is useful to you, you can support its development with a <a href=\"https:\/\/www.paypal.com\/ncp\/payment\/R2L6JRLUD6LGJ\">PayPal donation<\/a>.<\/p>\n\n<p>Developed and maintained by <a href=\"https:\/\/net360.pe\/\">NET360.PE<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate 360 QR from the WordPress Plugins screen.<\/li>\n<li>Open <strong>360 QR<\/strong> in the WordPress admin menu to manage QR codes.<\/li>\n<li>To display the frontend dashboard, create a page and add the shortcode <code>[net360qr_dashboard]<\/code>.<\/li>\n<li>The shortcode requires the visitor to be logged in.<\/li>\n<li>If you are upgrading from an earlier project version, keep the existing QR table to preserve registered codes.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20happens%20if%20i%20change%20the%20destination%20url%3F\"><h3>What happens if I change the destination URL?<\/h3><\/dt>\n<dd><p>The public QR URL does not change. The QR redirects to the new destination URL.<\/p><\/dd>\n<dt id=\"where%20are%20scans%20stored%3F\"><h3>Where are scans stored?<\/h3><\/dt>\n<dd><p>360 QR stores the scan counter and last scan timestamp in the WordPress database. The plugin does not store visitor IP addresses.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20external%20service%20to%20generate%20qr%20images%3F\"><h3>Do I need an external service to generate QR images?<\/h3><\/dt>\n<dd><p>No. QR images are generated locally using code included in the plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Shortened the plugin short description to comply with the WordPress.org 150-character limit.<\/li>\n<li>Updated the stable tag for this release.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Sanitized and validated QR style values submitted through the admin and frontend forms.<\/li>\n<li>Clarified the security handling for public, read-only QR image download endpoints whose allowed size values are restricted and which do not change site data.<\/li>\n<li>Continued hardening the plugin in response to Plugin Check security findings.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Addressed Plugin Check output-escaping findings for internally generated QR preview HTML and SVG output.<\/li>\n<li>Preserved the SVG markup required for QR previews and vector downloads while documenting the intentional trusted-output handling.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Translated the plugin interface into English, including administration, frontend dashboard, forms, validation messages, QR style names, accessibility labels, and download options.<\/li>\n<li>Preserved existing QR records, destinations, logos, styles, and scan statistics.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fixed download menu positioning so the quality options are not clipped by the QR list's scrollable container.<\/li>\n<li>Improved menu placement when space is limited and when the page or viewport changes.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Added download choices for PNG at 512 px (Standard), 1024 px (High Quality), and 2048 px (Maximum Quality).<\/li>\n<li>Added a scalable SVG download option for vector workflows.<\/li>\n<li>Made download choices available from the QR management actions.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Improved the visual selection state for QR style cards and their radio controls.<\/li>\n<li>Refined the presentation and descriptions of the available QR styles to make selections clearer.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added visual example cards for the available QR styles in the admin and frontend forms.<\/li>\n<li>Improved style names and descriptions so users can preview the appearance before selecting it.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Hardened QR rendering for compatibility with different PHP GD builds.<\/li>\n<li>Added safer validation for uploaded logo files before rendering.<\/li>\n<li>Retained all six QR styles and the optional centered logo.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added six visual QR module styles: classic, rounded, dots, diamonds, rounded squares, and geometric.<\/li>\n<li>Added an illustrative preview explaining that the centered logo is optional.<\/li>\n<li>Preserved dynamic destinations, scan statistics, and existing QR records.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added optional centered logo uploads for QR previews and SVG\/PNG output.<\/li>\n<li>Added a backward-compatible database column to store each QR code's logo attachment.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Addressed WordPress.org review findings for output buffering, nonce validation, permissions, and unique plugin prefixes.<\/li>\n<li>Renamed internal plugin identifiers to the unique <code>net360qr<\/code> prefix while keeping the public plugin slug <code>360-qr<\/code> unchanged.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>First stable release prepared for submission to WordPress.org.<\/li>\n<li>Updated the plugin description to reflect its current features.<\/li>\n<li>Added donation and NET360.PE links.<\/li>\n<li>Updated compatibility metadata for WordPress 7.1 and PHP 7.4+.<\/li>\n<li>Improved page-title detection with safe HTTP requests and response-size limits.<\/li>\n<li>Hardened SQL queries, redirects, input handling, and output handling for security review.<\/li>\n<li>Updated documentation and installation information.<\/li>\n<\/ul>","raw_excerpt":"Create and track dynamic QR codes in WordPress with editable destinations, scan statistics, six styles, center logos, and SVG\/PNG downloads.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/371516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=371516"}],"author":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/net360pe"}],"wp:attachment":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=371516"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=371516"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=371516"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=371516"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=371516"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=371516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}