Get Plugin

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).

SettingDescription
Tier min qtyMinimum tickets purchased to qualify (e.g., 5)
Tier bonusNumber of bonus tickets awarded (e.g., 1)
Scroll to see all columns →
Example: Buy 5+ → 1 bonus, Buy 10+ → 3 bonus. A customer buying 12 tickets gets 3 bonus (tier 2).

Early Bird

Flat bonus for purchases before a cutoff date/time.

SettingDescription
Cutoff dateOrders on or before this date qualify
Cutoff timeOptional time (defaults to 23:59)
Bonus ticketsNumber of bonus tickets for early purchases
Scroll to see all columns →

User Role

Flat bonus for customers with specific WordPress roles. Guest users (no account) are excluded gracefully.

SettingDescription
Qualifying rolesWordPress roles that qualify (multi-select)
Bonus ticketsNumber of bonus tickets for qualifying customers
Scroll to see all columns →

Stacking & Caps

SettingDescription
Stacking modeStack 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 orderHard cap on total bonus tickets per order. 0 or blank = no cap.
Scroll to see all columns →

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_id and ticket numbering sequence.
  • Each bonus ticket is flagged with _is_bonus metadata.
  • The product's _rfwc_pro_total_bonus_tickets counter 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:
- "Quantity bonus: +3 | Early bird bonus: +1 | Member bonus: +2" - "Total: +6 bonus ticket(s)"

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

ElementCSS 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
Scroll to see all columns →