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.

Метод класса: HposLegacyOrderReportQueryBuilder{}

Хуков нет.

Возвращает

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

Использование

// private - только в коде основоного (родительского) класса
$result = $this->build_order_item_meta_joins( $key, $raw_key, $order_item_type, $join_type );
$key(строка) (обязательный)
Sanitized meta key for the itemmeta alias.
$raw_key(строка) (обязательный)
Original meta key.
$order_item_type(строка) (обязательный)
Optional order-item type filter.
$join_type(строка) (обязательный)
Join type.

Код HposLegacyOrderReportQueryBuilder::build_order_item_meta_joins() WC 11.2.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}')",
	);
}