Automattic\WooCommerce\Admin\API\Reports

DataStore::get_refund_subquery()protectedWC 1.0

Get join and where clauses for refunds based on user supplied parameters.

Method of the class: DataStore{}

No Hooks.

Return

Array.

Usage

// protected - for code of main (parent) or child class
$result = $this->get_refund_subquery( $query_args );
$query_args(array) (required)
Parameters supplied by the user.

DataStore::get_refund_subquery() code WC 8.7.0

protected function get_refund_subquery( $query_args ) {
	global $wpdb;
	$table_name = $wpdb->prefix . 'wc_order_stats';
	$sql_query  = array(
		'where_clause' => '',
		'from_clause'  => '',
	);

	if ( ! isset( $query_args['refunds'] ) ) {
		return $sql_query;
	}

	if ( 'all' === $query_args['refunds'] ) {
		$sql_query['where_clause'] .= 'parent_id != 0';
	}

	if ( 'none' === $query_args['refunds'] ) {
		$sql_query['where_clause'] .= 'parent_id = 0';
	}

	if ( 'full' === $query_args['refunds'] || 'partial' === $query_args['refunds'] ) {
		$operator                   = 'full' === $query_args['refunds'] ? '=' : '!=';
		$sql_query['from_clause']  .= " JOIN {$table_name} parent_order_stats ON {$table_name}.parent_id = parent_order_stats.order_id";
		$sql_query['where_clause'] .= "parent_order_stats.status {$operator} '{$this->normalize_order_status( 'refunded' )}'";
	}

	return $sql_query;
}