Pro/Bonus Tickets
Bonus Tickets
Auto-award extra draw entries based on quantity thresholds, early bird timing, or customer role. Bonus tickets are additional entries that do not consume from the purchasable total_tickets pool — they are extra chances to win beyond what was purchased.
Enabling
- Go to WooCommerce → Settings → Raffle → Pro Modules and enable Bonus Tickets.
- Edit a raffle product.
- In the PRO Features section, check Bonus Tickets.
- Configure one or more bonus rules below.
Rule Types
Quantity Threshold
Tiered bonus based on how many tickets are purchased. Up to 5 tiers. Only the highest qualifying tier applies (tiers do not stack with each other).
| Setting | Description |
|---|---|
| Tier min qty | Minimum tickets purchased to qualify (e.g., 5) |
| Tier bonus | Number of bonus tickets awarded (e.g., 1) |
Early Bird
Flat bonus for purchases before a cutoff date/time.
| Setting | Description |
|---|---|
| Cutoff date | Orders on or before this date qualify |
| Cutoff time | Optional time (defaults to 23:59) |
| Bonus tickets | Number of bonus tickets for early purchases |
User Role
Flat bonus for customers with specific WordPress roles. Guest users (no account) are excluded gracefully.
| Setting | Description |
|---|---|
| Qualifying roles | WordPress roles that qualify (multi-select) |
| Bonus tickets | Number of bonus tickets for qualifying customers |
Stacking & Caps
| Setting | Description |
|---|---|
| Stacking mode | Stack all matching rules adds bonuses across rule types. Apply highest bonus only takes the single largest bonus. Within Quantity Threshold, only the highest tier applies regardless of stacking mode. |
| Max bonus per order | Hard cap on total bonus tickets per order. 0 or blank = no cap. |
How it works
- Customer purchases tickets and the order reaches processing/completed status.
- Core plugin generates the paid tickets normally.
- Bonus Tickets module evaluates all enabled rules against the order.
- Matching bonuses are combined (stacked or highest-only) and capped.
- Bonus tickets are generated with the same
order_idand ticket numbering sequence. - Each bonus ticket is flagged with
_is_bonusmetadata. - The product's
_rfwc_pro_total_bonus_ticketscounter is incremented.
Pool behavior
Bonus tickets are extra entries outside the purchasable pool:
- A raffle with 100 total tickets and 15 bonus tickets has 100 purchasable slots and 115 draw entries.
- The progress bar shows 100/100 (purchased tickets only).
- "Sold out" triggers at 100 purchased tickets.
- All 115 tickets (paid + bonus) participate in the draw equally.
Partial refund handling
When paid tickets are refunded, bonus entitlement is re-evaluated:
- The system counts remaining paid tickets for the order + raffle.
- It recalculates which quantity tier the remaining count qualifies for.
- Excess bonus tickets are cancelled in LIFO order (most recent first).
- Early bird and role bonuses survive as long as at least 1 paid ticket remains.
- If all paid tickets are cancelled, all bonus tickets are cancelled too.
- The product's bonus counter is decremented for each cancelled bonus ticket.
Frontend display
A "Bonus Tickets" section appears on the product page showing active rules:
- Quantity tiers listed with checkmark icons
- Early bird with cutoff date (hidden after expiry)
- Role bonus (only shown to qualifying logged-in users)
- Dynamic preview updates as the customer changes quantity, showing a per-rule breakdown:
Feature interactions
- Per-customer limit: Bonus tickets do NOT count against the limit.
- IP restriction: Bonus tickets do NOT count against the IP limit.
- Ticket Picker: Bonus tickets are auto-assigned (not pickable). They appear as sold in the grid.
- Entry List: Bonus tickets appear in the entry list.
- Winner Selection: Bonus tickets are normal entries in the draw pool.
- Instant Win: Bonus tickets are evaluated for instant win like paid tickets.
- Alphabet format: Bonus tickets get the next available alphabet number.
CSS classes
| Element | CSS Class |
|---|---|
| Info container | .rfwc-pro-bonus-info |
| Title | .rfwc-pro-bonus-info__title |
| Rules list | .rfwc-pro-bonus-info__rules |
| Individual rule | .rfwc-pro-bonus-rule |
| Active rule highlight | .rfwc-pro-bonus-rule--active |
| Quantity rule | .rfwc-pro-bonus-rule--qty |
| Early bird rule | .rfwc-pro-bonus-rule--early |
| Role rule | .rfwc-pro-bonus-rule--role |
| Preview container | .rfwc-pro-bonus-preview |
| Admin badge | .rfwc-pro-badge--bonus |