{"id":356591,"date":"2026-09-06T18:57:18","date_gmt":"2026-09-06T18:57:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/simple-qr-redirect\/"},"modified":"2026-09-06T18:57:07","modified_gmt":"2026-09-06T18:57:07","slug":"slidearts-dynamic-qr-link","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/slidearts-dynamic-qr-link\/","author":6608254,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Slide Arts - Dynamic QR Link","header_author":"G Matta","header_description":"Create dynamic, reusable QR codes that redirect to any URL. Change destinations without reprinting. Includes Auto QR Rules, shortcode, block, and PHP API.","assets_banners_color":"ffffff","last_updated":"2026-09-06 18:57:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/gangesh\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"gangesh","date":"2026-09-06 18:57:07","revision":3683851}},"upgrade_notice":{"1.0.4":"<p>Plugin URI removed (invalid 404). Author URI set to WordPress.org profile.<\/p>","1.0.3":"<p>Renamed to Slide Arts - Dynamic QR Link. Update shortcodes to [sadql_qr] and PHP helpers to sadql_*. Request slug slidearts-dynamic-qr-link.<\/p>","1.0.2":"<p>Renamed to Dynamic QR Manager by Slide Arts. Update shortcodes to [dqm_qr] and PHP helpers to dqm_*. Request slug dynamic-qr-manager.<\/p>","1.0.1":"<p>Renamed to Dynamic QR Manager by Slide Arts. Update shortcodes to <code>[dqm_qr]<\/code> and PHP helpers to <code>dqm_*<\/code>. Security hardening for image uploads and REST.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3683850,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3683850,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3683852,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3683852,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"slidearts-dynamic-qr-link\/code":{"name":"slidearts-dynamic-qr-link\/code","title":"Slide Arts - Dynamic QR Link"}},"tagged_versions":["1.0.4"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Design defaults \u2014 live preview and tools","2":"All QR Links list","3":"Edit QR Link screen","4":"Auto QR Rules","5":"Tools (bulk\/repair\/import)"}},"plugin_section":[],"plugin_tags":[62159,7312,1373,18660,727],"plugin_category":[],"plugin_contributors":[86772,279454],"plugin_business_model":[],"class_list":["post-356591","plugin","type-plugin","status-publish","hentry","plugin_tags-dynamic-qr","plugin_tags-qr","plugin_tags-qr-code","plugin_tags-qr-generator","plugin_tags-redirect","plugin_contributors-gangesh","plugin_contributors-slidearts","plugin_committers-gangesh"],"banners":{"banner":"https:\/\/ps.w.org\/slidearts-dynamic-qr-link\/assets\/banner-772x250.png?rev=3683852","banner_2x":"https:\/\/ps.w.org\/slidearts-dynamic-qr-link\/assets\/banner-1544x500.png?rev=3683852","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/slidearts-dynamic-qr-link\/assets\/icon-128x128.png?rev=3683850","icon_2x":"https:\/\/ps.w.org\/slidearts-dynamic-qr-link\/assets\/icon-256x256.png?rev=3683850","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Slide Arts - Dynamic QR Link<\/strong> lets you create QR codes that point at a stable URL on your WordPress site. When someone scans the code, WordPress redirects them to any destination you set \u2014 on your site or elsewhere.<\/p>\n\n<p>Change the destination anytime without reprinting flyers, packaging, or signage.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Manual QR Links for campaigns and print materials<\/li>\n<li>Auto QR Rules for Posts, Pages, Products, or any public post type<\/li>\n<li>Global Design defaults with per-QR overrides (shape, dots, corners, gradients, logo)<\/li>\n<li>Browser-side generation via qr-code-styling (no Endroid \/ no third-party QR APIs)<\/li>\n<li>Scan counter with clear action<\/li>\n<li>Shortcode <code>[sadql_qr]<\/code>, Gutenberg block, and PHP helpers (<code>sadql_the_qr()<\/code>, <code>sadql_get_qr()<\/code>)<\/li>\n<li>Bulk generate and client-side repair tools<\/li>\n<li>Optional import from the classic QR Redirector plugin<\/li>\n<\/ul>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[sadql_qr id=\"123\"] \u2014 by QR Link ID  \n[sadql_qr post_id=\"45\"] \u2014 by content post  \n[sadql_qr] \u2014 current post in the loop\n<\/code><\/pre>\n\n<h4>PHP<\/h4>\n\n<pre><code>&lt;?php sadql_the_qr( [ 'post_id' =&gt; get_the_ID() ] ); ?&gt;\n<\/code><\/pre>\n\n<h4>Privacy<\/h4>\n\n<p>All data stays on your WordPress site. Destination URLs and scan counts are stored in post meta. QR images are saved under <code>uploads\/slidearts-dynamic-qr-link\/<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>slidearts-dynamic-qr-link<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate <strong>Slide Arts - Dynamic QR Link<\/strong> through the Plugins menu<\/li>\n<li>Open <strong>Slide Arts - Dynamic QR Link \u2192 Design<\/strong> to set defaults<\/li>\n<li>Add a Manual QR Link, or enable Auto QR Rules for your post types<\/li>\n<\/ol>\n\n<p>If scans 404 after activation, visit <strong>Settings \u2192 Permalinks<\/strong> and click Save.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20reprint%20qr%20codes%20when%20the%20destination%20changes%3F\"><h3>Do I need to reprint QR codes when the destination changes?<\/h3><\/dt>\n<dd><p>No. The QR encodes your site\u2019s <code>\/qr\/...<\/code> URL. Update the destination in WordPress and printed codes keep working.<\/p><\/dd>\n<dt id=\"how%20are%20qr%20images%20generated%3F\"><h3>How are QR images generated?<\/h3><\/dt>\n<dd><p>In the WordPress admin browser using qr-code-styling, then uploaded to your media uploads folder. Front-end shortcodes\/blocks serve the saved image URL.<\/p><\/dd>\n<dt id=\"can%20i%20style%20each%20qr%20differently%3F\"><h3>Can I style each QR differently?<\/h3><\/dt>\n<dd><p>Yes. Set global defaults under <strong>Design<\/strong>, then enable <strong>Override global design<\/strong> on any Manual or Auto-linked QR.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Removed invalid Plugin URI; Author URI now points to WordPress.org profile<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Renamed to Slide Arts - Dynamic QR Link (slug slidearts-dynamic-qr-link, prefix sadql_)<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Renamed to Dynamic QR Manager by Slide Arts (slug dynamic-qr-manager, prefix dqm_)<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed to Dynamic QR Manager by Slide Arts (text domain\/slug <code>dynamic-qr-manager<\/code>, public API prefix <code>dqm_<\/code>)<\/li>\n<li>Validate QR image uploads (PNG\/WebP) and sanitize SVG before saving<\/li>\n<li>Public REST <code>\/post\/{id}<\/code> no longer creates or updates QR posts<\/li>\n<li>Scope bulk-generate admin notice to plugin screens only<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First WordPress.org release<\/li>\n<li>Edit screen: Manual \/ Auto-linked badge and design override controls in the postbox header<\/li>\n<li>Borderless Copy scan URL control<\/li>\n<li>Clearer Design section titles (Layout &amp; shape, Dots, Corners, Background, Logo)<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Centered live Design preview QR<\/li>\n<li>Clarified Size: preview is scaled; downloads\/saved files use Size (max 2000 px)<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Migrated QR generation from Endroid (PHP) to qr-code-styling (browser)<\/li>\n<li>Design schema now matches styling options (dots, corners, gradients, logo URL)<\/li>\n<li>Client-side live preview, downloads, and image upload \/ repair tools<\/li>\n<li>Removed endroid\/bacon\/dasprid Composer packages<\/li>\n<\/ul>\n\n<h4>0.0.9<\/h4>\n\n<ul>\n<li>Menu label shortened to \u201cQR Link\u201d (plugin name unchanged)<\/li>\n<li>Round QR menu icon: white with dashicon-like opacity; vertically centered<\/li>\n<\/ul>\n\n<h4>0.0.8<\/h4>\n\n<ul>\n<li>Round QR menu icon in light admin gray (#a7aaad); white on hover\/active<\/li>\n<\/ul>\n\n<h4>0.0.7<\/h4>\n\n<ul>\n<li>Custom admin menu icon (QR + redirect arrow)<\/li>\n<li>Plugin Check: AJAX input sanitization cleanup<\/li>\n<\/ul>\n\n<h4>0.0.6<\/h4>\n\n<ul>\n<li>Plugin Check fixes: translators comment, Tested up to 7.0, AJAX nonce handling, prefix notes<\/li>\n<li>Pre-release dev build (launch target: 1.0.0)<\/li>\n<\/ul>\n\n<h4>0.0.5<\/h4>\n\n<ul>\n<li>Removed QR text labels and unused Endroid fonts<\/li>\n<li>Fixed single-view QR download export<\/li>\n<\/ul>","raw_excerpt":"Create dynamic, reusable QR codes that redirect to any URL. Change destinations without reprinting.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/356591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=356591"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gangesh"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=356591"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=356591"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=356591"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=356591"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=356591"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=356591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}