Automattic\WooCommerce\Internal\Admin\Reports
HposLegacyOrderReportQueryBuilder::resolve_parent_meta_select
Resolve a type=parent_meta SELECT.
Method of the class: HposLegacyOrderReportQueryBuilder{}
No Hooks.
Returns
array{0: string, 1: array<string,string>}. SELECT fragment and JOINs.
Usage
// private - for code of main (parent) class only $result = $this->resolve_parent_meta_select( $raw_key, $key, $join_type );
- $raw_key(string) (required)
- Meta key on the parent order.
- $key(string) (required)
- Sanitized version of the meta key.
- $join_type(string) (required)
- Join type.
HposLegacyOrderReportQueryBuilder::resolve_parent_meta_select() HposLegacyOrderReportQueryBuilder::resolve parent meta select code WC 11.1.2
private function resolve_parent_meta_select( $raw_key, $key, $join_type ) {
$schema = $this->get_report_schema();
if ( isset( $schema['order_column'][ $raw_key ] ) ) {
$column = substr( $schema['order_column'][ $raw_key ], strlen( 'orders.' ) );
return array( "parent_orders.{$column}", $this->build_parent_orders_join() );
}
if ( isset( $schema['op_data_column'][ $raw_key ] ) ) {
$column = substr( $schema['op_data_column'][ $raw_key ], strlen( 'op_data.' ) );
$joins = array_merge( $this->build_parent_orders_join(), $this->build_parent_op_data_join() );
return array( "parent_op_data.{$column}", $joins );
}
if ( isset( $schema['address_column'][ $raw_key ] ) ) {
list( $address_type, $column ) = $schema['address_column'][ $raw_key ];
$joins = array_merge(
$this->build_parent_orders_join(),
$this->build_address_join( $address_type, 'parent_orders', 'parent_address' )
);
return array( "parent_address_{$address_type}.{$column}", $joins );
}
return array(
"parent_meta_{$key}.meta_value",
$this->build_parent_meta_join( $key, $raw_key, $join_type ),
);
}