Description
Raffle for WooCommerce helps you run raffles and sell tickets through your WooCommerce store. Create unlimited raffles, generate printable tickets with QR codes, and let customers buy tickets for someone else. Perfect for charities, clubs, schools, and promotional giveaways.
This plugin is completely free. No premium version. No feature locks. Everything works
out of the box.
Buy Tickets for Someone Else
This is the feature that makes us different. Your customers can purchase raffle tickets as a gift for friends, family, or colleagues. The recipient gets an email notification with their ticket details. Their name goes into the draw, not the buyer’s name.
This works great for:
- Charity supporters buying tickets for elderly relatives who cannot purchase online.
- Club members purchasing tickets for their family.
- Businesses buying raffle entries for employees or clients.
- Anyone who wants to gift a chance to win.
All Features Included
Every feature listed below is free. No upgrades needed.
Raffle Management:
- Unlimited raffles with no restrictions.
- Unlimited ticket sales per raffle.
- Configurable start and end dates with live countdown timer.
- Progress bar displaying tickets sold vs available.
- Auto-close raffles when all tickets are sold.
- Full WooCommerce integration with all payment gateways.
Gift Purchases:
- Gift ticket purchasing with automatic recipient notification.
- Per-ticket gift recipient assignment with name, email, and personal message.
- Works with both WooCommerce Block Checkout and Classic Checkout.
Winner Selection & Management:
- Winner selection through manual picks, automatic draws, or Random.org verified selection.
- Winner management tabs: All Tickets, Winners, and Claimed — for cross-raffle overview.
- Quick “Mark Claimed” and “Resend Notification” buttons with bulk claim action.
- Prize claimed confirmation email to winners when their prize is marked as claimed.
Shortcodes:
[raffle_card id="123"]— Full product card with image, countdown, prize, and buy button.[raffle_cards]— Multiple raffle cards in a responsive grid:[raffle_cards ids="123,456,789"]— Display specific raffles by ID.[raffle_cards category="prizes" limit="4"]— Display raffles from a product category.[raffle_cards status="active" limit="6" columns="3"]— All active raffles in a 3-column grid.[raffle_cards status="all" orderby="random" limit="8"]— All raffles in random order.
[raffle_countdown id="123"]— Live countdown timer (compact or full format).[raffle_progress id="123"]— Ticket sales progress bar.[raffle_prize id="123"]— Prize information display.[raffle_status id="123"]— Status badge (Active / Ended / Winner Selected / Coming Soon / Sold Out).- All shortcodes support
id="latest"andid="active"keywords to auto-pick raffles.
Tickets & Validation:
- Printable ticket generation with unique ticket numbers.
- QR code generation for checking tickets at events.
- QR code scanner in admin for live event validation.
- CSV export for all ticket data.
- Ticket search by number, name, or email.
Email Notifications (6 built-in):
- Ticket Confirmation sent to purchaser after buying tickets.
- Gift Received sent to gift recipients with their ticket details.
- Winner Notification sent to winners when they are drawn.
- Prize Claimed Confirmation sent to winners when their prize is marked as claimed.
- Admin Winner Alert sent to admin when a winner is selected.
- Admin Draw Failed Alert sent to admin when an automatic draw fails.
- All emails are configurable in WooCommerce > Settings > Raffle > Emails and in WooCommerce > Settings > Emails.
Display Options:
- Compact countdown badge on shop and archive pages (optional setting).
- Urgency color shift when less than 3 days remain.
- “Winner Selected” and “Ended” status badges on archive pages.
- Customizable primary color, badge text, and footer for printable tickets.
Compliance & Legal:
- Skill-testing question system with configurable question pool (text and multiple choice). Global pool questions are pinned per product for consistency.
- Free entry route with “Paid Entry” / “Free Entry” tab interface for jurisdictions requiring “no purchase necessary” alternatives. Includes the skill-testing question so postal entrants know what to answer.
- Per-product compliance overrides to enable or disable skill questions and free entry on individual raffles.
- Store address auto-replacement in free entry instructions using the
[Your Address]placeholder.
Analytics & Reporting:
- Analytics dashboard showing sales and performance.
- Activity log tracking ticket generation, winner draws, prize claims, and more.
- Full audit trail for charity compliance and reporting.
- GDPR compliant with personal data export and erasure.
Technical:
- Works with WooCommerce High Performance Order Storag (HPOS).
- Works with WooCommerce Block Checkout.
- REST API available for custom integrations.
- Translation ready for any language.
- Hooks and filters throughout for customization.
Who Should Use This Plugin
- Charities and nonprofits running online fundraisers.
- Golf clubs, sports clubs, and social clubs doing member prize draws.
- Schools and parent associations raising funds.
- Churches and community groups organizing raffles.
- Local businesses running customer promotions.
- Online stores creating giveaways and contests.
How to Create Your First Raffle
- Add a new product in WooCommerce.
- Select Raffle as the product type.
- Set your ticket price and how many tickets you want to sell.
- Choose start and end dates for your raffle.
- Turn on gift purchasing if you want customers to buy for others.
- Publish your raffle and start selling.
- When the raffle ends, pick a winner manually or let the system choose automatically.
- The winner gets an email with prize details.
Embed Raffles Anywhere with Shortcodes
Use shortcodes to display raffle information on any page, post, or landing page — not just WooCommerce product pages.
The [raffle_card] shortcode gives you a complete, self-contained raffle preview with image, countdown, prize, and buy button. Perfect for homepages, blog posts, and landing pages. Use [raffle_cards] to display multiple raffles in a responsive grid — filter by IDs, category, or status with customizable columns.
All shortcodes accept a product ID or use id="latest" / id="active" to automatically pick the most relevant running raffle. See the full documentation for examples.
Built for Developers
- Compatible with WooCommerce 8.0 and newer.
- Works with High Performance Order Storage out of the box.
- Block checkout support included.
- REST API available for custom integrations.
- Translation ready for any language.
- Hooks and filters throughout for customization.
Get Help
- Read the documentation at Themology.
- Ask questions in the WordPress.org support forum.
- Visit Themology.com for bug reports or feature requsts.
External Services
This plugin connects to the following external services to provide certain functionality.
QR Server API
The plugin generates QR code images for raffle tickets using the QR Server API.
What gets sent: Only the ticket validation URL that gets encoded into the QR image. No personal information is transmitted.
When this happens: When a customer views or prints their ticket.
Provider: Foundata GmbH (Germany)
Privacy policy: goqr.me/de/rechtliches/datenschutz-qrserver.html
The API is free and does not require registration.
Random.org (Optional)
When you select a winner using the Random.org method, the plugin requests random numbers from their API. This gives you certified random selection for fair draws.
What gets sent: A request for random numbers. No customer data or personal information leaves your site.
When this happens: Only when you click the button to select a winner using Random.org. Never automatic.
You can read their terms at random.org/terms and their privacy policy at random.org/privacy.
You do not need to use Random.org. Manual and automatic selection work without any external connections.
Screenshots

Plugins Settings 
Plugins Settings 
Plugins Settings 
Plugins Settings 
Plugins Settings 
Countdown timer and progress bar on the product page. 
Gift ticket purchase option at checkout. 
Admin order details. 
Customer ticket list in My Account. 
Printable ticket with QR code. 
Admin winner selection screen. 
Raffle product settings showing dates and ticket limits. 
Ticket management list 
QR code scanner for event check in. 
Analytics dashboard with sales data. 
Pirze claimed.
Installation
Install from WordPress
- Go to Plugins then Add New in your WordPress admin.
- Search for Raffle for WooCommerce.
- Click Install Now and then Activate.
- Go to WooCommerce then Settings then Raffle to set up your options.
Install Manually
- Download the plugin zip file.
- Go to Plugins then Add New then Upload Plugin.
- Upload the zip file and click Activate.
- Go to WooCommerce then Settings then Raffle to set up your options.
What You Need
- WordPress 6.0 or newer.
- WooCommerce 8.0 or newer.
- PHP 7.4 or newer.
FAQ
-
Is this plugin actually free?
-
Yes. Every feature works without paying anything. We built this plugin because charities and small organizations deserve good raffle tools without expensive subscriptions.
-
How does gift ticket purchasing work?
-
When a customer adds raffle tickets to their cart, they can choose to buy them as a gift. They enter the recipient’s name and email at checkout. The recipient gets an email saying they received raffle tickets. The recipient’s name appears on the ticket and enters the draw.
-
What winner selection options do I have?
-
You can pick winners three ways. Manual selection lets you browse all tickets and choose yourself. Automatic selection picks a random winner when the raffle ends. Random.org selection uses their certified random number service for verified fair draws.
-
Can I run multiple raffles at the same time?
-
Yes. Create as many raffles as you need. Each raffle is a separate WooCommerce product with its own settings.
-
How do customers see their tickets?
-
Customers can view all their raffle tickets in the My Account section. They can also print tickets with QR codes for each entry.
-
Can I check tickets at a live event?
-
Yes. Use the QR code scanner in your WordPress admin. Scan the QR code on any ticket to verify it and mark it as checked in.
-
Does this work with WooCommerce subscriptions?
-
This plugin handles one time raffle ticket purchases. You can create new raffles whenever you want.
-
Can I export ticket data?
-
Yes. Export all tickets to a CSV file from the admin dashboard. Filter by raffle, date, or status before exporting.
-
Is this plugin GDPR compliant?
-
Yes. The plugin integrates with WordPress privacy tools. Customers can request their data or ask for deletion. Gift recipient data is only used for ticket delivery and draw purposes.
-
Can I display raffle countdowns or cards on any page?
-
Yes. The plugin includes six shortcodes you can use on any page, post, or landing page. Use
[raffle_card id="123"]for a full product card with image, countdown, and buy button, or[raffle_cards ids="123,456" columns="3"]to display multiple raffles in a grid. Use[raffle_countdown id="123"]for just the timer,[raffle_progress id="123"]for the progress bar,[raffle_prize id="123"]for prize info, or[raffle_status id="123"]for a status badge. You can also useid="latest"orid="active"instead of a product ID. -
Can I show countdown timers on the shop page?
-
Yes. Go to WooCommerce > Settings > Raffle > Display and enable “Show Countdown on Shop Pages.” This adds a compact countdown badge below the price for raffle products on shop and category archive pages. Products with less than 3 days remaining show an urgency-colored badge.
-
How do I manage winners across all raffles?
-
Go to WooCommerce > Raffle Tickets. The page has three tabs: All Tickets, Winners, and Claimed. The Winners tab shows all winners across all raffles with quick “Mark Claimed” and “Resend Notification” buttons. You can also bulk-select winners and mark them as claimed in one click. The per-product Winner Selection metabox on the product edit page still works for per-raffle management.
-
What email notifications does the plugin send?
-
The plugin includes six email notifications: Ticket Confirmation (to purchaser), Gift Received (to gift recipient), Winner Notification (to winner), Prize Claimed Confirmation (to winner when claimed), Admin Winner Alert (to admin), and Admin Draw Failed Alert (to admin). Each can be toggled on or off in WooCommerce > Settings > Raffle > Emails, and customized in WooCommerce > Settings > Emails.
-
Will this work with my theme?
-
Yes. The plugin uses minimal styling and inherits your theme’s appearance. It works with any theme that supports WooCommerce.
-
Can I customize the printable tickets?
-
Yes. You can customize the primary color, badge text, and footer message in WooCommerce Settings under the Raffle > Print Ticket section. Email templates use the standard WooCommerce email system.
-
What happens if a winner does not claim their prize?
-
You can redraw a new winner from the admin panel. The original winner can be marked as unclaimed.
-
How do skill-testing questions work?
-
Go to WooCommerce > Settings > Raffle > Compliance and enable Skill-Testing Questions. Build a question pool with text or multiple choice questions. When enabled, customers see a randomly selected question on the product page and must answer correctly to add tickets to the cart. Answers are validated server-side with secure hashing. You can also override the global setting per product in the product’s Compliance Settings tab.
-
What is the free entry route?
-
The free entry option adds a “Paid Entry” / “Free Entry” tab interface on the raffle product page. This satisfies “no purchase necessary” requirements in jurisdictions like Canadian provinces. Enable it in WooCommerce > Settings > Raffle > Compliance and write your own instructions. Use the
[Your Address]placeholder to auto-insert your WooCommerce store address. You can also override this per product.
Reviews
Contributors & Developers
“Raffle for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Raffle for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.7
Released February 2026.
Improvements:
- Improvement: Global pool skill-testing questions are now pinned per product. When a raffle uses the global question pool, a question is randomly assigned once on first page view and persists permanently — ensuring postal (free entry) participants always see the same question. Previously, a random question was selected on every page load.
- Improvement: New searchable “Pinned question” dropdown on the raffle product edit screen lets admins browse and select a specific question from the global pool, or leave it on auto-assign for automatic selection on first customer visit.
- Improvement: The free entry (postal) tab on the product page now displays the skill-testing question text so postal entrants know which question to answer in their mail entry.
- Improvement: New “Frontend Accent Color” setting under Display lets store owners customize the accent color for all raffle UI elements (countdown, progress bar, prize badges, tabs, buttons, etc.). All 20+ hardcoded color instances have been replaced with CSS custom properties for full flexibility.
- Improvement: The postal address in the free entry instructions is now automatically highlighted with bold text and a subtle green background tint for better visibility.
1.0.6
Released February 2026.
New Features:
- New: Skill-testing question system for Canadian and legal compliance. Configure a global question pool with text and multiple choice questions. Customers must answer correctly before adding raffle tickets to the cart.
- New: Free entry route with “Paid Entry” / “Free Entry” tab interface on the product page. Meets “no purchase necessary” requirements for jurisdictions that require an alternative entry method.
- New: Per-product compliance overrides. Enable or disable skill-testing questions and free entry on individual raffle products, with optional custom question pools per product.
- New: Store address auto-replacement in free entry instructions using the
[Your Address]placeholder, pulling from WooCommerce store settings.
Bug Fixes:
- Fixed cart quantity enforcement when switching from regular purchase to gift at checkout — per-customer limits are now correctly bypassed for gift items.
- Fixed
get_max_purchase_quantity()to skip per-customer limit when cart items are flagged as gift, preventing quantity cap from blocking multiple gift recipients. - Fixed race condition in Block Checkout where
updateCartQuantity()could fire beforeupdateServerData()completed, causing the gift flag to be missing when the server enforced limits. - Fixed gift flag propagation —
handle_gift_data_update()now sets therfwc_is_giftflag directly on cart item data, not just in the WC session. - Fixed classic checkout AJAX handler — gift items are now explicitly flagged before cart quantity update to prevent enforcement hooks from blocking the change.
- Fixed cart quantity enforcement hooks (
enforce_cart_item_quantity_limitandenforce_cart_item_quantity_display) with WC session fallback for gift data, guarding against race conditions between async API requests. - Fixed PHPCS compliance: explicit
esc_attr()at output point in settings page, collapsed multi-line ternary for proper nonce verification ignore coverage.
Improvements:
- Improved gift checkout flow: customers can now start a regular purchase and switch to gift mode at checkout with full support for adding multiple recipients and automatic quantity adjustment.
- Updated plugin documentation with comprehensive coverage of skill-testing questions, free entry route, shortcodes, per-ticket gift recipients, compliance settings, and all email configurations.
1.0.5
Released February 2026.
Bug Fixes:
- Fixed gift checkout race condition where recipient data could be lost with Block Checkout due to async session sync timing.
- Fixed gift data now embedded directly in checkout request body as a reliable alternative to session-based sync.
- Fixed “Other Tickets” label showing on admin order page for non-gift purchases — now shows “Raffle Tickets”.
- Fixed empty Gift Details rows appearing on Order Received / My Account when recipient data was missing.
- Fixed ticket generation fallback so partial recipient data still marks tickets as gifts using order-level data.
- Fixed cart quantity enforcement for non-gift purchases.
Improvements:
- Added three-layer data reliability for Block Checkout gift purchases (blocking sync, extension data, and server-side patching).
- Analytics page now gracefully handles Chart.js load failures — stats and tables still display when charts cannot render.
- Analytics AJAX now shows clear error messages instead of staying on “Loading…” forever when data fetch fails.
New Features:
- New:
[raffle_cards]multi-card shortcode for displaying multiple raffle cards in a responsive grid.[raffle_cards ids="123,456,789"]— Display specific raffles by ID.[raffle_cards category="prizes" limit="4"]— Display raffles from a product category.[raffle_cards status="active" limit="6" columns="3"]— Display active raffles in a 3-column grid.- Supports
orderby(date, price, title, random),order(ASC/DESC),columns(1-4), andlimitparameters. - Responsive grid automatically collapses to fewer columns on smaller screens.
1.0.4
Released February 2026.
Bug Fixes:
- Fix: Progress bar now counts both active and winner tickets as “sold.” Previously, winning tickets were excluded from the count after a draw, making the bar appear to go backwards.
- Fix: Countdown timer now stops immediately when winners are selected early (before the scheduled end date). Previously it kept ticking until the original end date.
New Features:
- New: Compact countdown badge on shop/archive pages. Enable in WooCommerce > Settings > Raffle > Display > “Show Countdown on Shop Pages.” Displays a slim inline “Ends in: 18d 4h 26m” pill under the price for raffle products.
- New: Five shortcodes for embedding raffle data on any page or post:
[raffle_card id="123"]— Full product card with image, countdown, prize, and CTA button.[raffle_countdown id="123"]— Live countdown timer (compact orformat="full").[raffle_progress id="123"]— Ticket sales progress bar.[raffle_prize id="123"]— Prize information display.[raffle_status id="123"]— Status badge (Active / Ended / Winner Selected / Coming Soon / Sold Out).- All shortcodes support
id="latest"andid="active"keywords.
- New: Winner management tabs on the Raffle Tickets page. Three tabs — All Tickets, Winners, Claimed — give a cross-raffle overview without navigating to individual product pages. Includes quick “Mark Claimed” and “Resend Notification” buttons, bulk claim action, and raffle filter.
- New: Prize Claimed Confirmation email. When an admin marks a winner’s prize as claimed, the winner receives a confirmation email. Configurable in WooCommerce > Settings > Raffle > Emails and customizable in WooCommerce > Settings > Emails.
- New: All mark-claimed actions (single, bulk, and product metabox) are logged to the activity trail and trigger the prize claimed email notification.
1.0.3
Released February 2026.
Security:
- Security: Fixed XSS vulnerability in QR scanner JavaScript where unescaped raffle and holder names could execute scripts in admin context.
- Security: Fixed XSS vulnerability in analytics JavaScript where raffle and purchaser names were injected via raw HTML concatenation.
- Security: QR code verification hashes are now computed locally using wp_hash(). No ticket data beyond the validation URL is sent to the QR image API.
- Security: Public QR validation page now masks ticket holder names for GDPR compliance. Full names only shown in admin scanner.
New Features:
- New: Admin Winner Alert email notification. Sends email to admin when a winner is drawn. Uses the existing setting in Raffle > Emails, now fully wired.
- New: Admin Draw Failed Alert email notification. Sends email to admin when an automatic draw fails. New setting added in Raffle > Emails.
- New: Ticket search in admin. Search box on the Raffle Tickets page searches across ticket number, recipient name, recipient email, purchaser name, and purchaser email. Works with status tabs and CSV export.
- New: Activity Log section on the Analytics page showing recent raffle events like ticket generation, winner draws, and errors.
- New: Per-ticket gift recipient assignment. Each raffle ticket can now have its own unique recipient with separate name, email, and personal gift message.
- New: Full gift checkout support for WooCommerce Classic (shortcode) Checkout, matching the Block Checkout experience with dynamic add/remove recipient fields.
Enhancements:
- Enhancement: Adding or removing gift recipients in Classic Checkout now automatically updates the order summary and totals via AJAX.
- Enhancement: Theme-aware styling for gift checkout fields. Interactive elements inherit the theme primary color via CSS custom properties across both checkout types.
- Enhancement: Admin orders list Gift column now shows recipient count or single recipient name instead of a basic flag.
- Enhancement: Contextual empty state messages for ticket tabs (e.g., “No winners have been drawn yet” for Winners tab).
- Enhancement: Search respects current status tab filter. Tab highlighting stays active during search. Clear search on tab click.
Bug Fixes:
- Fix: Winners tab always showed 0 results because winner selection set ticket status to ‘won’ instead of the valid ‘winner’ status.
- Fix: Raffle email settings (ticket confirmation, gift notification, winner notification) were dead checkboxes with no implementation. All three are now wired to their email classes.
- Fix: Duplicate ticket generation from concurrent order status transitions. Added transient-based mutex lock.
- Fix: No availability check during ticket generation. Quantity is now clamped if raffle capacity is exceeded.
- Fix: Winner save failure was silently ignored. Now rolls back the transaction and returns an error.
- Fix: Winner transaction used a non-locking read allowing concurrent draws to both succeed. Added SELECT FOR UPDATE.
- Fix: Completed and failed raffles still showed “Buy Ticket” button. Now checks raffle status in is_active().
- Fix: Cancelling an order overwrote winner ticket status. Winner tickets are now skipped during cancellation.
- Fix: Cart quantity update on cart page bypassed raffle validation. Added woocommerce_update_cart_validation hook.
- Fix: No date validation on product save. Added format validation, range checks, and end-after-start cross-field validation.
- Fix: Resend winner notification also triggered a duplicate admin alert. Now calls the email directly.
- Fix: Failed auto-draws no longer cause infinite retry loops. Raffle is marked as failed after draw failure.
- Fix: Timezone handling uses wp_timezone() consistently for raffle start/end times.
- Fix: Audit logging now writes to the correct database column.
- Fix: Manual winner selection now properly marks the raffle as completed.
- Fix: Server-side cart validation enforces raffle status, ticket availability, and per-customer limits.
- Fix: Tickets reactivate when an order is restored from cancelled status.
- Fix: schedule_draw() uses correct timezone conversion for WP-Cron scheduling.
- Fix: Random.org fallback proof metadata is preserved in the audit trail.
- Fix: Deleted orders now cancel their associated tickets for both legacy and HPOS storage.
- Fix: Analytics CSV exports via Blob download instead of server-side file, avoiding PII files left on disk.
- Fix: Order received page, My Account order details, and admin order metabox now display all gift recipients with their assigned ticket numbers instead of only the first.
- Fix: Gift recipient emails are now sent per unique recipient with only their specific tickets, instead of all tickets going to the first recipient.
- Fix: Block Checkout race condition resolved. Recipient data is synced immediately on add/remove and verified before order submission.
- Fix: Removed “(optional)” label from the gift checkbox in Classic Checkout.
- Fix: Hidden raw order item meta from the admin order items display.
- Fix: Fuzzy LIKE lookup in QR validation now uses LIMIT 1 to prevent matching wrong tickets.
- Fix: Broken HTML in recent validations table from misuse of esc_attr() on inline styles.
- Fix: Missing public_scan source label in validation log.
Developer / Code Quality:
- Dev: Duplicate QR hash generation logic consolidated into a single method.
- Dev: Removed duplicate RFWC_Settings and RFWC_Admin_Notices instantiations.
- Dev: Removed dead code: show_if_raffle() empty method and get_bulk_print_url() unused method.
- Dev: Removed phantom rfwc_daily_cleanup dead code.
- Dev: Added missing purchaser_email database index for ticket lookups.
- Dev: Added request-level caching for get_tickets_sold() to avoid repeated COUNT queries.
- Dev: Ticket meta no longer set to autoload in wp_options for better scalability.
- Dev: Expired ticket status now has proper UI support with badge, counts, and translatable labels.
- Dev: Accessibility improvement for analytics filter dropdowns with proper labels.
- Dev: Hardcoded i18n strings in JavaScript moved to wp_localize_script objects.
- Dev: uninstall.php cleans up all new options and meta including HPOS order meta.
- Dev: Deactivation now clears individual raffle draw cron events.
- Dev: WordPress coding standards compliance with translators comments, nonce verification handling, and output escaping.
1.0.2
Released February 2026.
- Fix: Draw Winners success and error messages were not visible (message box stayed hidden). Messages now display correctly.
- Improvement: Draw Winners “Number of winners” reflects the value from product settings; helper text now says “X ticket(s) in the draw” for clarity.
1.0.1
Released February 2026.
- Fix: “Draw Winners” button and related winner UI not working due to class name mismatch (rfw- vs rfwc-).
- Fix: Align all admin and frontend class prefixes to rfwc- for gift checkout, ticket list, order metabox, analytics, ticket generator, and QR validator.
- Fix: QR ticket scanner “Start Camera” and manual validation form not responding (JS selectors now match HTML IDs).
1.0.0
Released January 2026.
- First public release.
- Raffle product type for WooCommerce.
- Gift ticket purchasing with recipient email notifications.
- Printable ticket generation with unique numbers and QR codes.
- QR code validation and event check in system.
- Winner selection with manual, automatic, and Random.org options.
- Multiple winner support for raffles with several prizes.
- Countdown timer widget.
- Progress bar showing tickets sold.
- Customer ticket management in My Account.
- Admin ticket management with filters and export.
- Email notifications through WooCommerce email system.
- Analytics dashboard with charts and statistics.
- Prize fulfillment for product prizes and store credit.
- Full audit trail for compliance.
- GDPR compliant with data export and erasure.
- Works with WooCommerce HPOS.
- Works with WooCommerce block checkout.
