Tribe__Tickets_Plus__Privacy::wooticket_exporter( $email_address, int $page = 1 )
Exporter for Events Ticket Plus WooTicket Attendee
Contents
Parameters
- $email_address
-
(Required)
- $page
-
(int) (Optional)
Default value: 1
Return
(array)
Source
File: src/Tribe/Privacy.php
public function wooticket_exporter( $email_address, $page = 1 ) {
$number = 50; // Limit us to avoid timing out
$page = (int) $page;
// bail if we don't have WooCommerce
if ( ! class_exists( 'WooCommerce' ) ) {
return array( 'data' => array(), 'done' => true );
}
$export_items = array();
// get the orders of the given email
$order_query = array(
'limit' => $number,
'page' => $page,
'customer' => array( $email_address ),
);
$orders = wc_get_orders( $order_query );
foreach ( $orders as $order ) {
// Find WooTickets for that order
$wootickets = new WP_Query( array(
'post_type' => 'tribe_wooticket',
'meta_key' => '_tribe_wooticket_order',
'meta_value' => $order->get_id(),
'posts_per_page' => -1,
) );
foreach ( $wootickets->posts as $ticket ) {
// Check if the ticket has meta fields
$ticket_meta = get_post_meta( $ticket->ID, '_tribe_tickets_meta', true );
$product_id = get_post_meta( $ticket->ID, '_tribe_wooticket_product', true );
// if it doesn't, we continue with th next one
if ( '' === $ticket_meta ) {
continue;
}
$item_id = "tribe_wooticket_attendees-{$ticket->ID}";
// Set our own group for WooTicket attendees
$group_id = 'tribe-wooticket-attendees';
// Set a label for the group
$group_label = __( 'WooTicket Attendee Data', 'event-tickets-plus' );
$data = array();
// Get the set of data for that attendee ticket
$data = $this->add_meta_fields( $data, $ticket, $product_id );
/**
* Allow filtering for the WooTicket attendee data export.
*
* @since 4.7.6
* @param array $data The data array to export
* @param object $attendee The attendee object
*/
$data = apply_filters( 'tribe_tickets_personal_data_export_wooticket', $data, $ticket );
$export_items[] = array(
'group_id' => $group_id,
'group_label' => $group_label,
'item_id' => $item_id,
'data' => $data,
);
}
}
// Tell core if we have more orders to work on still
$done = count( $orders ) < $number;
return array(
'data' => $export_items,
'done' => $done,
);
}
Changelog
| Version | Description |
|---|---|
| 4.7.6 | Introduced. |