Tribe__Tickets__Privacy::tpp_order_eraser( $email_address, int $page = 1 )
Eraser for Events Ticket Tribe Commerce Order
Contents
Parameters
- $email_address
-
(Required)
- $page
-
(int) (Optional)
Default value: 1
Return
(array)
Source
File: src/Tribe/Privacy.php
public function tpp_order_eraser( $email_address, $page = 1 ) {
if ( empty( $email_address ) ) {
return array(
'items_removed' => false,
'items_retained' => false,
'messages' => array(),
'done' => true,
);
}
$messages = array();
$items_removed = false;
$items_retained = false;
$number = 500; // Limit us to avoid timing out
$page = (int) $page;
// Get the tribe commerce orders
$tpp_orders = new WP_Query( array(
'post_type' => 'tribe_tpp_orders',
'meta_key' => '_tribe_paypal_payer_email',
'meta_value' => $email_address,
'page' => $page,
'posts_per_page' => $number,
'orderby' => 'ID',
'order' => 'ASC',
) );
foreach ( $tpp_orders->posts as $order ) {
// Get the order
$tpp_order = Tribe__Tickets__Commerce__PayPal__Order::from_order_id( $order->ID, true );
$event_id = get_post_meta( $order->ID, '_tribe_paypal_post', true );
// Delete the order (with attendees, because the user who did the order inserted these values)
$deleted = $tpp_order->delete();
if ( $deleted ) {
$items_removed = true;
if ( $event_id ) {
// Delete the transient so the site admin see the list updated
Tribe__Post_Transient::instance()->delete( $event_id, Tribe__Tickets__Tickets::ATTENDEES_CACHE );
}
} else {
$items_retained = true;
$messages[] = __( 'TribeCommerce order information was not removed. A database error may have occurred during deletion.', 'event-tickets' );
}
}
// Tell core if we have more elements to work on still
$done = count( $tpp_orders->posts ) < $number;
return array(
'items_removed' => $items_removed,
'items_retained' => $items_retained,
'messages' => $messages,
'done' => $done,
);
}
Changelog
| Version | Description |
|---|---|
| 4.7.6 | Introduced. |