Automattic\WooCommerce\Internal\Admin\Reports
HposLegacyOrderReportQueryBuilder::build_where_clause
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() 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;
}