Tribe__Tickets_Plus__Privacy::edd_eraser( $email_address, int $page = 1 )
Eraser for Events Ticket Plus EDDTicket Attendee Meta Data
Contents
Parameters
- $email_address
-
(Required)
- $page
-
(int) (Optional)
Default value: 1
Return
(array)
Source
File: src/Tribe/Privacy.php
public function edd_eraser( $email_address, $page = 1 ) {
$number = 50; // Limit us to avoid timing out
$page = (int) $page;
$messages = array();
$items_removed = false;
$items_retained = false;
// 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 WooTickets 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 );
// if it doesn't, we continue with th next one
if ( '' === $ticket_meta ) {
continue;
}
// Delete only the data saved by our plugin.
// The order/products are handled by the Ecommerce vendor
$deleted = delete_post_meta( $ticket->ID, '_tribe_tickets_meta' );
if ( $deleted ) {
$items_removed = true;
} else {
$items_retained = true;
$messages[] = __( 'EDD Ticket fields information was not removed. A database error may have occurred during deletion.', 'event-tickets-plus' );
}
}
}
// Tell core if we have more elements to work on still
$done = count( $orders->posts ) < $number;
return array(
'items_removed' => $items_removed,
'items_retained' => $items_retained,
'messages' => $messages,
'done' => $done,
);
}
Changelog
| Version | Description |
|---|---|
| 4.8.1 | Introduced. |