Automattic\WooCommerce\Admin\API\Reports

Segmenter::reformat_totals_segments()protectedWC 1.0

Update row-level db result for segments in 'totals' section to the format used for output.

Method of the class: Segmenter{}

No Hooks.

Return

Array. Reformatted array.

Usage

// protected - for code of main (parent) or child class
$result = $this->reformat_totals_segments( $segments_db_result, $segment_dimension );
$segments_db_result(array) (required)
Results from the SQL db query for segmenting.
$segment_dimension(string) (required)
Name of column used for grouping the result.

Segmenter::reformat_totals_segments() code WC 8.6.1

protected function reformat_totals_segments( $segments_db_result, $segment_dimension ) {
	$segment_result = array();

	if ( strpos( $segment_dimension, '.' ) ) {
		$segment_dimension = substr( strstr( $segment_dimension, '.' ), 1 );
	}

	$segment_labels = $this->get_segment_labels();
	foreach ( $segments_db_result as $segment_data ) {
		$segment_id = $segment_data[ $segment_dimension ];
		if ( ! isset( $segment_labels[ $segment_id ] ) ) {
			continue;
		}

		unset( $segment_data[ $segment_dimension ] );
		$segment_datum                 = array(
			'segment_id'    => $segment_id,
			'segment_label' => $segment_labels[ $segment_id ],
			'subtotals'     => $segment_data,
		);
		$segment_result[ $segment_id ] = $segment_datum;
	}

	return $segment_result;
}