{"id":378370,"date":"2026-10-01T01:02:18","date_gmt":"2026-10-01T01:02:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/scanduro-connect-qr-codes-and-menus\/"},"modified":"2026-10-01T01:01:58","modified_gmt":"2026-10-01T01:01:58","slug":"scanduro-connect","status":"publish","type":"plugin","link":"https:\/\/mr.wordpress.org\/plugins\/scanduro-connect\/","author":23576223,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Scanduro Connect: QR Codes and Menus","header_author":"SAGOUS B.V.","header_description":"Create dynamic QR codes for published pages and add Scanduro QR, menu and ordering links to your existing website.","assets_banners_color":"","last_updated":"2026-10-01 01:01:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/scanduro.com","header_author_uri":"https:\/\/scanduro.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":34,"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":"scanduro","date":"2026-10-01 01:01:58","revision":3722254}},"upgrade_notice":{"1.0.0":"<p>Initial release. API-backed operations require the corresponding Scanduro integration API release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":{"scanduro\/qr":{"name":"scanduro\/qr","title":"Scanduro Qr"},"scanduro\/link":{"name":"scanduro\/link","title":"Scanduro Link"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[62159,10561,1373,23280],"plugin_category":[],"plugin_contributors":[283815],"plugin_business_model":[],"class_list":["post-378370","plugin","type-plugin","status-publish","hentry","plugin_tags-dynamic-qr","plugin_tags-ordering","plugin_tags-qr-code","plugin_tags-restaurant-menu","plugin_contributors-scanduro","plugin_committers-scanduro"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/scanduro-connect.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Keep your website. Add Scanduro.<\/p>\n\n<ul>\n<li>Explicitly create one dynamic URL QR code for a published page or post.<\/li>\n<li>Select or import an existing live QR from your Scanduro workspace.<\/li>\n<li>Download a 1024-pixel PNG or show it using a block or shortcode.<\/li>\n<li>Add a Scanduro menu\/ordering button without rebuilding your website.<\/li>\n<li>Update eligible destinations without changing the printed QR identity.<\/li>\n<li>Keep API credentials server-side, with no tracking added to visitors.<\/li>\n<\/ul>\n\n<p>Account-connected QR management requires a Scanduro account on a plan with live API access (currently Pro and above). The connector itself is free to install. Manually configured menu\/ordering buttons need no API connection; the linked service remains subject to its own Scanduro plan and availability.<\/p>\n\n<p>This is not a WooCommerce sync tool, payment gateway, embedded checkout or independent QR hosting service.<\/p>\n\n<h4>External service and privacy<\/h4>\n\n<p>This plugin connects to https:\/\/scanduro.com\/api\/v1 only after an administrator explicitly connects an API key or requests an operation. It sends the key in an HTTPS Authorization header to verify the connection and manage the selected codes. Creating a QR sends the selected published page's title and permalink. Updating a code sends the new destination. Rendering a QR sends its canonical short URL to the Scanduro image-rendering endpoint.<\/p>\n\n<p>Account\/key information, QR IDs, destinations and images are returned to WordPress. QR images are cached in the site's public uploads folder. Normal visitor page loads do not call the authenticated API. Following a link or scanning its image visits Scanduro's resolver or hosted page under the service's privacy terms.<\/p>\n\n<p>The API key is stored in a non-autoloaded WordPress option. Administrators and parties with database\/server access can access stored credentials. Protect database backups and revoke the key in Scanduro if compromised. Disconnecting removes the saved key. Uninstalling removes plugin settings\/mappings; remote QR codes and uploaded PNGs are intentionally preserved to avoid breaking existing printed or directly embedded links.<\/p>\n\n<p>Service: https:\/\/scanduro.com\nTerms: https:\/\/scanduro.com\/legal\/terms\nPrivacy: https:\/\/scanduro.com\/legal\/privacy\nScan notice: https:\/\/scanduro.com\/legal\/scan-notice\nSupport: https:\/\/scanduro.com\/contact<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate Scanduro Connect.<\/li>\n<li>To add only a menu\/ordering link, insert the Scanduro Menu or Order Link block and paste your published Scanduro URL.<\/li>\n<li>For QR management, create a dedicated live Scanduro API key with codes:read and codes:write.<\/li>\n<li>Open Settings &gt; Scanduro Connect and connect the key.<\/li>\n<li>Create a QR for a published page, select an existing code, or import its lnk_ ID.<\/li>\n<li>Insert the Scanduro QR Code block using a saved ID, or copy its shortcode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20a%20paid%20scanduro%20plan%20required%3F\"><h3>Is a paid Scanduro plan required?<\/h3><\/dt>\n<dd><p>Live account-connected QR management currently requires Pro or above. The plugin does not unlock API access on Free or Starter. A manually configured menu\/ordering link does not need an API connection.<\/p><\/dd>\n<dt id=\"does%20this%20process%20guest%20payments%3F\"><h3>Does this process guest payments?<\/h3><\/dt>\n<dd><p>No. Menu and ordering buttons open the existing hosted Scanduro flow. This plugin does not handle card details, refunds or settlement.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20disconnect%3F\"><h3>What happens if I disconnect?<\/h3><\/dt>\n<dd><p>The key is removed and new API operations stop. Cached QR displays remain available, and existing printed Scanduro codes are not deleted.<\/p><\/dd>\n<dt id=\"why%20cannot%20i%20repoint%20a%20table%20qr%3F\"><h3>Why cannot I repoint a table QR?<\/h3><\/dt>\n<dd><p>Table-ordering codes have protected destinations. Repointing one would send seated guests to the wrong place. Only ordinary dynamic URL codes can be updated through this connector.<\/p><\/dd>\n<dt id=\"what%20if%20a%20create%20request%20times%20out%3F\"><h3>What if a create request times out?<\/h3><\/dt>\n<dd><p>Retry the same page request. Its identity and original inputs are retained. Requests older than 23 hours are refused rather than risking a duplicate after API replay storage expires. If a request remains locked after a server crash, contact support to reconcile it; do not delete its mapping to force creation.<\/p><\/dd>\n<dt id=\"does%20a%20dynamic%20qr%20preserve%20an%20unpublished%20wordpress%20page%3F\"><h3>Does a dynamic QR preserve an unpublished WordPress page?<\/h3><\/dt>\n<dd><p>No. The stable QR URL and the destination website have separate lifecycles. Keep the destination published or explicitly point the code at another valid destination.<\/p><\/dd>\n<dt id=\"are%20qr%20codes%20created%20automatically%20on%20every%20post%20save%3F\"><h3>Are QR codes created automatically on every post save?<\/h3><\/dt>\n<dd><p>No. Creation and destination changes are explicit administrator actions.<\/p><\/dd>\n<dt id=\"which%20shortcodes%20are%20available%3F\"><h3>Which shortcodes are available?<\/h3><\/dt>\n<dd><p>[scanduro_qr id=\"lnk_YOUR_ID\" label=\"Open link\"]\n[scanduro_link url=\"https:\/\/scanduro.page\/your-menu\" label=\"View menu\"]<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<p>Initial release candidate: API connection, create\/import\/update dynamic URL QR codes, cached PNG assets, QR and menu\/order blocks and shortcodes.<\/p>","raw_excerpt":"Create dynamic QR codes for published pages and add Scanduro QR, menu and ordering links to your existing WordPress website.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/378370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=378370"}],"author":[{"embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/scanduro"}],"wp:attachment":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=378370"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=378370"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=378370"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=378370"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=378370"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=378370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}