Automattic\WooCommerce\Internal\Admin\Reports

HposLegacyOrderReportQueryBuilder::build_order_item_meta_joins │ private │ WC 1.0

Build the JOIN pair used by type=order_item_meta data entries.

Method of the class: HposLegacyOrderReportQueryBuilder{}

No Hooks.

Returns

array<string,string>. JOINs keyed by alias.

Usage

// private - for code of main (parent) class only
$result = $this->build_order_item_meta_joins( $key, $raw_key, $order_item_type, $join_type );
$key(string) (required)
Sanitized meta key for the itemmeta alias.
$raw_key(string) (required)
Original meta key.
$order_item_type(string) (required)
Optional order-item type filter.
$join_type(string) (required)
Join type.

HposLegacyOrderReportQueryBuilder::build_order_item_meta_joins() code WC 11.1.2

private function build_order_item_meta_joins( $key, $raw_key, $order_item_type, $join_type ) {
	global $wpdb;
	$items_join = "{$join_type} JOIN {$wpdb->prefix}woocommerce_order_items AS order_items ON (orders.id = order_items.order_id)";

	if ( '' !== $order_item_type ) {
		$items_join .= " AND (order_items.order_item_type = '{$order_item_type}')";
	}

	$itemmeta_alias = "order_item_meta_{$key}";
	return array(
		'order_items'   => $items_join,
		$itemmeta_alias => "{$join_type} JOIN {$wpdb->prefix}woocommerce_order_itemmeta AS {$itemmeta_alias} ON " .
			"(order_items.order_item_id = {$itemmeta_alias}.order_item_id) " .
			" AND ({$itemmeta_alias}.meta_key = '{$raw_key}')",
	);
}