SBD FAQS

SBD Event Tickets • Troubleshooting FAQ

SBD Event Tickets FAQ (Common Issues & Fixes)

This page covers common issues while testing SBD Event Tickets on WordPress + WooCommerce, including missing ticket settings, tickets not appearing in emails, and QR images that don’t render.


Why is the “This product issues tickets” option missing?

The ticket toggle is added by the plugin inside the WooCommerce product editor using admin hooks. If those hooks aren’t running (or you’re editing products with a different editor screen), the toggle can appear to “disappear.”

Fix checklist
  • Verify plugin files were not modified (revert to the last known working version if needed).
  • Confirm the hook is registered (see CLI test below).
  • Make sure only one copy of the plugin is active (no duplicates in /wp-content/plugins/).

Emails send, but no tickets appear

If WooCommerce emails arrive but you don’t see ticket blocks or QR codes, ticket generation usually never triggered. Most often: the product wasn’t marked as a ticket product, or the order status didn’t hit the plugin trigger.

Fix checklist
  • Open the product → Product data → General → confirm This product issues tickets is enabled.
  • Place a fresh test order and move it to a qualifying status (commonly Processing or Completed).
  • Confirm the QR output folder exists and is writable: /wp-content/uploads/sbd-event-tickets/

The email shows an empty QR image container (broken image)

This happens when the “PNG” file saved by the plugin is not actually a PNG. A common failure mode is a remote QR URL returning an HTML error page (for example, a 404), which then gets written to disk with a .png extension.

How to confirm quickly (SSH)
FILE="/home/USERNAME/DOMAIN/wp-content/uploads/sbd-event-tickets/YOUR-TICKET-CODE.png"
file "$FILE"
head -c 8 "$FILE" | xxd

A valid PNG starts with: 89 50 4E 47 0D 0A 1A 0A. If you see <!DOCTYPE, it’s HTML not an image.

Does SBD Event Tickets need external QR services?

It does not have to. For best reliability, QR codes can be generated locally (on your server) and stored in /wp-content/uploads/sbd-event-tickets/. Local generation avoids remote service outages and “fake PNG” files.

Best practice
  • Generate PNGs locally and embed your own site URLs in emails.
  • Validate the PNG signature before saving and delete bad files automatically.
  • Keep the QR generator library within the plugin (Composer vendor/).

Quick CLI Tests (copy/paste)

A) Confirm which file defines the QR class
cd /home/USERNAME/DOMAIN
php -r 'require "wp-load.php"; $r=new ReflectionClass("SBD_ET_QR"); echo $r->getFileName(), PHP_EOL;'
B) Generate a test QR and verify it’s a real PNG
cd /home/USERNAME/DOMAIN
php -r 'require "wp-load.php"; SBD_ET_QR::ensure_qr_for_ticket("SBD-TEST-QR-123"); echo SBD_ET_QR::get_qr_url("SBD-TEST-QR-123"), PHP_EOL;'

file wp-content/uploads/sbd-event-tickets/SBD-TEST-QR-123.png
head -c 8 wp-content/uploads/sbd-event-tickets/SBD-TEST-QR-123.png | xxd
C) Check the output folder for ticket PNGs
ls -lh wp-content/uploads/sbd-event-tickets | tail -n 30

Last updated: December 2025 • SouthBank Digital (SBD)