Skip to content

Filter Hooks Reference

This page provides the complete directory of all filter hooks prefixed with qcw_ across ticket handling, instant wins, cart validation, participants, queries, and administrative settings.


Filters the rendered output of a ticket number across checkout, customer account, order emails, and grids.

  • Arguments: (string|int $ticket_number, WC_Product $product)
add_filter( 'qcw_ticket_number_display_html', function( $ticket_number, $product ) {
return '<span class="custom-badge">#' . esc_html( $ticket_number ) . '</span>';
}, 10, 2 );

Filters ticket number HTML formatting within tabbed pagination grids.

  • Arguments: (string $html, int $ticket_number, int $product_id)

Filters the starting index number of tickets for a competition (e.g. 1 or 1001).

  • Arguments: (int $start_number, int $product_id)

Filters the complete array of available ticket numbers prior to rendering the selector grid.

  • Arguments: (array $available_tickets, int $product_id)

Filters the requested quantity and arguments when generating random ticket allocations.

  • Arguments: (array $tickets, int $quantity, int $product_id)

Filters the final returned pool of random ticket numbers.

  • Arguments: (array $tickets, int $product_id)

Filters the selected winning ticket number produced by the randomizer engine.

  • Arguments: (int $winning_number, int $product_id)

qcw_get_lottery_instant_ticket_numbers_prizes_field

Section titled “qcw_get_lottery_instant_ticket_numbers_prizes_field”

Filters the raw instant win prizes data string/array saved on a competition product.

  • Arguments: (mixed $prizes, int $product_id)

qcw_get_lottery_instant_ticket_numbers_prizes_field_total

Section titled “qcw_get_lottery_instant_ticket_numbers_prizes_field_total”

Filters the total count of instant win tickets configured for a competition.

  • Arguments: (int $total, int $product_id)

Filters the count of claimed instant win prizes.

  • Arguments: (int $count, int $product_id)

Filters the count of remaining unclaimed instant win prizes.

  • Arguments: (int $count, int $product_id)

Filters the grouped instant prizes array (aggregating identical prizes for frontend tables).

  • Arguments: (array $grouped, int $product_id)

Filters the statistical count of instant prizes per tier.

  • Arguments: (array $counts, int $product_id)

Filters the count of winners per prize tier.

  • Arguments: (array $counts, int $product_id)

Filters the table columns shown in the frontend grouped instant win prizes table.

  • Arguments: (array $columns)

Filters the pagination row count on the instant winners list table (default: 10).

  • Arguments: (int $per_page)

Filters the pagination count on the prizes table.

  • Arguments: (int $per_page)

Filters the success notification displayed on the Order Received / Thank You page when winning an instant prize.

  • Arguments: (string $message, int $item_id, WC_Order_Item_Product $item, WC_Order $order, bool $plain_text, WC_Product $product)

Filters the template file path used to render the instant winners list.

  • Arguments: (string $template_path)

qcw_instant_import_chunk_size / qcw_instant_import_chunk_size_images

Section titled “qcw_instant_import_chunk_size / qcw_instant_import_chunk_size_images”

Filters the batch processing chunk size when importing instant win prizes via CSV.

  • Arguments: (int $chunk_size)

Filters whether the requested ticket quantity passes per-user and per-order limits.

  • Arguments: (bool $passed, int $product_id, int $quantity)

Filters the maximum ticket purchase quantity allowed in a single transaction.

  • Arguments: (int $max_qty, int $product_id)

Filters the notice displayed in cart item meta when an incorrect answer is entered.

  • Arguments: (string $text, array $item_data)

Filters the formatted question answer text attached to the completed order.

  • Arguments: (string $answer_text, int $answer_id, int $order_id)

Filters whether competition ticket stock counts are synchronized with WooCommerce product stock.

  • Arguments: (bool $update, int $product_id)

Filters the order status trigger for releasing tickets on full refund.

  • Arguments: (string $status)

Filters the complete array of participant records retrieved for a competition.

  • Arguments: (array $participants, int $product_id)

qcw_add_participants_from_order / qcw_remove_participants_from_order

Section titled “qcw_add_participants_from_order / qcw_remove_participants_from_order”

Filters whether participant rows are added or removed during order status transitions.

  • Arguments: (bool $proceed, WC_Order $order)

Filters the message banner shown to customers on their My Account competition pages.

  • Arguments: (string $message, int $product_id)

Filters query arguments when fetching active entered tickets for the logged-in customer.

  • Arguments: (array $query_args, int $user_id)

Filters query arguments when fetching historical/closed entered tickets for the customer.

  • Arguments: (array $query_args, int $user_id)

qcw_entry_list_columns / qcw_entry_list_sortable_columns

Section titled “qcw_entry_list_columns / qcw_entry_list_sortable_columns”

Filters the columns and sortable column headers of the frontend/admin participant table.

  • Arguments: (array $columns)

qcw_entry_list_query / qcw_entry_list_query_orderby

Section titled “qcw_entry_list_query / qcw_entry_list_query_orderby”

Filters the SQL query and orderby clause for the competition entry list.

  • Arguments: (mixed $query, int $product_id)

qcw_entry_list_perpage / qcw_competition_entry_list_perpage

Section titled “qcw_entry_list_perpage / qcw_competition_entry_list_perpage”

Filters items displayed per page in the entry list table.

  • Arguments: (int $per_page)

qcw_entry_list_row_class / qcw_entry_list_column_date / qcw_entry_list_column_default

Section titled “qcw_entry_list_row_class / qcw_entry_list_column_date / qcw_entry_list_column_default”

Filters table row CSS classes, date formatting, and cell content in the entry table.

  • Arguments: (mixed $value, object $item)

Filters the retrieved list of winners for a competition.

  • Arguments: (array $winners, int $product_id)

qcw_history_per_page / qcw_history_heading

Section titled “qcw_history_per_page / qcw_history_heading”

Filters pagination and headings on competition history views.

qcw_competition_history / qcw_competition_history_data / qcw_competition_history_total

Section titled “qcw_competition_history / qcw_competition_history_data / qcw_competition_history_total”

Filters participant history records and calculated totals.

qcw_competition_history_started_text / qcw_competition_history_starting_text

Section titled “qcw_competition_history_started_text / qcw_competition_history_starting_text”

Filters status label text used in history tables.

Filters the maximum number of top customers displayed in the Top Buyers metabox (default: 10).

  • Arguments: (int $limit, int $product_id)

Filters whether the main competition badge is displayed on product cards.

  • Arguments: (bool $show, WC_Product $product)

Filters the HTML markup and label for status badges (Live, Closed, Future).

  • Arguments: (string $badge_html, string $status, int $product_id)

Filters the formatted countdown timer text (e.g. days, hours, minutes remaining).

  • Arguments: (string $text, int $seconds_left)

Filters the HTML content rendered inside the Free Postal Entry tab.

  • Arguments: (string $content, int $product_id)

Filters the default sorting parameter for competition archives.

  • Arguments: (string $orderby)

Filters the WP_Query arguments for [competitions] shortcodes.

  • Arguments: (array $query_args, array $atts)

Filters the template file path for the live draw wheel screen.

  • Arguments: (string $template_path)

Filters the HTML output of the competition search form widget.

  • Arguments: (string $form_html)

Filters the array of sections/tabs in the plugin settings dashboard.

  • Arguments: (array $sections)
add_filter( 'qcw_get_settings_sections', function( $sections ) {
$sections['my_addon'] = __( 'My Addon', 'textdomain' );
return $sections;
} );

Filters the array of form fields for a specific settings section.

  • Arguments: (array $fields, string $section)

Filters whether the Support admin page is accessible.

  • Arguments: (bool $show)

Filters the server endpoint URL for the OBS Stream Overlay (defaults to https://wpgenie.org).

  • Arguments: (string $url)

Filters whether SSL verification is enforced on stream overlay API requests.

  • Arguments: (bool $verify)

Filters whether transient caching is active for heavy ticket queries (default: true).

  • Arguments: (bool $enabled, string $transient_key)

qcw_automatic_relist_heading / qcw_competition_automatic_relist_check_time

Section titled “qcw_automatic_relist_heading / qcw_competition_automatic_relist_check_time”

Filters heading labels and cron check intervals for automatic relisting.

qcw_competition_relist_from_time / qcw_competition_relist_to_time

Section titled “qcw_competition_relist_from_time / qcw_competition_relist_to_time”

Filters default start and end times applied during automated relisting.

qcw_competition_export_dir_path / qcw_competition_export_filename / qcw_competition_export_fields

Section titled “qcw_competition_export_dir_path / qcw_competition_export_filename / qcw_competition_export_fields”

Filters server storage paths, filenames, and exported column headers for CSV participant exports.