Tribe__Tickets_Plus__Commerce__WooCommerce__Main::delete_ticket( int $post_id, int $ticket_id )
Deletes a ticket.
Contents
Parameters
- $post_id
-
(int) (Required)
- $ticket_id
-
(int) (Required)
Return
(bool)
Source
File: src/Tribe/Commerce/WooCommerce/Main.php
public function delete_ticket( $post_id, $ticket_id ) {
// Ensure we know the event and product IDs (the event ID may not have been passed in)
if ( empty( $post_id ) ) {
$post_id = get_post_meta( $ticket_id, self::ATTENDEE_EVENT_KEY, true );
}
$product_id = get_post_meta( $ticket_id, $this->attendee_product_key, true );
/**
* Use this Filter to choose if you want to trash tickets instead
* of deleting them directly
*
* @param bool false
* @param int $ticket_id
*/
if ( apply_filters( 'tribe_tickets_plus_trash_ticket', true, $ticket_id ) ) {
// Move it to the trash
$delete = wp_trash_post( $ticket_id );
} else {
// Try to kill the actual ticket/attendee post
$delete = wp_delete_post( $ticket_id, true );
}
if ( is_wp_error( $delete ) || ! isset( $delete->ID ) ) {
return false;
}
Tribe__Tickets__Attendance::instance( $post_id )->increment_deleted_attendees_count();
// Re-stock the product inventory (on the basis that a "seat" has just been freed)
$this->increment_product_inventory( $product_id );
$this->clear_attendees_cache( $post_id );
$has_shared_tickets = 0 !== count( tribe( 'tickets.handler' )->get_event_shared_tickets( $post_id ) );
if ( ! $has_shared_tickets ) {
tribe_tickets_delete_capacity( $post_id );
}
do_action( 'wootickets_ticket_deleted', $ticket_id, $post_id, $product_id );
return true;
}
Changelog
| Version | Description |
|---|---|
| 5.7.4 | Introduced. |