'All events']; foreach ($events as $x) $evOpts[$x['id']] = $x['title'] . ' (' . fmt_date($x['starts_at']) . ')'; $qs = http_build_query(array_filter(['event' => $ev['id'] ?? null, 'from' => $from, 'to' => $to])); $x = fn(string $kind, string $fmt) => '/admin/export/' . $kind . '?' . $qs . ($qs ? '&' : '') . 'format=' . $fmt . '&_wpnonce=' . wp_create_nonce('gatecraft_export'); $gc_s = $summary; $xlsx = in_array('xlsx', (array)apply_filters('gatecraft_export_formats', []), true); ?>

Reports and exports

$evOpts]), allowed_html() ); ?>
Net revenue
Confirmed bookings
Discounts given
Gross
Tickets issued


Average booking
0 || setting('tax_mode') !== 'none'): ?>
Tax collected
Included in net revenue
Refunded
Open requests
approval, payment
Awaiting payment
Reserved, not yet paid

Revenue per day

Last 30 days, by payment date
money((int)$v)), allowed_html() ); ?>

Sales by category

CategoryPriceSoldHeldGross
0 ? esc_html(money((int)$t['price'])) : 'Free'; ?> /
No ticket categories yet.
$ev, 'from' => $from, 'to' => $to]); ?>

Export

Choose an event first.

Check-in

of checked in (%)

Scans: valid, repeat, rejected.