Automattic\WooCommerce\Admin
ReportCSVExporter::get_raw_row_data
Generate row data from a raw report item.
Method of the class: ReportCSVExporter{}
Hooks from the method
Returns
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() ReportCSVExporter::get raw row data code WC 10.5.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;
}