{"id":1961033,"date":"2024-07-23T11:03:38","date_gmt":"2024-07-23T15:03:38","guid":{"rendered":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/?p=1961033"},"modified":"2025-07-25T10:44:06","modified_gmt":"2025-07-25T14:44:06","slug":"using-qr-codes-with-event-tickets-plus-legacy","status":"publish","type":"post","link":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/using-qr-codes-with-event-tickets-plus-legacy\/","title":{"rendered":"QR Codes and Ticket Check In"},"content":{"rendered":"\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/VEJAbkReo9I?si=fTSlVnukha3QnKFQ\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n\n\n\n<p>One of the most useful added features of <a href=\"https:\/\/theeventscalendar.com\/product\/wordpress-event-tickets-plus\/\" target=\"_blank\" rel=\"noreferrer noopener\">Event Tickets Plus<\/a>, and <a href=\"https:\/\/theeventscalendar.com\/products\/wallet-plus\/\">Wallet Plus<\/a>, is the ability to check in attendees to your events via QR code. <\/p>\n\n\n\n<p>These scannable codes are&nbsp;generated automatically for all ticket purchases or reservations, and each code references a unique URL that can be used to quickly check in guests without needing to manually access your attendees list.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:var(--global-palette8)\">\ud83d\udca1 The Event Tickets Plus App will be available and ready to use for sites running <a href=\"https:\/\/theeventscalendar.com\/products\/wordpress-event-tickets\/\">Event Tickets Plus<\/a> or <a href=\"https:\/\/theeventscalendar.com\/products\/wallet-plus\">Wallet Plus<\/a>, alongside Event Tickets.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"etp-app\">Event Tickets Plus App<\/h3>\n\n\n\n<p>Our Event Tickets Plus App is the easiest and fastest way to check in your attendees directly from your Android or iOS device without the need to log in to your site. Simply install and connect to your site using an&nbsp;API key and start scanning your tickets.<\/p>\n\n\n\n<p>Download the app from:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.theeventscalendar.eventticketsplus\" target=\"_blank\" rel=\"noopener noreferrer\">Google Play Store<\/a>&nbsp;&#8211; for Android devices<\/li>\n\n\n\n<li><a href=\"https:\/\/itunes.apple.com\/us\/app\/event-tickets-plus\/id1395674797?ls=1&amp;mt=8\" target=\"_blank\" rel=\"noopener noreferrer\">App Store<\/a>&nbsp;&#8211; for iOS devices<\/li>\n<\/ul>\n\n\n\n<div style=\"background: #f3f3f3; border: 1px solid #aaa; padding: 0.6rem 1rem;\"><strong>Please note:<\/strong> You will need our&nbsp;<strong>Event Tickets<\/strong> and <strong>Event Tickets Plus <\/strong>plugins installed in <strong>versions 4.7.5<\/strong> and above in order for the Event Tickets Plus App to work with your site.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"set-up\">Setting up the App<\/h3>\n\n\n\n<p>Once the app is installed on your device, you can connect to the app in one of two ways:<\/p>\n\n\n\n<ol class=\"wp-block-list has-white-background-color has-background\">\n<li>Navigate to your site&#8217;s <strong>WP Admin &gt; Tickets &gt; Settings &gt; Integrations<\/strong> tab and under Event Tickets Plus App, you&#8217;ll see a QR code. You can scan this QR code on your mobile device to set up the app. Alternatively, you can set it up manually by opening the app on your mobile device and following the prompts to enter your API Key and website URL.<br><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"291\" class=\"wp-image-1954174\" style=\"width: 500px;\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-12.49.01-PM.png\" alt=\"\" srcset=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-12.49.01-PM.png 1164w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-12.49.01-PM-300x175.png 300w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-12.49.01-PM-1024x596.png 1024w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-12.49.01-PM-768x447.png 768w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/li>\n\n\n\n<li>On your device, you will see the below screen. If you have scanned the QR code, you&#8217;ll see the information pre-populated. If you are setting it up manually, you can do so here.<br><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"327\" class=\"wp-image-1954175\" style=\"width: 150px;\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-12.52.52-PM.png\" alt=\"\" srcset=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-12.52.52-PM.png 470w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-12.52.52-PM-138x300.png 138w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><br>It&#8217;s important to note that the URL only works with <code>https:\/\/<\/code><\/li>\n\n\n\n<li>Once that information is in place, you&#8217;ll be ready to check in your attendees by scanning their ticket&#8217;s QR codes!<\/li>\n<\/ol>\n\n\n\n<p class=\"has-theme-palette-8-background-color has-background\">Please note you will need to have internet access on your device to check in attendees. For best results, we recommend being connected to a wifi network.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"the-events-calendar\">Connecting to a site with The Events Calendar<\/h3>\n\n\n\n<p>If you are using The Events Calendar, in combination with Event Tickets and Event Tickets Plus, you&#8217;ll see all of your events listed in the app. Additionally, you&#8217;ll have access to attendee numbers, event details, and all of your attendee lists.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69dadc1f6aa3a&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"468\" height=\"1024\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.05.35-PM-1-468x1024.png\" alt=\"\" class=\"wp-image-1954178\" style=\"width:170px\" srcset=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.05.35-PM-1-468x1024.png 468w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.05.35-PM-1-137x300.png 137w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.05.35-PM-1.png 474w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>It&#8217;s important to note that you won&#8217;t be able to check in attendees until the time of your event by default. You can toggle this setting on under <strong>Tickets &gt; Settings &gt; Integrations<\/strong> on your WordPress site, which will allow you to set a time buffer in minutes so that they can start reading QR codes before the actual start time of the event.<br><\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69dadc1f6adbb&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"372\" height=\"820\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.04.30-PM.png\" alt=\"\" class=\"wp-image-1954176\" style=\"width:170px\" srcset=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.04.30-PM.png 372w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.04.30-PM-136x300.png 136w\" sizes=\"auto, (max-width: 372px) 100vw, 372px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"event-tickets\">Connecting to a site with only Event Tickets<\/h3>\n\n\n\n<p>If you have a site with Event Tickets and Event Tickets Plus but do not have The Events Calendar, you will not see any events on your app. You will still have access to all of your attendees and their additional information once you scan their QR code.<br><\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69dadc1f6b09c&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"308\" height=\"668\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.13.10-PM.png\" alt=\"\" class=\"wp-image-1954179\" style=\"width:170px\" srcset=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.13.10-PM.png 308w, https:\/\/images.theeventscalendar.com\/kb\/uploads\/2019\/10\/Screen-Shot-2022-09-19-at-1.13.10-PM-138x300.png 138w\" sizes=\"auto, (max-width: 308px) 100vw, 308px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>If you&#8217;ve never worked with QR codes before, you might have some questions about how to get started with using these for your events. We&#8217;ve created this guide to walk you through the basics, from understanding what QR codes are to selecting a scanning app to set up permissions for staff to validate&nbsp;tickets at your events. Let&#8217;s get started!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"understanding_qr_codes\">Understanding QR Codes<\/h3>\n\n\n\n<p>First things first, it might be helpful to understand what a QR code is before beginning to use them with your tickets. You can think of <a href=\"https:\/\/en.wikipedia.org\/wiki\/QR_code\" target=\"_blank\" rel=\"noopener noreferrer\">QR codes<\/a>&nbsp;as being similar to UPC barcodes in functionality, though their&nbsp;usage is typically a bit more complex. While barcodes are used primarily to encode simple numerical values, QR codes can contain a variety of data types, including web URLs, contact cards, and&nbsp;even payment information for mobile transactions.<\/p>\n\n\n\n<p>Event Tickets Plus uses QR codes to embed unique check-in URLs for each ticket in your order database; when the QR code is scanned by a site administrator or another user with sufficient permissions, the URL is accessed, and the ticket is checked in automatically.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img decoding=\"async\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2017\/06\/tec_qr_code.png\" alt=\"Example of a QR code\"><br>Example of a QR code.<\/p>\n\n\n\n<p>To scan QR codes at your events, you&#8217;ll need a mobile device with a camera (such as a smartphone or tablet) and our Event Tickets Plus App.<\/p>\n\n\n\n<p class=\"has-text-color has-background\" style=\"color:#141827;background-color:var(--global-palette8)\">\ud83d\udca1 If attendees report that the QR code is showing as a \u201cbroken image link icon\u201d, it may be related to their email client. Several email clients have a setting for whether to automatically download images in emails. If this is disabled, the QR code won\u2019t show in the email.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create_qr_user\">Creating a New User for Scanning QR Codes<\/h3>\n\n\n\n<p>Since full attendee information is made available to site administrators for editing, reviewing, and export purposes, the administrator role is typically also used for checking in users manually or via QR code. But what if you&#8217;d like to have another member of staff check in attendees without giving them full access to your WordPress site&#8217;s backend? In that case, you can create a new user account with <strong>Contributor<\/strong> permissions, which will prevent edit access to&nbsp;your events, posts, or pages while still allowing attendees to be checked in. Here&#8217;s how to set that up on your site.<\/p>\n\n\n\n<p>As always, you&#8217;ll want to begin by logging into your WordPress dashboard using your administrator credentials. Once you&#8217;ve successfully logged in, highlight the <strong>Users<\/strong> menu item in the WordPress sidebar and click <strong>Add New<\/strong> to open the new user creation form.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2017\/06\/new_qr_user.png\" alt=\"Creating a new user for scanning QR codes with Event Tickets Plus\"\/><\/figure><\/div>\n\n\n<p>Enter a username and email address for your new user (you can leave the remaining text fields blank). You&#8217;ll also want to click the <strong>Show password<\/strong> button and note the password for the new account. Lastly, in the <strong>Role<\/strong> drop-down menu, select the <strong>Contributor<\/strong> role. Click <strong>Add New User<\/strong> once you&#8217;re finished, and the new user will be added immediately to your site. If you selected the check box for <strong>Send User Notification<\/strong>, an email will be sent to the address you provided to confirm the creation of this new account.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/images.theeventscalendar.com\/kb\/uploads\/2017\/06\/contributor_sidebar.png\" alt=\"Limited selection of sidebar items for the Contributor user role\"\/><\/figure><\/div>\n\n\n<p>When your Contributor user account logs into the site, they&#8217;ll see a limited selection of menu items available to them, and they won&#8217;t be able to edit or delete any existing events in your database.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GDPR Compatibility<\/h3>\n\n\n\n<p>The Event Tickets Plus app is not storing any user-related information, and it is GDPR compatible. The information that&#8217;s displayed in the app is coming from the connected site, which has the appropriate GDPR tools.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hiding Attendee Information for the APP<\/h3>\n\n\n\n<p>We understand that, for some cases, it&#8217;ll be important not to display the attendee information on the scan result or within the events screen of the app.<\/p>\n\n\n\n<p>For that, we have created <a href=\"https:\/\/gist.github.com\/juanfra\/6ad04fcf9e1a358c5a2e5cca31516cf6\" target=\"_blank\" rel=\"noreferrer noopener\">this snippet<\/a> that you can add to your site:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\n\/\/* Do NOT include the opening php tagadd_filter(\n\t&#039;rest_request_after_callbacks&#039;,\n\t&#039;tec_tickets_maybe_hide_attendee_information_for_app&#039;,\n\t10,\n\t3\n);\/**\n * Maybe hide information for the ET+ APP.\n *\n * @param WP_REST_Response|WP_HTTP_Response|WP_Error|mixed $response Result to send to the client.\n *                                                                   Usually a WP_REST_Response or WP_Error.\n * @param array                                            $handler  Route handler used for the request.\n * @param WP_REST_Request                                  $request  Request used to generate the response.\n *\n * @return WP_REST_Response|WP_HTTP_Response|WP_Error|mixed $response Result to send to the client.\n *                                                                   Usually a WP_REST_Response or WP_Error.\n *\/\nfunction tec_tickets_maybe_hide_attendee_information_for_app( $response, array $handler, \\WP_REST_Request $request ) {\n\tif ( empty( $request-&gt;get_header( &#039;App-version&#039; ) ) ) {\n\t\treturn $response;\n\t}\tif ( &#039;\/tribe\/tickets\/v1\/attendees&#039; === $request-&gt;get_route() ) {\n\t\t\/\/ Hide the attendee information from the attendee endpoint.\n\t\t$response = tec_tickets_hide_attendee_information_attendee_endpoint( $response, $handler, $request );\n\t}\tif ( &#039;\/tribe\/tickets\/v1\/qr&#039; === $request-&gt;get_route() ) {\n\t\t\/\/ Update QR response, hiding the attendee information\n\t\t$response = tec_tickets_hide_attendee_information_qr_endpoint( $response, $handler, $request );\n\t}\tif ( &#039;\/tribe\/events\/v1\/events&#039; === $request-&gt;get_route() ) {\n\t\t\/\/ If you want to hide Events for the APP, or do something with this endpoint.\n\t}\treturn $response;\n}\/**\n * Hide the attendee information from the attendees endpoint.\n *\n * @param WP_REST_Response|WP_HTTP_Response|WP_Error|mixed $response Result to send to the client.\n *                                                                   Usually a WP_REST_Response or WP_Error.\n * @param array                                            $handler  Route handler used for the request.\n * @param WP_REST_Request                                  $request  Request used to generate the response.\n *\n * @return WP_REST_Response|WP_HTTP_Response|WP_Error|mixed $response Result to send to the client.\n *                                                                   Usually a WP_REST_Response or WP_Error.\n *\/\nfunction tec_tickets_hide_attendee_information_attendee_endpoint( $response, array $handler, \\WP_REST_Request $request ) {\n\tif ( empty( $response-&gt;data&#x5B;&#039;attendees&#039;] ) ) {\n\t\treturn $response;\n\t}\tforeach ( $response-&gt;data&#x5B;&#039;attendees&#039;] as &amp;$attendee ) {\t\t$attendee&#x5B;&#039;title&#039;] = &#039;Hidden Name&#039;;\n\t\t$attendee&#x5B;&#039;email&#039;] = &#039;email@domain.com&#039;;\n\t\t$attendee&#x5B;&#039;payment&#039;]&#x5B;&#039;currency&#039;] = &#039;&#039;;\n\t\t$attendee&#x5B;&#039;payment&#039;]&#x5B;&#039;date&#039;] = &#039;&#039;;\n\t\t$attendee&#x5B;&#039;payment&#039;]&#x5B;&#039;price&#039;] = &#039;Unavailable&#039;;\n\t\t$attendee&#x5B;&#039;information&#039;] = &#x5B;];\n\t\t$attendee&#x5B;&#039;information&#039;]&#x5B;&#039;Information&#039;] = &#039;The attendee information is private. For more information please contact the site administrator.&#039;;\t}\treturn $response;\n}\/**\n * Hide the attendee information from the QR endpoint.\n *\n * @param WP_REST_Response|WP_HTTP_Response|WP_Error|mixed $response Result to send to the client.\n *                                                                   Usually a WP_REST_Response or WP_Error.\n * @param array                                            $handler  Route handler used for the request.\n * @param WP_REST_Request                                  $request  Request used to generate the response.\n *\n * @return WP_REST_Response|WP_HTTP_Response|WP_Error|mixed $response Result to send to the client.\n *                                                                   Usually a WP_REST_Response or WP_Error.\n *\/\nfunction tec_tickets_hide_attendee_information_qr_endpoint( $response, array $handler, \\WP_REST_Request $request ) {\n\tif ( empty( $response-&gt;data&#x5B;&#039;attendee&#039;] ) ) {\n\t\treturn $response;\n\t}\t$response-&gt;data&#x5B;&#039;attendee&#039;]&#x5B;&#039;title&#039;] = &#039;Hidden Name&#039;;\n\t$response-&gt;data&#x5B;&#039;attendee&#039;]&#x5B;&#039;email&#039;] = &#039;email@domain.com&#039;;\n\t$response-&gt;data&#x5B;&#039;attendee&#039;]&#x5B;&#039;payment&#039;]&#x5B;&#039;currency&#039;] = &#039;&#039;;\n\t$response-&gt;data&#x5B;&#039;attendee&#039;]&#x5B;&#039;payment&#039;]&#x5B;&#039;date&#039;] = &#039;&#039;;\n\t$response-&gt;data&#x5B;&#039;attendee&#039;]&#x5B;&#039;payment&#039;]&#x5B;&#039;price&#039;] = &#039;Unavailable&#039;;\n\t$response-&gt;data&#x5B;&#039;attendee&#039;]&#x5B;&#039;information&#039;] = &#x5B;];\n\t$response-&gt;data&#x5B;&#039;attendee&#039;]&#x5B;&#039;information&#039;]&#x5B;&#039;Information&#039;] = &#039;The attendee information is private. For more information please contact the site administrator.&#039;;\treturn $response;\n}\n<\/pre><\/div>\n\n\n<p>You can also find this snippet <a href=\"https:\/\/gist.github.com\/juanfra\/6ad04fcf9e1a358c5a2e5cca31516cf6\" target=\"_blank\" rel=\"noreferrer noopener\">on Github<\/a>. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Disabling the &#8220;Events&#8221; functionality on the APP<\/h3>\n\n\n\n<p>In some other cases, we understand that it&#8217;s possible that you&#8217;ll need to hide the &#8220;Events&#8221; functionality from the APP.<\/p>\n\n\n\n<p>In order to disable the &#8220;Events&#8221; functionality on the APP we have also created <a href=\"https:\/\/gist.github.com\/juanfra\/a11936a15e1da39c291cb8e92994aa9b\" target=\"_blank\" rel=\"noreferrer noopener\">this snippet<\/a> that you can add to your site:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\n\/\/* Do NOT include the opening php tagadd_filter(\n\t&#039;rest_request_after_callbacks&#039;,\n\t&#039;tec_tickets_maybe_disable_events_for_app&#039;,\n\t10,\n\t3\n);\/**\n * Maybe disable events for the ET+ APP.\n *\n * @param WP_REST_Response|WP_HTTP_Response|WP_Error|mixed $response Result to send to the client.\n *                                                                   Usually a WP_REST_Response or WP_Error.\n * @param array                                            $handler  Route handler used for the request.\n * @param WP_REST_Request                                  $request  Request used to generate the response.\n *\n * @return WP_REST_Response|WP_HTTP_Response|WP_Error|mixed $response Result to send to the client.\n *                                                                   Usually a WP_REST_Response or WP_Error.\n *\/\nfunction tec_tickets_maybe_disable_events_for_app( $response, array $handler, \\WP_REST_Request $request ) {\n\tif ( empty( $request-&gt;get_header( &#039;App-version&#039; ) ) ) {\n\t\treturn $response;\n\t}\tif ( &#039;\/tribe\/events\/v1\/events&#039; !== $request-&gt;get_route() ) {\n\t\treturn $response;\n\t}\t$response = new WP_REST_Response(\n\t\t&#x5B;\n\t\t\t&#039;code&#039;    =&gt; &#039;rest_no_route&#039;,\n\t\t\t&#039;message&#039; =&gt; &#039;No route was found matching the URL and request method.&#039;,\n\t\t]\n\t);\t$response-&gt;set_status( 404 );\treturn $response;\n}\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p><strong>Using Code Snippets: <\/strong>If you need help understanding how to use code snippets, you can check our guide on <a href=\"https:\/\/staging.theeventscalendar.com\/knowledgebase\/k\/best-practices-for-implementing-custom-code-snippets\/\" target=\"_blank\" rel=\"noreferrer noopener\">using custom code snippets<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"summing_up\">Summing Up<\/h3>\n\n\n\n<p>With your QR code scanning application installed on your device of choice&nbsp;and your Administrator or Contributor account(s) set up and ready to go, all that&#8217;s left is to begin the actual task of checking in attendees! Your process may look slightly different depending on your actual setup, but the basic steps should be mostly the same across all platforms.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>On the device that you&#8217;ll be using to check in attendees, launch your default web browser.<\/li>\n\n\n\n<li>From the web browser you just launched, log in to your site&#8217;s WordPress dashboard using an account with sufficient permissions. (If you don&#8217;t wish to use your administrator account for this task, you can create a new account with limited permissions using <a href=\"#create_qr_user\">the steps outlined above<\/a>.)<\/li>\n\n\n\n<li>Open the Event Tickets Plus app and ready your device&#8217;s&nbsp;camera to begin scanning.<\/li>\n\n\n\n<li>Ensure that the QR code that you wish to scan is clean, undamaged, and held at a sufficient distance for your device&#8217;s camera to focus. Scan the code.<\/li>\n\n\n\n<li>The app will update, and you&#8217;ll receive confirmation in the browser if your attendee was checked in successfully (or an error if the code is invalid or has already been scanned).<\/li>\n<\/ol>\n\n\n\n<p><strong>Troubleshooting: <\/strong>if you are unable to check in attendees, you might want to <a href=\"https:\/\/staging.theeventscalendar.com\/knowledgebase\/k\/rest-api-check-in-for-event-tickets-plus-app\/\" target=\"_blank\" rel=\"noreferrer noopener\">take a look at the following pos<\/a>t.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<p>We hope that this guide gives you all the information that you need to begin using QR codes with your event tickets and start reaping the benefits of faster check-ins! Don&#8217;t hesitate to pay us a visit over at&nbsp;<a href=\"https:\/\/theeventscalendar.com\/support-forums\/\">our help desk<\/a> if you should have any lingering questions&#8211;we&#8217;re more than happy to assist!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the most useful added features of Event Tickets Plus, and Wallet Plus, is the ability to check in attendees to your events via QR code. These scannable codes are&nbsp;generated automatically for all ticket purchases or reservations, and each code references a unique URL that can be used to quickly check in guests without&#8230;<\/p>\n","protected":false},"author":15,"featured_media":1955565,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_swpsp_post_exclude":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"ep_exclude_from_search":true,"footnotes":""},"categories":[88],"tags":[64],"stellar-product-taxonomy":[155,156],"class_list":["post-1961033","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tickets","tag-qr","stellar-product-taxonomy-event-tickets","stellar-product-taxonomy-event-tickets-plus"],"acf":[],"taxonomy_info":{"category":[{"value":88,"label":"Ticketing"}],"post_tag":[{"value":64,"label":"QR"}],"stellar-product-taxonomy":[{"value":155,"label":"Event Tickets"},{"value":156,"label":"Event Tickets Plus"}]},"featured_image_src_large":["https:\/\/images.theeventscalendar.com\/kb\/uploads\/2023\/02\/social-share-1024x538.png",1024,538,true],"author_info":{"display_name":"Deblyn Prado","author_link":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/author\/deblyn\/"},"comment_info":0,"category_info":[{"term_id":88,"name":"Ticketing","slug":"tickets","term_group":0,"term_taxonomy_id":88,"taxonomy":"category","description":"","parent":61,"count":83,"filter":"raw","term_order":"0","cat_ID":88,"category_count":83,"category_description":"","cat_name":"Ticketing","category_nicename":"tickets","category_parent":61}],"tag_info":[{"term_id":64,"name":"QR","slug":"qr","term_group":0,"term_taxonomy_id":64,"taxonomy":"post_tag","description":"","parent":0,"count":8,"filter":"raw","term_order":"0"}],"_links":{"self":[{"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/1961033","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/comments?post=1961033"}],"version-history":[{"count":9,"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/1961033\/revisions"}],"predecessor-version":[{"id":1966277,"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/1961033\/revisions\/1966277"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/media\/1955565"}],"wp:attachment":[{"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/media?parent=1961033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/categories?post=1961033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/tags?post=1961033"},{"taxonomy":"stellar-product-taxonomy","embeddable":true,"href":"https:\/\/staging.theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/stellar-product-taxonomy?post=1961033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}