{"id":314118,"date":"2026-05-23T16:42:12","date_gmt":"2026-05-23T16:42:12","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/webwall-qr-campaign-tracker\/"},"modified":"2026-05-24T10:04:48","modified_gmt":"2026-05-24T10:04:48","slug":"webwall-qr-campaign-tracker","status":"publish","type":"plugin","link":"https:\/\/sl.wordpress.org\/plugins\/webwall-qr-campaign-tracker\/","author":23501083,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.1","stable_tag":"trunk","tested":"7.0","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Webwall QR Campaign Tracker","header_author":"Webwall","header_description":"QR analytics and offline campaign intelligence for WordPress.","assets_banners_color":"646f7e","last_updated":"2026-05-24 10:04:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":47,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3545395,"resolution":"128x128","location":"assets","locale":"","width":1254,"height":1254},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3545395,"resolution":"256x256","location":"assets","locale":"","width":1254,"height":1254}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3545395,"resolution":"1544x500","location":"assets","locale":"","width":1910,"height":823},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3545395,"resolution":"772x250","location":"assets","locale":"","width":1875,"height":839}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3545395,"resolution":"1","location":"assets","locale":"","width":1536,"height":1024},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3545395,"resolution":"2","location":"assets","locale":"","width":1536,"height":1024},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3545395,"resolution":"3","location":"assets","locale":"","width":1537,"height":1023},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3545395,"resolution":"4","location":"assets","locale":"","width":1643,"height":957}},"screenshots":{"1":"Dashboard with scan trends and top performers.","2":"Client management and campaign organization.","3":"QR codes page with creation form, diagnostics, and downloads.","4":"Reports and analytics area.","5":"Settings page with privacy, retention, and protection controls."}},"plugin_section":[],"plugin_tags":[262668,456,1373,242225,726],"plugin_category":[55],"plugin_contributors":[264134],"plugin_business_model":[],"class_list":["post-314118","plugin","type-plugin","status-publish","hentry","plugin_tags-campaign-analytics","plugin_tags-marketing","plugin_tags-qr-code","plugin_tags-qr-tracking","plugin_tags-redirects","plugin_category-seo-and-marketing","plugin_contributors-webwall","plugin_committers-webwall"],"banners":{"banner":"https:\/\/ps.w.org\/webwall-qr-campaign-tracker\/assets\/banner-772x250.png?rev=3545395","banner_2x":"https:\/\/ps.w.org\/webwall-qr-campaign-tracker\/assets\/banner-1544x500.png?rev=3545395","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/webwall-qr-campaign-tracker\/assets\/icon-128x128.png?rev=3545395","icon_2x":"https:\/\/ps.w.org\/webwall-qr-campaign-tracker\/assets\/icon-256x256.png?rev=3545395","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/webwall-qr-campaign-tracker\/assets\/screenshot-1.png?rev=3545395","caption":"Dashboard with scan trends and top performers."},{"src":"https:\/\/ps.w.org\/webwall-qr-campaign-tracker\/assets\/screenshot-2.png?rev=3545395","caption":"Client management and campaign organization."},{"src":"https:\/\/ps.w.org\/webwall-qr-campaign-tracker\/assets\/screenshot-3.png?rev=3545395","caption":"QR codes page with creation form, diagnostics, and downloads."},{"src":"https:\/\/ps.w.org\/webwall-qr-campaign-tracker\/assets\/screenshot-4.png?rev=3545395","caption":"Reports and analytics area."}],"raw_content":"<!--section=description-->\n<p>Webwall QR Campaign Tracker helps teams measure offline campaign outcomes with tracked QR redirects and scan analytics.<\/p>\n\n<p>Core capabilities:<\/p>\n\n<ul>\n<li>QR code creation with tracked short links (<code>\/r\/{short_code}<\/code>)<\/li>\n<li>Redirect tracking with scan logging<\/li>\n<li>Basic dashboard metrics and charts<\/li>\n<li>Project, subproject, and client organization<\/li>\n<li>Safe URL validation and redirect hardening<\/li>\n<li>Privacy controls for retention and uninstall behavior<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via WordPress admin upload.<\/li>\n<li>Activate <strong>Webwall QR Campaign Tracker<\/strong> from the Plugins screen.<\/li>\n<li>Open <strong>Webwall QR Tracker<\/strong> in wp-admin.<\/li>\n<li>Create clients, projects, and QR codes to start tracking scans.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20work%20without%20a%20paid%20license%3F\"><h3>Does the plugin work without a paid license?<\/h3><\/dt>\n<dd><p>Yes. The free package works without a paid license and supports core QR tracking and dashboard functionality.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20use%20external%20cdns%3F\"><h3>Does this plugin use external CDNs?<\/h3><\/dt>\n<dd><p>No. Runtime assets (including charts) are bundled locally in the plugin.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20contact%20third-party%20services%3F\"><h3>Does this plugin contact third-party services?<\/h3><\/dt>\n<dd><p>No third-party services are required by the free plugin at runtime.<\/p><\/dd>\n<dt id=\"what%20data%20is%20stored%20for%20scans%3F\"><h3>What data is stored for scans?<\/h3><\/dt>\n<dd><p>Scan logs may include <code>ip_hash<\/code>, <code>user_agent<\/code>, <code>referer_url<\/code>, device type, bot flag, and timestamp. IPs are stored as one-way hashes.<\/p><\/dd>\n<dt id=\"can%20i%20delete%20data%20on%20uninstall%3F\"><h3>Can I delete data on uninstall?<\/h3><\/dt>\n<dd><p>Yes. By default data is preserved. You can enable delete-on-uninstall in plugin settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Fixed Assigned QRs counter in Client Directory.<\/li>\n<li>Improved client-to-QR relationship counting logic.<\/li>\n<li>Minor admin stability and release corrections.<\/li>\n<\/ul>\n\n<p>= 1.6.0\n* Added Upgrade to Pro dashboard UI.\n* Added Compare Plans interface.\n* Added Freemius upgrade integration.\n* Improved admin dashboard UX and premium upsell flow.\n* Hardened WordPress.org free package compatibility.\n* General cleanup and release stabilization.<\/p>\n\n<h4>1.5.5<\/h4>\n\n<ul>\n<li>Removed premium\/pro code paths from the WordPress.org free package to keep only fully functional free features.<\/li>\n<li>Removed Freemius references from the free package and improved WordPress.org compliance hardening.<\/li>\n<\/ul>\n\n<h4>1.5.4<\/h4>\n\n<ul>\n<li>Hardened upload path resolution and deletion safeguards for QR assets.<\/li>\n<li>Hardened client IP extraction defaults for analytics and scan logging quality.<\/li>\n<li>Restricted diagnostics\/log output behind explicit <code>WEBWALL_QR_DEBUG<\/code> admin-only guard.<\/li>\n<li>Fixed bot-exclusion setting persistence in admin settings.<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Removed temporary development upgrade notice content from packaged readme output.<\/li>\n<li>Improved release packaging consistency for WordPress.org free distribution.<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Removed temporary update debugging endpoint and related troubleshooting helpers.<\/li>\n<li>Finalized production cleanup for release packaging.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Added update targeting stability improvements.<\/li>\n<li>Updated plugin\/runtime version references for release verification.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added legacy token migration utility and shortcode collision retries.<\/li>\n<li>Added redirect safety hardening and expanded scan anti-abuse controls.<\/li>\n<li>Added QA checklist documentation.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Implemented GDPR export\/erase callbacks for scan metadata handling.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Added uninstall safety controls and retention settings.<\/li>\n<li>Improved analytics uniqueness calculation and security checks.<\/li>\n<\/ul>","raw_excerpt":"Create tracked QR links, measure scans, and monitor offline campaign performance in WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/314118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=314118"}],"author":[{"embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webwall"}],"wp:attachment":[{"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=314118"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=314118"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=314118"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=314118"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=314118"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=314118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}