{"id":363989,"date":"2026-09-17T00:58:17","date_gmt":"2026-09-17T00:58:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-box-office\/"},"modified":"2026-09-25T21:50:10","modified_gmt":"2026-09-25T21:50:10","slug":"codestormtechnology-ticketing-woocommerce","status":"publish","type":"plugin","link":"https:\/\/bho.wordpress.org\/plugins\/codestormtechnology-ticketing-woocommerce\/","author":23542283,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.2","requires":"6.9","requires_php":"8.2","requires_plugins":null,"header_name":"Ticket Shop for WooCommerce","header_author":"Codestorm Technology","header_description":"Essential WooCommerce ticketing with visit calendar, local QR\/PDF generation and one-time check-in.","assets_banners_color":"c9d6f3","last_updated":"2026-09-25 21:50:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/codestormtechnology\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":126,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.9":{"tag":"1.0.9","author":"codestormtechnology","date":"2026-09-17 00:57:52","revision":3699388},"1.1.0":{"tag":"1.1.0","author":"codestormtechnology","date":"2026-09-25 21:50:10","revision":3713637}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3703575,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3703575,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3703575,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3703575,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.9","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3703575,"resolution":"1","location":"assets","locale":"","width":1448,"height":1086},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3703575,"resolution":"2","location":"assets","locale":"","width":1448,"height":1086},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3703575,"resolution":"3","location":"assets","locale":"","width":1448,"height":1086},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3703575,"resolution":"4","location":"assets","locale":"","width":1448,"height":1086},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3703575,"resolution":"5","location":"assets","locale":"","width":1448,"height":1086},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3703575,"resolution":"6","location":"assets","locale":"","width":1448,"height":1086}},"screenshots":{"1":"Ticket Shop for WooCommerce dashboard and ticket overview.","2":"Ticket products displayed with the ticket-list shortcode.","3":"Visit dates and available time slots with the calendar shortcode.","4":"Protected ticket check-in with read-before-confirm workflow.","5":"Basic Ticket Shop for WooCommerce settings.","6":"Built-in help for tickets, calendar, check-in, shortcodes and privacy."}},"plugin_section":[],"plugin_tags":[27824,1373,212707,4771,286],"plugin_category":[45,56,58],"plugin_contributors":[276105],"plugin_business_model":[],"class_list":["post-363989","plugin","type-plugin","status-publish","hentry","plugin_tags-event-tickets","plugin_tags-qr-code","plugin_tags-ticket-scanner","plugin_tags-tickets","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-social-and-sharing","plugin_category-user-management","plugin_contributors-codestormtechnology","plugin_committers-codestormtechnology"],"banners":{"banner":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/banner-772x250.png?rev=3703575","banner_2x":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/banner-1544x500.png?rev=3703575","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/icon-128x128.png?rev=3703575","icon_2x":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/icon-256x256.png?rev=3703575","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/screenshot-1.png?rev=3703575","caption":"Ticket Shop for WooCommerce dashboard and ticket overview."},{"src":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/screenshot-2.png?rev=3703575","caption":"Ticket products displayed with the ticket-list shortcode."},{"src":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/screenshot-3.png?rev=3703575","caption":"Visit dates and available time slots with the calendar shortcode."},{"src":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/screenshot-4.png?rev=3703575","caption":"Protected ticket check-in with read-before-confirm workflow."},{"src":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/screenshot-5.png?rev=3703575","caption":"Basic Ticket Shop for WooCommerce settings."},{"src":"https:\/\/ps.w.org\/codestormtechnology-ticketing-woocommerce\/assets\/screenshot-6.png?rev=3703575","caption":"Built-in help for tickets, calendar, check-in, shortcodes and privacy."}],"raw_content":"<!--section=description-->\n<p>Ticket Shop for WooCommerce is a lightweight ticketing layer that works with WooCommerce. It keeps payments and product pricing in WooCommerce and adds the essentials needed to issue and validate tickets.<\/p>\n\n<p>Current version includes:<\/p>\n\n<ul>\n<li>A simple Ticket Shop for WooCommerce dashboard.<\/li>\n<li>Ticket-enabled WooCommerce products.<\/li>\n<li>Global visit calendar with open weekdays and time slots.<\/li>\n<li>Optional capacity per product\/date\/time, with a product default and exact slot overrides.<\/li>\n<li>Cart and checkout availability checks to prevent purchases above configured capacity in normal purchase flow.<\/li>\n<li>Visit date\/time captured in the cart and order.<\/li>\n<li>One ticket per purchased unit after payment confirmation.<\/li>\n<li>Local QR Code generation. Ticket QR payloads are not sent to third-party QR services.<\/li>\n<li>Downloadable ticket PDFs generated locally by the plugin, with the QR drawn from the bundled QR matrix.<\/li>\n<li>Ticket links added to customer WooCommerce emails.<\/li>\n<li>Admin check-in with read-before-confirm flow.<\/li>\n<li>Atomic one-time consumption: a second entry is blocked.<\/li>\n<li>Optional camera scanning through the browser BarcodeDetector API, with manual\/USB scanner fallback.<\/li>\n<li>Basic ticket list, settings and help screens.<\/li>\n<li>Individual ticket cancellation without cancelling or refunding the WooCommerce order.<\/li>\n<li>Admin QR\/PDF reissue and manual ticket e-mail resend. Reissue invalidates the previous QR.<\/li>\n<li>Ticket lifecycle history for created, sent, check-in, cancelled and reissued events.<\/li>\n<li>Restricted Ticket Validator role with check-in permission but no ticket-management or WooCommerce administration access.<\/li>\n<li>Ticket, calendar and protected operator check-in shortcodes.<\/li>\n<li>WordPress personal data exporter and eraser integration.<\/li>\n<li>RTL, keyboard-focus and reduced-motion friendly admin UI.<\/li>\n<\/ul>\n\n<p>The plugin does not process payments itself. WooCommerce remains responsible for products, prices, checkout, payment gateways, taxes and refunds.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin stores the minimum purchaser information needed to issue and validate tickets: order reference, ticket code, customer name\/e-mail, visit date\/time and usage state. Check-in audit records store hashed IP address and hashed user-agent values rather than their raw values.<\/p>\n\n<p>The plugin registers with the WordPress personal data exporter and eraser tools. Erasure anonymizes customer name\/e-mail and the WordPress user reference while retaining the order reference and operational ticket state for transaction integrity.<\/p>\n\n<p>QR Codes and ticket PDFs are generated locally. Version 1.1.0 does not send ticket payloads to any service operated by the plugin author.<\/p>\n\n<h3>External services<\/h3>\n\n<p>The plugin does not contact an API or cloud service operated by the plugin author. QR Codes and ticket PDFs are generated locally by the bundled PHP libraries.<\/p>\n\n<p>WooCommerce itself, payment gateways, e-mail providers, hosting services, browser features and other extensions installed by the site owner may communicate with their own external services independently of this plugin.<\/p>\n\n<p>The optional camera scanner uses the browser BarcodeDetector API when the visitor's browser supports it; the plugin does not upload camera images to the plugin author or to a remote scanning service.<\/p>\n\n<h3>Third-party libraries<\/h3>\n\n<p>The production ZIP bundles only the following runtime libraries locally; no CDN is required. Their upstream license files remain included under <code>vendor\/<\/code>.<\/p>\n\n<ul>\n<li>chillerlan\/php-qrcode 6.0.1 \u2014 MIT and Apache-2.0<\/li>\n<li>chillerlan\/php-settings-container 3.3.0 \u2014 MIT<\/li>\n<\/ul>\n\n<p>Ticket PDFs are generated by the plugin itself with core PDF operators. QR graphics are drawn directly from the local QR matrix, so no HTML-to-PDF library, remote QR service or CDN is required.<\/p>\n\n<p>The plugin folder, text domain and existing implementation identifiers are retained for WordPress.org update and data compatibility. They are technical identifiers and are not the plugin display name.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload the <code>codestormtechnology-ticketing-woocommerce<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install the ZIP through Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Activate Ticket Shop for WooCommerce.<\/li>\n<li>Open Ticket Shop for WooCommerce &gt; Calendar and configure available days and times.<\/li>\n<li>Create or edit a WooCommerce product and enable the ticket option in Product data &gt; General.<\/li>\n<li>Complete a test purchase and use Ticket Shop for WooCommerce &gt; Check-in to validate the generated ticket.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20shortcodes%20are%20available%3F\"><h3>Which shortcodes are available?<\/h3><\/dt>\n<dd><p>[ticket_shop_tickets] lists published WooCommerce products marked as tickets. Optional parameters: <code>limit<\/code> and <code>columns<\/code>.<\/p>\n\n<pre><code>[ticket_shop_calendar] shows the next available dates and time slots from the global calendar. Optional parameters: `days` and `limit`.\n\n[ticket_shop_checkin] provides a protected front-end check-in for authenticated users who have ticket-validation permission. Reading a ticket does not consume it; confirmation is still required.\n<\/code><\/pre>\n\n<p>For backward compatibility, previous shortcode aliases continue to work after updating from older versions.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20handle%20payments%3F\"><h3>Does the plugin handle payments?<\/h3><\/dt>\n<dd><p>No. WooCommerce remains responsible for products, prices, checkout, payment gateways, taxes and refunds.<\/p><\/dd>\n<dt id=\"does%20reading%20a%20qr%20code%20immediately%20use%20the%20ticket%3F\"><h3>Does reading a QR Code immediately use the ticket?<\/h3><\/dt>\n<dd><p>No. Reading only inspects the ticket. The operator must press Confirm entry to consume it.<\/p><\/dd>\n<dt id=\"can%20the%20same%20ticket%20be%20used%20twice%3F\"><h3>Can the same ticket be used twice?<\/h3><\/dt>\n<dd><p>No. The database update that consumes a ticket only succeeds while the ticket is still active. Later attempts are rejected.<\/p><\/dd>\n<dt id=\"is%20the%20qr%20code%20sent%20to%20an%20external%20api%3F\"><h3>Is the QR Code sent to an external API?<\/h3><\/dt>\n<dd><p>No. QR images are rendered locally using the bundled QR library.<\/p><\/dd>\n<dt id=\"where%20are%20ticket%20pdfs%20stored%3F\"><h3>Where are ticket PDFs stored?<\/h3><\/dt>\n<dd><p>They are generated on demand and streamed to the authorized requester. Version 1.1.0 does not store generated PDF files permanently.<\/p><\/dd>\n<dt id=\"does%20it%20support%20woocommerce%20hpos%3F\"><h3>Does it support WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>The plugin uses WooCommerce order APIs and declares compatibility with High-Performance Order Storage.<\/p><\/dd>\n<dt id=\"how%20do%20ticket%20capacity%20limits%20work%3F\"><h3>How do ticket capacity limits work?<\/h3><\/dt>\n<dd><p>Set a default capacity on the WooCommerce ticket product and optionally create exact overrides under Ticket Shop for WooCommerce &gt; Vagas for a product, visit date and time. Capacity 0 means unlimited. Active and used tickets consume capacity; cancelling an individual ticket releases its place.<\/p><\/dd>\n<dt id=\"can%20i%20cancel%20only%20one%20ticket%20from%20an%20order%3F\"><h3>Can I cancel only one ticket from an order?<\/h3><\/dt>\n<dd><p>Yes. Ticket Shop for WooCommerce &gt; Tickets can cancel an individual active ticket without cancelling or refunding the WooCommerce order. Used tickets cannot be cancelled.<\/p><\/dd>\n<dt id=\"can%20an%20administrator%20reissue%20a%20ticket%3F\"><h3>Can an administrator reissue a ticket?<\/h3><\/dt>\n<dd><p>Yes. An active unused ticket can receive a new QR code and PDF content. The old QR becomes invalid because the ticket code changes, and the updated ticket can be resent by e-mail.<\/p><\/dd>\n<dt id=\"what%20can%20the%20ticket%20validator%20role%20access%3F\"><h3>What can the Ticket Validator role access?<\/h3><\/dt>\n<dd><p>The role can sign in and use ticket check-in. It does not receive WooCommerce management permissions or access to ticket cancellation, reissue, capacity or settings screens.<\/p><\/dd>\n<dt id=\"can%20i%20use%20a%20usb%20qr%20scanner%3F\"><h3>Can I use a USB QR scanner?<\/h3><\/dt>\n<dd><p>Yes. Scanners that behave like a keyboard can fill the check-in field. Supported browsers can also use the camera through the BarcodeDetector API.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added optional ticket capacity by product, visit date and time, including per-product defaults and exact slot overrides.<\/li>\n<li>Added cart\/checkout capacity validation and a final issuance guard.<\/li>\n<li>Added individual ticket cancellation without changing the WooCommerce order or refund state.<\/li>\n<li>Added administrator QR\/PDF reissue and manual ticket e-mail resend.<\/li>\n<li>Added lifecycle history for ticket creation, delivery attempts, check-in, cancellation and reissue.<\/li>\n<li>Kept and improved the restricted Ticket Validator role, including redirecting validators directly to check-in after login.<\/li>\n<li>Added new plugin-owned slot and lifecycle-log tables with automatic schema upgrade from previous versions.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Changed the public display name to <code>Ticket Shop for WooCommerce<\/code>.<\/li>\n<li>Updated visible plugin labels to use the new display name while preserving the existing WordPress.org slug, text domain and compatibility identifiers.<\/li>\n<li>No ticketing, QR, PDF, calendar, checkout or check-in behavior was changed.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Corrected URL output escaping in the plain-text WooCommerce ticket e-mail using <code>esc_url()<\/code>.<\/li>\n<li>Renamed the bundled Apache 2.0 license file to <code>LICENSE-ASL-2.0.txt<\/code> so the license remains distributed with an allowed text-file extension.<\/li>\n<li>No ticketing, QR, PDF, calendar or check-in behavior was otherwise changed.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Updated the public plugin name during the WordPress.org review process.<\/li>\n<li>Changed the package folder and text domain to <code>codestormtechnology-ticketing-woocommerce<\/code> for the requested permalink.<\/li>\n<li>Removed <code>Tested up to<\/code> from the PHP plugin header; compatibility is declared only in <code>readme.txt<\/code>.<\/li>\n<li>Added new <code>codestorm_ticketing_*<\/code> shortcode names while retaining the previous shortcode aliases for compatibility.<\/li>\n<li>Kept the local QR\/PDF implementation and the reduced third-party dependency set from 1.0.7.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Clarified local QR\/PDF generation and third-party dependency disclosures.<\/li>\n<li>Removed the HTML-to-PDF dependency tree and generate ticket PDFs locally with core PDF operators.<\/li>\n<li>Reduced bundled runtime libraries to the local QR generator and its settings container, with explicit license inventory.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Improved frontend contrast for calendar, ticket cards and WooCommerce visit fields.<\/li>\n<li>Added theme-isolated page-title contrast for pages using the calendar shortcode.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added translator comments required by WordPress coding standards for placeholder-bearing translatable strings in Help and ticket shortcode output.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added ticket-list, calendar and protected check-in shortcodes.<\/li>\n<li>Added shortcode documentation and examples to the built-in Help screen.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added the official WordPress.org author profile link.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Plugin Check cleanup: moved uninstall logic into a prefixed function so temporary variables no longer pollute global scope.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Plugin Check hardening: fixed prepared SQL construction, sanitized the WooCommerce order key and documented intentional custom-table database access.<\/li>\n<li>Prefixed uninstall-scope variables and documented intentional schema cleanup during uninstall.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial free release.<\/li>\n<li>WooCommerce ticket products, calendar, QR\/PDF ticket delivery and one-time check-in.<\/li>\n<\/ul>","raw_excerpt":"Turn WooCommerce products into simple tickets with visit dates, local QR\/PDF generation and one-time check-in.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/363989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=363989"}],"author":[{"embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/codestormtechnology"}],"wp:attachment":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=363989"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=363989"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=363989"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=363989"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=363989"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=363989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}