Automattic\WooCommerce\Internal\Admin\Reports

HposLegacyOrderReportQueryBuilder::resolve_parent_meta_select │ private │ WC 1.0

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() 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 ),
	);
}