Tribe__Tickets_Plus__Privacy::edd_exporter( $email_address, int $page = 1 )
Exporter for Events Ticket Plus EDD Attendee
Contents
Parameters
- $email_address
-
(Required)
- $page
-
(int) (Optional)
Default value: 1
Return
(array)
Source
File: src/Tribe/Privacy.php
public function edd_exporter( $email_address, $page = 1 ) {
$number = 500; // Limit us to avoid timing out
$page = (int) $page;
// bail if we don't have EDD
if ( ! class_exists( 'Easy_Digital_Downloads' ) ) {
return array( 'data' => array(), 'done' => true );
}
// Get the EDD Orders for that email
$orders = new WP_Query( array(
'post_type' => 'edd_payment',
'meta_key' => '_edd_payment_user_email',
'meta_value' => $email_address,
'page' => $page,
'posts_per_page' => $number,
'orderby' => 'ID',
'order' => 'ASC',
) );
foreach ( $orders->posts as $order ) {
// Find EDD tickets for that order
$eddtickets = new WP_Query( array(
'post_type' => 'tribe_eddticket',
'meta_key' => '_tribe_eddticket_order',
'meta_value' => $order->ID,
'posts_per_page' => -1,
) );
foreach ( $eddtickets->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_eddticket_product', true );
// if it doesn't, we continue with th next one
if ( '' === $ticket_meta ) {
continue;
}
$item_id = "tribe_eddticket_attendees-{$ticket->ID}";
// Set our own group for EDD ticket attendees
$group_id = 'tribe-eddticket-attendees';
// Set a label for the group
$group_label = __( 'EDD Attendee Data', 'event-tickets-plus' );
$data = array();
// Get the data they inserted
$data = $this->add_meta_fields( $data, $ticket, $product_id );
/**
* Allow filtering for the EDD Ticket 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_eddticket', $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->posts ) < $number;
return array(
'data' => $export_items,
'done' => $done,
);
}
Changelog
| Version | Description |
|---|---|
| 4.7.6 | Introduced. |