WooCommerce Code Reference

WC_Product_CSV_Exporter extends WC_CSV_Batch_Exporter
in package

WC_Product_CSV_Exporter Class.

Table of Contents

$column_names  : array<string|int, mixed>
Columns ids and names.
$columns_to_export  : array<string|int, mixed>
List of columns to export, or empty for all.
$delimiter  : string
The delimiter parameter sets the field delimiter (one character only).
$enable_meta_export  : bool
Should meta be exported?
$export_type  : string
Type of export used in filter names.
$exported_row_count  : int
Number exported.
$filename  : string
Filename to export to.
$limit  : int
Batch limit.
$page  : int
Page being exported
$product_category_to_export  : string
Products belonging to what category should be exported.
$product_types_to_export  : array<string|int, mixed>
Which product types are being exported.
$row_data  : array<string|int, mixed>
Raw data to export.
$total_rows  : int
Total rows to export.
__construct()  : mixed
Constructor.
enable_meta_export()  : mixed
Should meta be exported?
escape_data()  : string
Escape a string to be used in a CSV context
export()  : mixed
Do the export.
format_data()  : string
Format and escape data ready for the CSV file.
format_term_ids()  : string
Format term ids to names.
generate_file()  : mixed
Generate the CSV file.
get_column_names()  : array<string|int, mixed>
Return an array of supported column names and ids.
get_columns_to_export()  : array<string|int, mixed>
Return an array of columns to export.
get_default_column_names()  : array<string|int, mixed>
Return an array of columns to export.
get_delimiter()  : string
Return the delimiter to use in CSV file
get_file()  : string
Get the file contents.
get_filename()  : string
Generate and return a filename.
get_headers_row_file()  : string
Get the contents of the CSV headers row file. Defaults to the original known headers.
get_limit()  : int
Get batch limit.
get_page()  : int
Get page.
get_percent_complete()  : int
Get total % complete.
get_total_exported()  : int
Get count of records exported.
is_column_exporting()  : bool
See if a column is to be exported or not.
prepare_data_to_export()  : mixed
Prepare data for export.
send_content()  : mixed
Set the export content.
send_headers()  : mixed
Set the export headers.
set_column_names()  : mixed
Set column names.
set_columns_to_export()  : mixed
Set columns to export.
set_filename()  : mixed
Set filename to export to.
set_limit()  : mixed
Set batch limit.
set_page()  : mixed
Set page.
set_product_category_to_export()  : void
Product category to export
set_product_types_to_export()  : mixed
Product types to export.
export_column_headers()  : string
Export column headers in CSV format.
export_row()  : mixed
Export rows to an array ready for the CSV.
export_rows()  : string
Export rows in CSV format.
filter_description_field()  : string
Filter description field for export.
fputcsv()  : mixed
Write to the CSV file, ensuring escaping works across versions of PHP.
generate_row_data()  : array<string|int, mixed>
Take a product and generate row data from it for export.
get_column_value_backorders()  : string
Get backorders.
get_column_value_category_ids()  : string
Get product_cat value.
get_column_value_cross_sell_ids()  : string
Get cross_sell_ids value.
get_column_value_download_expiry()  : string
Get download_expiry value.
get_column_value_download_limit()  : string
Get download_limit value.
get_column_value_grouped_products()  : string
Get grouped_products value.
get_column_value_images()  : string
Get images value.
get_column_value_low_stock_amount()  : int|string
Get low stock amount value.
get_column_value_parent_id()  : string
Get parent_id value.
get_column_value_published()  : int
Get published value.
get_column_value_regular_price()  : string
Get formatted regular price.
get_column_value_sale_price()  : string
Get formatted sale price.
get_column_value_shipping_class_id()  : string
Get product_shipping_class value.
get_column_value_stock()  : string
Get stock value.
get_column_value_stock_status()  : string
Get stock status value.
get_column_value_tag_ids()  : string
Get product_tag value.
get_column_value_type()  : string
Get type value.
get_column_value_upsell_ids()  : string
Get upsell_ids value.
get_csv_data()  : string
Get CSV data for this export.
get_data_to_export()  : array<string|int, mixed>
Get data that will be exported.
get_file_path()  : string
Get file path to export to.
get_headers_row_file_path()  : string
Get CSV headers row file path to export to.
implode_values()  : string
Implode CSV cell values using commas by default, and wrapping values which contain the separator.
prepare_attributes_for_export()  : mixed
Export attributes data.
prepare_downloads_for_export()  : mixed
Export downloads.
prepare_linked_products_for_export()  : string
Prepare linked products for export.
prepare_meta_for_export()  : mixed
Export meta data.
write_csv_data()  : mixed
Write data to the file.

Properties

Methods

enable_meta_export()

Should meta be exported?

public enable_meta_export(bool $enable_meta_export) : mixed
Parameters
$enable_meta_export : bool

Should meta be exported.

Tags
since
3.1.0
Return values
mixed

escape_data()

Escape a string to be used in a CSV context

public escape_data(string $data) : string

Malicious input can inject formulas into CSV files, opening up the possibility for phishing attacks and disclosure of sensitive information.

Additionally, Excel exposes the ability to launch arbitrary commands through the DDE protocol.

Parameters
$data : string

CSV field to escape.

Tags
see
http://www.contextis.com/resources/blog/comma-separated-vulnerabilities/
see
https://hackerone.com/reports/72785
since
3.1.0
Return values
string

format_data()

Format and escape data ready for the CSV file.

public format_data(string $data) : string
Parameters
$data : string

Data to format.

Tags
since
3.1.0
Return values
string

format_term_ids()

Format term ids to names.

public format_term_ids(array<string|int, mixed> $term_ids, string $taxonomy) : string
Parameters
$term_ids : array<string|int, mixed>

Term IDs to format.

$taxonomy : string

Taxonomy name.

Tags
since
3.1.0
Return values
string

get_column_names()

Return an array of supported column names and ids.

public get_column_names() : array<string|int, mixed>
Tags
since
3.1.0
Return values
array<string|int, mixed>

get_columns_to_export()

Return an array of columns to export.

public get_columns_to_export() : array<string|int, mixed>
Tags
since
3.1.0
Return values
array<string|int, mixed>

is_column_exporting()

See if a column is to be exported or not.

public is_column_exporting(string $column_id) : bool
Parameters
$column_id : string

ID of the column being exported.

Tags
since
3.1.0
Return values
bool

send_content()

Set the export content.

public send_content(string $csv_data) : mixed
Parameters
$csv_data : string

All CSV content.

Tags
since
3.1.0
Return values
mixed

set_column_names()

Set column names.

public set_column_names(array<string|int, mixed> $column_names) : mixed
Parameters
$column_names : array<string|int, mixed>

Column names array.

Tags
since
3.1.0
Return values
mixed

set_columns_to_export()

Set columns to export.

public set_columns_to_export(array<string|int, mixed> $columns) : mixed
Parameters
$columns : array<string|int, mixed>

Columns array.

Tags
since
3.1.0
Return values
mixed

set_product_category_to_export()

Product category to export

public set_product_category_to_export(string $product_category_to_export) : void
Parameters
$product_category_to_export : string

Product category slug to export, empty string exports all.

Tags
since
3.5.0
Return values
void

set_product_types_to_export()

Product types to export.

public set_product_types_to_export(array<string|int, mixed> $product_types_to_export) : mixed
Parameters
$product_types_to_export : array<string|int, mixed>

List of types to export.

Tags
since
3.1.0
Return values
mixed

export_row()

Export rows to an array ready for the CSV.

protected export_row(array<string|int, mixed> $row_data, string $key, resource $buffer) : mixed
Parameters
$row_data : array<string|int, mixed>

Data to export.

$key : string

Column being exported.

$buffer : resource

Output buffer.

Tags
since
3.1.0
Return values
mixed

filter_description_field()

Filter description field for export.

protected filter_description_field(string $description) : string

Convert newlines to '\n'.

Parameters
$description : string

Product description text to filter.

Tags
since
3.5.4
Return values
string

fputcsv()

Write to the CSV file, ensuring escaping works across versions of PHP.

protected fputcsv(resource $buffer, array<string|int, mixed> $export_row) : mixed

PHP 5.5.4 uses '' as the default escape character. This is not RFC-4180 compliant. \0 disables the escape character.

Parameters
$buffer : resource

Resource we are writing to.

$export_row : array<string|int, mixed>

Row to export.

Tags
see
https://bugs.php.net/bug.php?id=43225
see
https://bugs.php.net/bug.php?id=50686
see
https://github.com/woocommerce/woocommerce/issues/19514
see
https://github.com/woocommerce/woocommerce/issues/24579
since
3.4.0
since
3.9.0
Return values
mixed

get_data_to_export()

Get data that will be exported.

protected get_data_to_export() : array<string|int, mixed>
Tags
since
3.1.0
Return values
array<string|int, mixed>

implode_values()

Implode CSV cell values using commas by default, and wrapping values which contain the separator.

protected implode_values(array<string|int, mixed> $values) : string
Parameters
$values : array<string|int, mixed>

Values to implode.

Tags
since
3.2.0
Return values
string

prepare_attributes_for_export()

Export attributes data.

protected prepare_attributes_for_export(WC_Product $product, array<string|int, mixed> &$row) : mixed
Parameters
$product : WC_Product

Product being exported.

$row : array<string|int, mixed>

Row being exported.

Tags
since
3.1.0
Return values
mixed

prepare_downloads_for_export()

Export downloads.

protected prepare_downloads_for_export(WC_Product $product, array<string|int, mixed> &$row) : mixed
Parameters
$product : WC_Product

Product being exported.

$row : array<string|int, mixed>

Row being exported.

Tags
since
3.1.0
Return values
mixed

prepare_linked_products_for_export()

Prepare linked products for export.

protected prepare_linked_products_for_export(array<string|int, int> $linked_products) : string
Parameters
$linked_products : array<string|int, int>

Array of linked product ids.

Tags
since
3.1.0
Return values
string