Automattic\WooCommerce\Internal\Admin\Reports

HposLegacyOrderReportQueryBuilder::build_where_clause │ private │ WC 1.0

Build the top-level WHERE clause.

Method of the class: HposLegacyOrderReportQueryBuilder{}

No Hooks.

Returns

string. WHERE clause.

Usage

// private - for code of main (parent) class only
$result = $this->build_where_clause( $order_types, $order_status, $parent_order_status, $filter_range, $start_date, $end_date );
$order_types(array) (required)
Order types to restrict to.
$order_status(array|false) (required)
Order statuses without the wc- prefix.
$parent_order_status(array|false) (required)
Parent order statuses without the wc- prefix.
$filter_range(true|false) (required)
Whether to bound the query by date.
$start_date(int) (required)
Start date as a Unix timestamp.
$end_date(int) (required)
End date as a Unix timestamp.

HposLegacyOrderReportQueryBuilder::build_where_clause() code WC 11.1.2

private function build_where_clause( $order_types, $order_status, $parent_order_status, $filter_range, $start_date, $end_date ) {
	$clause = "
		WHERE 	orders.type 	IN ( '" . implode( "','", $order_types ) . "' )
		";

	if ( ! empty( $order_status ) ) {
		$clause .= "
			AND 	orders.status 	IN ( 'wc-" . implode( "','wc-", $order_status ) . "')
		";
	}

	if ( ! empty( $parent_order_status ) ) {
		$clause .= $this->build_parent_order_status_where_clause( $parent_order_status, $order_status );
	}

	if ( $filter_range ) {
		$clause .= $this->build_filter_range_where_clause( $start_date, $end_date );
	}

	return $clause;
}