Tribe__Tickets_Plus__Commerce__EDD__Stock_Control::get_purchased_inventory( int $ticket_id, array $order_statuses = array() )

Returns the amount of inventory purchased for the specified ticket.

By default this is calculated only for orders with "valid" order statuses (pending and completed), but the optional param $order_statuses can be used to pass in an alternative list if the calculation should be restricted to pending orders only (for example).

See also


Top ↑

Parameters

$ticket_id

(int) (Required)

$order_statuses

(array) (Optional)

Default value: array()


Top ↑

Return

(int)


Top ↑

Source

File: src/Tribe/Commerce/EDD/Stock_Control.php

	public function get_purchased_inventory( $ticket_id, array $order_statuses = [] ) {
		global $wpdb;

		if ( empty( $order_statuses ) ) {
			$order_statuses = $this->get_valid_payment_statuses();
		}

		$order_statuses = $this->escape_fields( $order_statuses );

		$sql = "
			SELECT
				COUNT( * )
				FROM $wpdb->postmeta
					JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->postmeta.post_id
				WHERE
					$wpdb->postmeta.meta_key = '_tribe_eddticket_product'
					AND $wpdb->postmeta.meta_value = %s
		";
		$sql .= empty( $order_statuses ) ? ';' : "AND post_status IN ( $order_statuses );";

		return (int) $wpdb->get_var( $wpdb->prepare( $sql, $ticket_id ) );
	}