Recipe: Check-in QR codes for doors and tables

What it does

You print one QR code per spot at a venue, for example the door and each numbered table. A member scans a code with the app’s scanner, or with the phone camera when universal links are set up, and is checked in at that venue and spot.

  • A check-in made by QR code is a one-time event. There is no check-out.
  • A member checks in once per venue per day. Scanning another code later the same day only moves them to the new spot (“Already checked in today, moved to Table 12”). No new check-in is recorded and no points are given again.
  • Codes are signed with a secret that belongs to this plugin, so printed codes keep working after the site moves to a new host.

Check-ins made with the venue’s Check In button work as before.


Before you start

  • A check-in location must exist. GeoDirectory places are check-in locations by default. Other plugins can add their venue types, for example The Events Calendar venues when its check-in setting is on.
  • To require a session, a plugin that knows your session times must be active (for example Mobile App Manager The Events Calendar).

  1. Go to Mobile App Manager → Check-in QR Codes.
  2. Pick the Location.
  3. Enter the Spots, separated by commas. A range such as 1-40 makes numbered spots. A name such as Door is printed as typed. Up to 200 codes per sheet.
  4. Click Make QR sheet, then Print. Each card shows the QR code, the spot (numbered spots read “Table 12”) and the location name. Click a code to download its PNG.

Print the codes on the site that members will use. Codes printed on a test site point to the test site.


Settings

Mobile App Manager → BuddyPress → Check-ins

Setting Default Notes
Each scan is a check-in event with no check-out, once per day yes no makes a scan behave like the Check In button: scanning where you are checked in checks you out.
Require an active session no yes refuses scans outside a session window (doors open to end of the session).
App review account (blank) Username or email of one account that may check in outside sessions, for app store reviewers.
Label for numbered spots Table Spot 12 shows as “Table 12”.

Mobile App Manager → BuddyPress → Friend Codes

Setting Default Notes
Invite a Buddy: days after joining 0 (off) When set, a member who joined within that many days and scans someone’s friend code records that person as their inviter. The inviter gets invite credit, and the referral qualifies on the new member’s first check-in after that, or right away if they already checked in that day.

For app builders

QR link: https://<site>/?mam_ci=v1.<venue id base 36>.<spot>.<signature>.

  • In-app scanner: the scanned value is sent with subaction mam_qrcode_scanner. The response has status, title, message, snackbar, reload and, when something changed, jsonData.
  • Camera links: answered on mam-main’s mam_resolve_link filter with status, title, message and reload (yes / no).
Hook Type Notes
mam_bp_checkin_venue_types filter Post types accepted as check-in locations. Default array( 'gd_place' ).
mam_checkin_session filter ( null, $venue_id, $timestamp ), return the session array or null.
mam_bp_checkin_recorded action ( $user_id, $venue_id, $context ). $context has spot, session_id and source (qr, scanner or button). Only for a new check-in, not for a spot move.
mam_bp_referral_qualified action ( $inviter_id, $invitee_id, $venue_id ), once per invited member, on their first check-in on or after the referral was recorded.
mam_bp_checkin_spot_label filter ( $label, $spot ).

mam_bp_attendance_count( $user_id ) returns the number of different days a member checked in.


Metadata

Field Value
Article type Recipe
Plugin slug mam-buddypress
Category Check-ins
Audience WordPress admin, app builder
Since 26.42.1
Was this article helpful?
Contents

    Need Support?

    Can't find the answer you're looking for? Don't worry we're here to help!