Ticket::modify_counters_by_status( TECTicketsCommerceStatusStatus_Interface $new_status, TECTicketsCommerceStatusStatus_Interface|null $old_status, WP_Post $post )

Modify the counters for all the tickets involved on this particular order.


Parameters

$new_status

(TECTicketsCommerceStatusStatus_Interface) (Required) New post status.

$old_status

(TECTicketsCommerceStatusStatus_Interface|null) (Required) Old post status.

$post

(WP_Post) (Required) Post object.


Top ↑

Source

File: src/Tickets/Commerce/Ticket.php

	public function modify_counters_by_status( $new_status, $old_status, $post ) {
		$order = tec_tc_get_order( $post );

		// This should never be the case, but lets be safe.
		if ( empty( $order->items ) ) {
			return;
		}

		foreach ( $order->items as $item ) {
			$ticket_id              = $item['ticket_id'];
			$new_status_meta_key    = static::get_status_count_meta_key( $new_status );
			$current_new_status_qty = get_post_meta( $ticket_id, $new_status_meta_key, true );
			if ( ! $current_new_status_qty ) {
				$current_new_status_qty = 0;
			}
			update_post_meta( $ticket_id, $new_status_meta_key, (int) $current_new_status_qty + $item['quantity'] );

			if ( $old_status ) {
				$old_status_meta_key    = static::get_status_count_meta_key( $old_status );
				$current_old_status_qty = get_post_meta( $ticket_id, $old_status_meta_key, true );
				if ( ! $current_old_status_qty ) {
					$current_old_status_qty = 0;
				}
				update_post_meta( $ticket_id, $old_status_meta_key, max( 0, (int) $current_old_status_qty - $item['quantity'] ) );
			}
		}
	}

Top ↑

Changelog

Changelog
Version Description
5.2.0 Introduced.