Automattic\WooCommerce\Admin

ReportCSVExporter::get_raw_row_data()protectedWC 1.0

Generate row data from a raw report item.

Method of the class: ReportCSVExporter{}

Return

Array. CSV row data.

Usage

// protected - for code of main (parent) or child class
$result = $this->get_raw_row_data( $item );
$item(object) (required)
Report item data.

ReportCSVExporter::get_raw_row_data() code WC 8.7.0

protected function get_raw_row_data( $item ) {
	$columns = $this->get_column_names();
	$row     = array();

	// Expand extended info.
	if ( isset( $item['extended_info'] ) ) {
		// Pull extended info property from report item object.
		$extended_info = (array) $item['extended_info'];
		unset( $item['extended_info'] );

		// Merge extended info columns into report item object.
		$item = array_merge( $item, $extended_info );
	}

	foreach ( $columns as $column_id => $column_name ) {
		$value = isset( $item[ $column_name ] ) ? $item[ $column_name ] : null;

		if ( has_filter( "woocommerce_export_{$this->export_type}_column_{$column_name}" ) ) {
			// Filter for 3rd parties.
			$value = apply_filters( "woocommerce_export_{$this->export_type}_column_{$column_name}", '', $item );

		} elseif ( is_callable( array( $this, "get_column_value_{$column_name}" ) ) ) {
			// Handle special columns which don't map 1:1 to item data.
			$value = $this->{"get_column_value_{$column_name}"}( $item, $this->export_type );

		} elseif ( ! is_scalar( $value ) ) {
			// Ensure that the value is somewhat readable in CSV.
			$value = wp_json_encode( $value );
		}

		$row[ $column_id ] = $value;
	}

	return $row;
}