Tribe__Tickets_Plus__Commerce__WooCommerce__Main::reset_attendees_cache( int $order_id )
Clean the attendees cache every time an order changes its status, so the changes are reflected instantly.
Contents
Parameters
- $order_id
-
(int) (Required)
Source
File: src/Tribe/Commerce/WooCommerce/Main.php
public function reset_attendees_cache( $order_id ) {
// Get the items purchased in this order
$order = new WC_Order( $order_id );
$order_items = $order->get_items();
// Bail if the order is empty
if ( empty( $order_items ) ) {
return;
}
// Iterate over each product
foreach ( (array) $order_items as $item_id => $item ) {
$product_id = isset( $item['product_id'] ) ? $item['product_id'] : $item['id'];
// Get the event this tickets is for
$post_id = get_post_meta( $product_id, $this->event_key, true );
/**
* Action fired when an attendee data is updated when on the cache.
*
* @since 4.10.1.2
*
* @param int $post_id ID of the event associated with the order.
* @param int $order_id ID of the order attached to this event.
* @param array $item Details of the order
*/
do_action( 'tribe_tickets_plus_woo_reset_attendee_cache', $post_id, $order_id, $item );
if ( ! empty( $post_id ) ) {
// Delete the attendees cache for that event
tribe( 'post-transient' )->delete( $post_id, Tribe__Tickets__Tickets::ATTENDEES_CACHE );
}
}
}
Changelog
| Version | Description |
|---|---|
| 4.7.3 | Introduced. |