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