{"id":304902,"date":"2026-06-24T10:39:27","date_gmt":"2026-06-24T10:39:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/qr-coupon-for-woocommerce\/"},"modified":"2026-06-24T10:38:48","modified_gmt":"2026-06-24T10:38:48","slug":"qr-coupon-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/qr-coupon-for-woocommerce\/","author":23487941,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"QR Coupon for WooCommerce","header_author":"ITK Agency","header_description":"Generate QR codes for WooCommerce products with automatic coupon application. Scanning redirects customers straight to cart with the product added and coupon applied.","assets_banners_color":"383735","last_updated":"2026-06-24 10:38:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/qr-coupon-for-woocommerce\/","header_author_uri":"https:\/\/itk-agency.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":26,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"itkagency","date":"2026-06-24 10:38:48"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3584537,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3584537,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-300x300.png":{"filename":"icon-300x300.png","revision":3584537,"resolution":"300x300","location":"assets","locale":"","width":300,"height":300},"icon-500x500.png":{"filename":"icon-500x500.png","revision":3584537,"resolution":"500x500","location":"assets","locale":"","width":500,"height":500}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3584537,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3584537,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3584537,"resolution":"1","location":"assets","locale":"","width":1761,"height":931},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3584537,"resolution":"2","location":"assets","locale":"","width":1746,"height":931},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3584537,"resolution":"3","location":"assets","locale":"","width":1745,"height":928},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3584537,"resolution":"4","location":"assets","locale":"","width":1904,"height":938}},"screenshots":{"1":"Product metabox \u2014 generate and preview a QR code","2":"Saved QR codes grid on the product edit screen","3":"Settings page \u2014 appearance defaults","4":"Cart page after scanning \u2014 product added, coupon applied"}},"plugin_section":[],"plugin_tags":[326,331,1373,268686,286],"plugin_category":[45],"plugin_contributors":[268687],"plugin_business_model":[],"class_list":["post-304902","plugin","type-plugin","status-publish","hentry","plugin_tags-coupon","plugin_tags-discount","plugin_tags-qr-code","plugin_tags-qr-coupon","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-itkagency","plugin_committers-itkagency"],"banners":{"banner":"https:\/\/ps.w.org\/qr-coupon-for-woocommerce\/assets\/banner-772x250.png?rev=3584537","banner_2x":"https:\/\/ps.w.org\/qr-coupon-for-woocommerce\/assets\/banner-1544x500.png?rev=3584537","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/qr-coupon-for-woocommerce\/assets\/icon-128x128.png?rev=3584537","icon_2x":"https:\/\/ps.w.org\/qr-coupon-for-woocommerce\/assets\/icon-256x256.png?rev=3584537","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/qr-coupon-for-woocommerce\/assets\/screenshot-1.png?rev=3584537","caption":"Product metabox \u2014 generate and preview a QR code"},{"src":"https:\/\/ps.w.org\/qr-coupon-for-woocommerce\/assets\/screenshot-2.png?rev=3584537","caption":"Saved QR codes grid on the product edit screen"},{"src":"https:\/\/ps.w.org\/qr-coupon-for-woocommerce\/assets\/screenshot-3.png?rev=3584537","caption":"Settings page \u2014 appearance defaults"},{"src":"https:\/\/ps.w.org\/qr-coupon-for-woocommerce\/assets\/screenshot-4.png?rev=3584537","caption":"Cart page after scanning \u2014 product added, coupon applied"}],"raw_content":"<!--section=description-->\n<p><strong>QR Coupon for WooCommerce<\/strong> bridges your offline marketing and your online store. A flyer, poster, or product package can advertise a discount \u2014 but the customer still has to open a browser, find the right product, and remember to type the coupon at checkout. Many give up before they finish. This plugin removes every one of those steps: a single scan drops the product into the cart, applies your coupon, and opens the cart page ready to check out.<\/p>\n\n<h4>What happens when a customer scans<\/h4>\n\n<ol>\n<li>The exact product \u2014 or a specific variation \u2014 is added to their cart<\/li>\n<li>Your chosen coupon is applied automatically<\/li>\n<li>They land on the cart page, ready to check out \u2014 nothing to search for, no code to type<\/li>\n<\/ol>\n\n<h4>Creating a code takes under a minute<\/h4>\n\n<ol>\n<li>Open any product and find the <strong>QR Coupon Codes<\/strong> box on the edit screen<\/li>\n<li>Attach any existing WooCommerce coupon (or leave it off for a plain add-to-cart code)<\/li>\n<li>Tweak size, colours, and error-correction if you like, then generate<\/li>\n<li>Download the PNG for your design, or save it to the Media Library to reuse later<\/li>\n<\/ol>\n\n<p>Then print it, post it, or put it on your packaging \u2014 the same code keeps working for as long as the coupon does.<\/p>\n\n<h4>Where QR coupons work best<\/h4>\n\n<ul>\n<li><strong>Print<\/strong> \u2014 flyers, posters, packaging inserts, shelf-talkers, and business cards<\/li>\n<li><strong>In store<\/strong> \u2014 counter displays and window signage that turn foot traffic into a ready-to-buy cart<\/li>\n<li><strong>Social &amp; ads<\/strong> \u2014 stories, posts, and printed-to-digital campaigns<\/li>\n<li><strong>Email &amp; events<\/strong> \u2014 newsletters, trade-show handouts, and loyalty cards<\/li>\n<\/ul>\n\n<h4>Why store owners use it<\/h4>\n\n<ul>\n<li><strong>Fewer drop-offs<\/strong> \u2014 removing the \"find the product, type the code\" friction means more scans become orders<\/li>\n<li><strong>Campaigns you can measure<\/strong> \u2014 a per-code scan counter shows which flyer, poster, or placement is actually getting used<\/li>\n<li><strong>No checkout mistakes<\/strong> \u2014 the discount is already in the cart, so there is nothing for the customer to mistype or forget<\/li>\n<li><strong>Your coupon rules still apply<\/strong> \u2014 usage limits, expiry, minimum spend, and product restrictions all work exactly as you set them in WooCommerce<\/li>\n<li><strong>Private by design<\/strong> \u2014 QR images are generated in the customer's browser; no third-party service is involved in creating them<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>One-click QR generation<\/strong> from the product edit screen<\/li>\n<li><strong>Coupon pre-selection<\/strong> \u2014 choose any existing WooCommerce coupon<\/li>\n<li><strong>Save to Media Library<\/strong> \u2014 store QR images directly in WordPress<\/li>\n<li><strong>Download PNG<\/strong> \u2014 grab the image instantly without saving<\/li>\n<li><strong>Customisable appearance<\/strong> \u2014 size, error-correction level, foreground\/background colour<\/li>\n<li><strong>Variable-product aware<\/strong> \u2014 generate variation-specific QR codes, or let customers choose on the product page<\/li>\n<li><strong>Scan counters<\/strong> \u2014 a scan count for every QR code<\/li>\n<li><strong>All QR Codes screen<\/strong> \u2014 manage every code from one list with search, sort, and bulk actions<\/li>\n<li><strong>Stock-aware<\/strong> \u2014 shows a friendly notice for out-of-stock products<\/li>\n<li><strong>Multisite compatible<\/strong><\/li>\n<li>No external API for QR generation \u2014 QR images are generated in your browser<\/li>\n<\/ul>\n\n<h4>Free version<\/h4>\n\n<p>The free version generates <strong>1 QR code per product<\/strong> (or 1 per variation for variable products), with size, error-correction, and foreground\/background colour controls \u2014 everything you need to put a working scan-to-cart coupon on a flyer, shelf-talker, or social post.<\/p>\n\n<h4>Premium upgrade<\/h4>\n\n<p>A premium version is available separately, for stores that want more. It adds:<\/p>\n\n<ul>\n<li><strong>Unlimited QR codes<\/strong> per product<\/li>\n<li><strong>Visual design<\/strong> \u2014 dot and corner styles, gradients, logos, and printable frames<\/li>\n<li><strong>Print sheets<\/strong> \u2014 arrange multiple codes on a page and export to PDF<\/li>\n<li><strong>Campaigns<\/strong> \u2014 group codes into campaigns, each with its own tracking link<\/li>\n<li><strong>Quick coupon creator<\/strong> \u2014 spin up a WooCommerce coupon without leaving the QR screen<\/li>\n<li><strong>Analytics<\/strong> \u2014 per-code performance, scan timelines, and order-level conversion and revenue attribution<\/li>\n<\/ul>\n\n<p>The free version is fully functional on its own; the premium upgrade is optional.<\/p>\n\n<h4>Security<\/h4>\n\n<p>QR URLs encode the product ID, optional variation ID, and optional coupon code as plain query parameters. WooCommerce's own coupon rules (usage limits, expiry, minimum spend, product restrictions) are the source of redemption control \u2014 scanning a QR is equivalent to clicking a link with the coupon pre-applied.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install directly from the WordPress dashboard.<\/li>\n<li>Activate the plugin.<\/li>\n<li>WooCommerce must be active \u2014 the plugin will deactivate itself if it is not.<\/li>\n<li>Go to <strong>QR Coupons \u2192 Settings<\/strong> to configure appearance defaults.<\/li>\n<li>Open any product, scroll to the <strong>QR Coupon Codes<\/strong> metabox and generate your first code.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20variable%20products%3F\"><h3>Does this work with variable products?<\/h3><\/dt>\n<dd><p>Yes. When a specific variation is embedded in the QR URL, scanning adds that exact variation directly to the cart. When no variation is specified, the customer lands on the product page to choose. You can generate variation-specific QR codes from the product edit screen.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20same%20qr%20code%20multiple%20times%3F\"><h3>Can I use the same QR code multiple times?<\/h3><\/dt>\n<dd><p>Yes \u2014 the QR URL itself has no expiry. The coupon's own WooCommerce rules (usage limit per user, total usage limit, expiry date) are what limit redemptions.<\/p><\/dd>\n<dt id=\"is%20the%20coupon%20code%20visible%20in%20the%20url%3F\"><h3>Is the coupon code visible in the URL?<\/h3><\/dt>\n<dd><p>Yes, by design. The coupon is already semi-public (it has to be entered at checkout). Someone who scans the QR can see the coupon code in their browser's address bar.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20call%20any%20external%20services%3F\"><h3>Does the plugin call any external services?<\/h3><\/dt>\n<dd><p>Two things to know.<\/p>\n\n<p><strong>QR rendering is fully offline.<\/strong> QR images are rendered entirely in your browser and the codes themselves are never sent off-site. The only bundled third-party rendering code is the library qr-code-styling (v5.3.1, MIT licence \u2014 https:\/\/github.com\/kozakdenys\/qr-code-styling). Its source is available there; an unminified copy of the plugin's own scripts ships alongside the minified ones.<\/p>\n\n<p><strong>Licensing and optional analytics via Freemius.<\/strong> The plugin uses the Freemius platform (https:\/\/freemius.com) for software licensing, updates, and <em>optional<\/em> usage analytics. Nothing is sent to Freemius unless you opt in on the activation screen \u2014 you can skip the opt-in and the plugin stays fully functional. If you do opt in, your site URL, the administrator email address and name, and environment details (WordPress, PHP and WooCommerce versions, active plugins and theme, and site language) are shared with Freemius for support, compatibility checks, and product improvement. The premium upgrade additionally contacts Freemius to validate your licence and deliver its updates. See the Freemius Privacy Policy (https:\/\/freemius.com\/privacy\/) and Terms of Service (https:\/\/freemius.com\/terms\/).<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20log%20anything%20for%20troubleshooting%3F\"><h3>Does the plugin log anything for troubleshooting?<\/h3><\/dt>\n<dd><p>Only when you ask it to. Under <strong>QR Coupons \u2192 Settings \u2192 Cleanup \u2192 Diagnostics<\/strong> there is a <strong>diagnostic logging<\/strong> switch that is <strong>off by default<\/strong>. Enable it \u2014 usually only while reproducing an issue for support \u2014 and the plugin records what it is doing, such as QR scans and coupon application, using WooCommerce's own logging system. The entries appear under <strong>WooCommerce \u2192 Status \u2192 Logs<\/strong> (source <code>qrcw<\/code>), where you can read, download, or delete them.<\/p>\n\n<p>These logs stay on your server \u2014 nothing is sent anywhere. They contain operational identifiers only, such as product, QR-code, and scan IDs, coupon codes, and scan outcomes \u2014 never customer names, emails, or IP addresses. Leave the switch off during normal use and turn it on only when diagnosing a problem; turning it off stops new entries, and you can delete existing logs from the WooCommerce log viewer at any time.<\/p><\/dd>\n<dt id=\"is%20there%20a%20premium%20version%3F\"><h3>Is there a premium version?<\/h3><\/dt>\n<dd><p>Yes. The free plugin here is complete and self-contained. A separately available premium upgrade adds unlimited codes per product, visual QR design (dot and corner styles, gradients, logos, frames), printable PDF sheets, campaign grouping, a quick coupon creator, and analytics with order-level conversion and revenue attribution.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>One-click QR code generation from the product edit screen.<\/li>\n<li>Coupon pre-selection \u2014 any existing WooCommerce coupon can be embedded.<\/li>\n<li>Save QR images to the WordPress Media Library or download as PNG.<\/li>\n<li>Variable-product support \u2014 generate variation-specific QR codes.<\/li>\n<li>A scan counter for every QR code.<\/li>\n<li>All QR Codes management screen with search, sort, and bulk delete.<\/li>\n<li>Privacy-respecting scan logging (IP stored as HMAC-SHA256 hash).<\/li>\n<li>Optional diagnostic logging (off by default) via WooCommerce's logger, for troubleshooting \u2014 kept on your server, never transmitted.<\/li>\n<li>Stock-aware \u2014 shows a friendly notice for out-of-stock products.<\/li>\n<li><p>No external API for QR generation \u2014 QR images generated client-side.<\/p><\/li>\n<li><p>1 QR code per product (1 per variation for variable products).<\/p><\/li>\n<\/ul>","raw_excerpt":"Turn any flyer, poster, or package into a one-scan path to checkout \u2014 the product is added to the cart and your coupon applied automatically.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/304902","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=304902"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/itkagency"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=304902"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=304902"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=304902"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=304902"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=304902"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=304902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}