← All resources

raffleWP Resource

WooCommerce Competition Plugins: How Entries and Tickets Work

Follow a competition entry from basket and reservation through payment, refund review and draw preparation, with practical checks for WooCommerce sites.

raffleWP Editorial

A WooCommerce competition plugin connects ecommerce orders to competition entries. It should decide when an entry becomes valid, reserve and allocate ticket numbers safely, enforce limits, respond correctly to failed payments and refunds, and preserve records for winner selection.

Publisher and scope: raffleWP publishes this educational guide. Reviewed on 8 September 2026 against the WooCommerce order-status documentation and raffleWP 1.4.2. The general checklist describes questions to ask of any plugin; it is not a promise that every product supports every option mentioned.

The competition page is only the visible part of that system. The harder work happens between the basket, payment gateway, order status, entry ledger and customer account. This guide explains that lifecycle and the questions to ask before choosing or configuring a plugin.

What does a WooCommerce competition plugin do?

WooCommerce already manages products, baskets, checkout, orders and payment-gateway connections. A competition plugin adds rules and records that ordinary products do not need, such as competition capacity, numbered entries, instant-win outcomes and winner selection.

WooCommerce eventCompetition decision
Product added to basketCheck availability, entry limits and any selected numbers
Checkout beginsReserve scarce numbers or capacity for a defined period
Payment succeedsConfirm the order and make the associated entries eligible
Payment fails or expiresRelease reservations without creating valid entries
Order is refundedApply the published eligibility policy and retain an audit record
Competition closesStop new entry requests, resolve timely reservations and postal requests, then review the eligible pool
Winner is selectedRecord the result, prize, evidence and any later redraw

Competition products and capacity

A specialist plugin normally adds competition settings to a WooCommerce product. These may include opening and closing dates, entry price, total entry range, maximum entries per customer, number-selection mode, optional question or eligibility fields, depending on the product, instant-win configuration and draw information.

Capacity must be enforced as a transaction, not just displayed as a progress bar. If only five entries remain and several people reach checkout together, the system must prevent duplicate allocation and overselling while still releasing abandoned reservations.

Chosen numbers versus automatic allocation

Customer-selected numbers

A number grid lets customers select particular entries. The plugin needs to show availability accurately, reserve choices during checkout and explain when a reservation expires. It should handle browser refreshes, basket changes and two customers selecting the same final number.

Automatically assigned numbers

Automatic allocation can produce a simpler checkout. The system must still assign unique entries predictably and show the confirmed numbers in the order, account and relevant email. “Lucky dip” or random allocation should not mean the underlying database operation is left to chance.

Reservation and allocation are different

A reservation temporarily removes an entry from general availability while checkout is in progress. An allocation links the confirmed entry to the relevant order and customer according to the site’s payment rules.

  • Reservations need a clear expiry period.
  • Expired, abandoned and failed checkouts should release availability.
  • Confirmed allocation should be idempotent: repeated payment notifications must not create duplicate entries.
  • Administrators need to see why an entry is reserved, confirmed, excluded or released.
  • The public availability count and internal ledger should reconcile.

This is one of the most important differences between a competition plugin and a simple form or giveaway tool.

Which WooCommerce order status creates a valid entry?

There is no universal answer because gateways and store workflows differ. Some payments move directly to processing or completed; others may remain on hold while the provider confirms funds. The plugin should document which statuses create, hold or invalidate entries and let the operator test the exact gateways in use.

  • Pending payment: usually means checkout has started but payment is not confirmed.
  • On hold: may represent a method awaiting confirmation or manual review.
  • Processing or completed: commonly represents a paid order, depending on the product and gateway.
  • Failed or cancelled: should not remain in the eligible pool.
  • Refunded: must be handled according to the promotion terms and recorded consistently.

Use WooCommerce’s actual order history as the source of truth during testing. Do not infer success solely from the page shown after checkout.

Entry limits need more than a basket check

A maximum-per-person rule may need to count confirmed entries from earlier orders as well as the current basket. Identify the account or email rules your chosen plugin actually supports and consider how guest checkout affects enforcement. Household limits and identity checks may require an additional process; do not assume a ticket quantity limit provides them.

The customer should see a useful message before payment. Administrators should be able to explain any rejected or adjusted order without manually counting records across several screens.

Refunds, chargebacks and cancelled orders

Write the policy before launch and make the software follow it. Record the original allocation, the order change, the effect on eligibility and whether the number returns to the available pool. Avoid silently deleting the history: an audit trail helps explain the final draw pool.

Chargebacks and payment disputes may arrive after an order appeared successful. Define who reviews them and what happens if a competition has already closed or a prize has been awarded.

Where should customers see their entries?

Confirmed numbers should be easy to find without contacting support. A strong implementation can surface them in:

  • The order confirmation page.
  • Transactional order emails.
  • The WooCommerce account area.
  • The individual order record.
  • A dedicated entries or competitions view.

Every surface should derive from the same entry ledger so customers do not see conflicting numbers.

Free entries in a WooCommerce workflow

Where a promotion includes a free entry route, valid free entries need to join the same competition pool with the appropriate chance of winning. Operators need a controlled way to validate requests, prevent duplicates, assign numbers and retain the source record.

Read the operational guide to free postal entries for UK competition websites. This is not legal advice; consult the Gambling Commission guidance and obtain professional advice for your promotion.

Preparing entries for the draw

At close, stop new entry requests and complete the checks stated in the terms. Resolve timely reservations according to the documented payment workflow before finalising the pool. Reconcile payment states and refunds, process valid free requests received within the rules, identify exclusions and preserve an export or other fingerprint of the eligible pool.

The draw record should connect the chosen winner to the source entry without exposing unnecessary customer information. Our guide to verifiable random draws explains what evidence to retain.

WooCommerce competition plugin checklist

  1. Does it prevent duplicate or excess allocation under concurrent checkout?
  2. When are numbers reserved, confirmed and released?
  3. Which order statuses affect eligibility?
  4. How do refunds and cancellations appear in the audit history?
  5. Can limits account for earlier orders?
  6. Can customers find confirmed entries in their account?
  7. Can administrators process free entries consistently?
  8. Are instant wins connected to entries, orders and fulfilment?
  9. Can the eligible pool be reviewed and exported?
  10. Are winners, reserves and redraw reasons retained?
  11. Does the plugin support your current WordPress, WooCommerce and PHP versions?
  12. Can the vendor explain scaling, backups and support?

Frequently asked questions

Can WooCommerce sell competition entries?

WooCommerce can manage the product, checkout, payment and order. A specialist competition plugin is needed to add competition capacity, entry allocation, ticket numbers and winner operations.

When should a ticket number be assigned?

The exact moment depends on the workflow. Scarce customer-selected numbers may require a temporary checkout reservation, while confirmed eligibility should follow the documented successful-payment state. Failed and expired attempts must be released safely.

Can two customers receive the same ticket number?

A reliable plugin should use database-level safeguards and controlled reservations to prevent duplicate allocation. Test the final available numbers with concurrent sessions before launch.

Keep the order and entry history connected

The practical value of a WooCommerce competition plugin is not the number grid alone. It is the connected record from product and payment through entry, win and fulfilment. See how raffleWP connects the competition workflow, or start with the full guide to building a WordPress competition website.

How the lifecycle maps to raffleWP

raffleWP temporarily reserves ticket availability and confirms tickets on supported WooCommerce payment-completion and processing/completed order events. Failed, cancelled and fully refunded order states trigger ticket cancellation handling. An on-hold order is not proof that payment has cleared. Review the actual entry record when payment handling needs manual attention.

A partial or amount-only refund is not equivalent to a fully refunded order. Reconcile the refunded amount, returned quantities and entry eligibility before the draw. The performance reports deduct recorded refunds; that financial calculation does not replace the operator’s eligibility review.

A separate entry-closing time can leave space before the advertised draw. Eligible postal requests received before closing can be recorded afterwards and before winner selection. Main draws remain administrator actions. See the raffleWP ticket-management feature page for the product workflow and winner management for claims and results.