{"id":259130,"date":"2026-04-15T12:12:00","date_gmt":"2026-04-15T12:12:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/reusable-qr-codes\/"},"modified":"2026-10-01T15:06:13","modified_gmt":"2026-10-01T15:06:13","slug":"reusable-qr-codes","status":"publish","type":"plugin","link":"https:\/\/pap-aw.wordpress.org\/plugins\/reusable-qr-codes\/","author":23394115,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Reusable QR Codes","header_author":"Minuar","header_description":"Create reusable QR codes with changeable destinations. Perfect for museums, retail, events, and any place where physical QR codes need to stay relevant over time.","assets_banners_color":"ffffff","last_updated":"2026-10-01 15:06:13","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/minuar.com\/reusable-qr-codes","header_author_uri":"https:\/\/minuar.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":304,"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":"minuar","date":"2026-04-15 12:11:47","revision":3507070},"1.1.0":{"tag":"1.1.0","author":"minuar","date":"2026-10-01 15:06:13","revision":3723379}},"upgrade_notice":{"1.1.0":"<p>Adds an optional logo, a QR Code block and a privacy-friendly scan counter. Existing QR codes are unchanged.<\/p>","1.0.0":"<p>Initial release of Reusable QR Codes. Create reusable QR codes with changeable destinations!<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3723376,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3723376,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3723376,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3723376,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"reusable-qr-codes\/qr-code":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"reusable-qr-codes\/qr-code","title":"QR Code","category":"widgets","icon":"screenoptions","description":"Show one of your reusable QR codes.","keywords":["qr","code","scan"],"textdomain":"reusable-qr-codes","attributes":{"qrId":{"type":"number","default":0},"size":{"type":"number","default":200},"showCaption":{"type":"boolean","default":false},"caption":{"type":"string","default":""},"showDownload":{"type":"boolean","default":false}},"supports":{"align":["left","center","right"],"html":false},"editorScript":"rqrc-block-editor","style":"rqrc-block"}},"tagged_versions":["1.0.1","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3723376,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3723376,"resolution":"2","location":"assets","locale":"","width":1280,"height":972},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3723376,"resolution":"3","location":"assets","locale":"","width":320,"height":520},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3723376,"resolution":"4","location":"assets","locale":"","width":1280,"height":949},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3723376,"resolution":"5","location":"assets","locale":"","width":1280,"height":1397},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3723376,"resolution":"6","location":"assets","locale":"","width":1280,"height":1429},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3723376,"resolution":"7","location":"assets","locale":"","width":1280,"height":800},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3723376,"resolution":"8","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"QR Code listing page - manage all your QR codes","2":"Edit QR code - set destination URL and preview","3":"QR code preview with download buttons","4":"Settings page - customize default appearance","5":"Frontend fallback view when no destination is set","6":"QR code with a logo in the centre","7":"The QR Code block in the editor","8":"Scan counts in the QR code list"}},"plugin_section":[],"plugin_tags":[62159,1373,260286,727,5530],"plugin_category":[],"plugin_contributors":[260287],"plugin_business_model":[],"class_list":["post-259130","plugin","type-plugin","status-publish","hentry","plugin_tags-dynamic-qr","plugin_tags-qr-code","plugin_tags-qr-manager","plugin_tags-redirect","plugin_tags-url-shortener","plugin_contributors-minuar","plugin_committers-minuar"],"banners":{"banner":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/banner-772x250.png?rev=3723376","banner_2x":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/banner-1544x500.png?rev=3723376","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/icon-128x128.png?rev=3723376","icon_2x":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/icon-256x256.png?rev=3723376","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/screenshot-1.png?rev=3723376","caption":"QR Code listing page - manage all your QR codes"},{"src":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/screenshot-2.png?rev=3723376","caption":"Edit QR code - set destination URL and preview"},{"src":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/screenshot-3.png?rev=3723376","caption":"QR code preview with download buttons"},{"src":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/screenshot-4.png?rev=3723376","caption":"Settings page - customize default appearance"},{"src":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/screenshot-5.png?rev=3723376","caption":"Frontend fallback view when no destination is set"},{"src":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/screenshot-6.png?rev=3723376","caption":"QR code with a logo in the centre"},{"src":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/screenshot-7.png?rev=3723376","caption":"The QR Code block in the editor"},{"src":"https:\/\/ps.w.org\/reusable-qr-codes\/assets\/screenshot-8.png?rev=3723376","caption":"Scan counts in the QR code list"}],"raw_content":"<!--section=description-->\n<p><strong>The Problem:<\/strong> You print QR codes, hang them up, and when you need to change where they point, you have to reprint and replace them. Expensive, wasteful, and time-consuming.<\/p>\n\n<p><strong>The Solution:<\/strong> Reusable QR Codes creates permanent QR codes that you can update anytime without reprinting!<\/p>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Create a QR Code and set a destination URL<\/li>\n<li>Download and print\/share the QR code<\/li>\n<li>Visitors scan the code and get redirected to your destination<\/li>\n<li><strong>Update the destination anytime<\/strong> without reprinting the QR code!<\/li>\n<\/ol>\n\n<p>The QR code contains a permanent link to your WordPress site, which then redirects to wherever you want. Change the destination as many times as you need - the physical QR code never changes.<\/p>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li><strong>Museums &amp; Galleries<\/strong> - Update exhibit information without reprinting signs<\/li>\n<li><strong>Retail Stores<\/strong> - Change product details, promotions, and seasonal content<\/li>\n<li><strong>Restaurants<\/strong> - Update menus, daily specials, or seasonal offerings<\/li>\n<li><strong>Event Organizers<\/strong> - Modify schedules, speaker info, or venue details<\/li>\n<li><strong>Real Estate<\/strong> - Update property information and availability<\/li>\n<li><strong>Education<\/strong> - Link to current classroom resources and materials<\/li>\n<li><strong>Tourism<\/strong> - Keep landmark and trail information fresh<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li>\u2705 <strong>Unlimited QR Codes<\/strong> - Create as many as you need<\/li>\n<li>\u2705 <strong>Easy Destination Management<\/strong> - Simple URL field, change anytime<\/li>\n<li>\u2705 <strong>High Quality Downloads<\/strong> - PNG (1024x1024) and SVG formats<\/li>\n<li>\u2705 <strong>Customizable Appearance<\/strong> - Colors, dot styles, and sizes<\/li>\n<li>\u2705 <strong>No Dependencies<\/strong> - Works standalone, no external services<\/li>\n<li>\u2705 <strong>Optional Logo<\/strong> - Site logo or a custom image in the centre, chosen per QR code<\/li>\n<li>\u2705 <strong>QR Code Block<\/strong> - Show any QR code on a page, with caption and download button<\/li>\n<li>\u2705 <strong>Scan Counter<\/strong> - See how often each code is scanned, without tracking people<\/li>\n<li>\u2705 <strong>Privacy Friendly<\/strong> - No personal data, no cookies, no external calls<\/li>\n<li>\u2705 <strong>Translation Ready<\/strong> - Fully internationalized, with German, Spanish and French included<\/li>\n<li>\u2705 <strong>Clean Code<\/strong> - WordPress coding standards compliant<\/li>\n<\/ul>\n\n<h4>Technical Details<\/h4>\n\n<ul>\n<li>Lightweight and performant - small database footprint<\/li>\n<li>Conditional asset loading - scripts only when needed<\/li>\n<li>Secure - nonces, capability checks, input sanitization<\/li>\n<li>Follows WordPress coding standards<\/li>\n<li>Uses native WordPress functions (no bloat!)<\/li>\n<\/ul>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin does not:\n* Collect any personal data\n* Use cookies\n* Make external API calls\n* Track users\n* Store IP addresses<\/p>\n\n<p>For each QR code it stores only a scan count and the date of the last scan.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, feature requests, or bug reports:\n* <a href=\"https:\/\/wordpress.org\/support\/plugin\/reusable-qr-codes\/\">WordPress.org support forums<\/a><\/p>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>QR Code generation powered by <a href=\"https:\/\/github.com\/kozakdenys\/qr-code-styling\">QR Code Styling<\/a><\/li>\n<li>Developed by Minuar<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/reusable-qr-codes\/<\/code> or install via WordPress plugin installer<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to 'QR Codes' in your admin menu to create your first QR code<\/li>\n<li>Configure default settings under QR Codes \u2192 Settings (optional)<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20any%20external%20services%20or%20api%20keys%3F\"><h3>Do I need any external services or API keys?<\/h3><\/dt>\n<dd><p>No! This plugin is completely self-contained and works entirely within your WordPress installation. No external dependencies, no API keys, no recurring fees.<\/p><\/dd>\n<dt id=\"can%20i%20really%20change%20where%20the%20qr%20code%20points%20without%20reprinting%20it%3F\"><h3>Can I really change where the QR code points without reprinting it?<\/h3><\/dt>\n<dd><p>Yes! That's the whole point. The QR code contains a permanent URL on your site (like <code>yoursite.com\/rqrc\/museum-exhibit-1\/<\/code>). When someone scans it, they're instantly redirected to whatever destination URL you've set. Change that destination anytime in WordPress.<\/p><\/dd>\n<dt id=\"how%20many%20qr%20codes%20can%20i%20create%3F\"><h3>How many QR codes can I create?<\/h3><\/dt>\n<dd><p>Unlimited! Create as many as you need.<\/p><\/dd>\n<dt id=\"what%20formats%20can%20i%20download%3F\"><h3>What formats can I download?<\/h3><\/dt>\n<dd><p>PNG (high resolution 1024x1024px) and SVG (vector, scales to any size). Both are perfect for printing.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20site%3F\"><h3>Will this slow down my site?<\/h3><\/dt>\n<dd><p>No. The plugin is very lightweight and only loads assets when needed. The redirect stays fast. Each counted scan updates one counter in the database.<\/p><\/dd>\n<dt id=\"can%20i%20use%20my%20own%20logo%20in%20the%20qr%20code%3F\"><h3>Can I use my own logo in the QR code?<\/h3><\/dt>\n<dd><p>Yes. Set a site logo under QR Codes \u2192 Settings, then choose per QR code: no logo, the site logo or a custom image. Codes with a logo use the highest error correction, so they still scan.<\/p><\/dd>\n<dt id=\"can%20i%20track%20how%20many%20times%20a%20qr%20code%20was%20scanned%3F\"><h3>Can I track how many times a QR code was scanned?<\/h3><\/dt>\n<dd><p>Yes. Each QR code counts its scans and shows the count and the last scan date. Logged-in users, bots and link previews are not counted. No personal data is stored: no IP addresses, no cookies. If your host caches redirects at the edge, some scans may not reach WordPress and are not counted. With the 301 (permanent) redirect type, phones may remember the redirect, so repeat scans from the same phone are not counted; the default 302 counts every scan.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20block%20themes%3F\"><h3>Does this work with block themes?<\/h3><\/dt>\n<dd><p>Yes! The plugin works with both classic and block themes.<\/p><\/dd>\n<dt id=\"can%20i%20display%20qr%20codes%20on%20the%20frontend%3F\"><h3>Can I display QR codes on the frontend?<\/h3><\/dt>\n<dd><p>Yes. Add the QR Code block to any post or page, pick a QR code, and set its size. You can show a caption and a download button.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20delete%20a%20qr%20code%20post%3F\"><h3>What happens if I delete a QR code post?<\/h3><\/dt>\n<dd><p>The QR code will stop working - visitors will see a 404 error. Only delete QR codes you're sure you don't need anymore.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Deleting the plugin from the Plugins screen permanently removes all QR codes and settings, so every printed QR code stops working. Deactivating the plugin keeps your data.<\/p><\/dd>\n<dt id=\"can%20i%20export%2Fimport%20qr%20codes%3F\"><h3>Can I export\/import QR codes?<\/h3><\/dt>\n<dd><p>Not currently.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Optional logo in the centre of a QR code: a site logo or a custom image, chosen per QR code<\/li>\n<li>New: QR Code block to show a QR code on any page, with size, caption and download button<\/li>\n<li>New: Scan counter per QR code, without personal data; bots and logged-in users are not counted<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: QR code URLs no longer appear in site search results or the XML sitemap<\/li>\n<li>Fix: The \"not configured\" page now displays correctly on block themes<\/li>\n<li>Fix: Removed a duplicate robots meta tag on the \"not configured\" page<\/li>\n<li>Fix: Download filenames now handle accented letters, apostrophes and non-Latin titles<\/li>\n<li>Tweak: Tested up to WordPress 7.1<\/li>\n<li>Tweak: Removed references to a Premium version<\/li>\n<li>Tweak: Added an FAQ entry explaining that deleting the plugin removes all QR codes<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>First release on WordPress.org<\/li>\n<li>New: Quick active\/inactive toggle in the QR code list<\/li>\n<li>Security: Stricter input sanitization and a rate limit on the status toggle<\/li>\n<li>Tweak: Plugin Check fixes<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Create unlimited QR codes<\/li>\n<li>Set and update destination URLs<\/li>\n<li>Download PNG and SVG formats<\/li>\n<li>Customize colors and dot styles<\/li>\n<li>Automatic redirects (302\/301)<\/li>\n<li>Translation ready<\/li>\n<li>Clean, WordPress-compliant code<\/li>\n<\/ul>","raw_excerpt":"Create reusable QR codes with changeable destinations. Perfect for museums, retail, events, and anywhere physical QR codes need to stay relevant.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/259130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=259130"}],"author":[{"embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/minuar"}],"wp:attachment":[{"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=259130"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=259130"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=259130"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=259130"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=259130"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pap-aw.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=259130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}