WC_Product_CSV_Importer
extends WC_Product_Importer
in package
WC_Product_CSV_Importer Class.
Table of Contents
- $file : string
- CSV file.
- $file_position : int
- The file position after the last read.
- $file_positions : array<string|int, mixed>
- Raw data.
- $mapped_keys : array<string|int, mixed>
- Mapped keys - CSV headers.
- $params : array<string|int, mixed>
- Importer parameters.
- $parsed_data : array<string|int, mixed>
- Parsed data.
- $parsing_raw_data_index : int
- Tracks current row being parsed.
- $raw_data : array<string|int, mixed>
- Raw data.
- $raw_keys : array<string|int, mixed>
- Raw keys - CSV raw headers.
- $start_time : int
- Start time of current import.
- __construct() : mixed
- Initialize importer.
- get_attachment_id_from_url() : int
- Get attachment ID.
- get_attribute_taxonomy_id() : int
- Get attribute taxonomy ID from the imported data.
- get_file_position() : int
- Get file pointer position from the last read.
- get_mapped_keys() : array<string|int, mixed>
- Get file mapped headers.
- get_params() : array<string|int, mixed>
- Get importer parameters.
- get_parsed_data() : array<string|int, mixed>
- Get parsed data.
- get_percent_complete() : int
- Get file pointer position as a percentage of file size.
- get_raw_data() : array<string|int, mixed>
- Get raw data.
- get_raw_keys() : array<string|int, mixed>
- Get file raw headers.
- import() : array<string|int, mixed>
- Process importer.
- parse_backorders_field() : string
- Parse backorders from a CSV.
- parse_bool_field() : bool|string
- Parse a field that is generally '1' or '0' but can be something else.
- parse_categories_field() : array<string|int, mixed>
- Parse a category field from a CSV.
- parse_comma_field() : array<string|int, mixed>
- Parse a comma-delineated field from a CSV.
- parse_date_field() : string|null
- Parse dates from a CSV.
- parse_datetime_field() : string|null
- Parse dates from a CSV.
- parse_description_field() : string
- Parse a description value field
- parse_download_file_field() : string
- Parse download file urls, we should allow shortcodes here.
- parse_float_field() : float|string
- Parse a float value field.
- parse_id_field() : int
- Parse the ID field.
- parse_images_field() : array<string|int, mixed>
- Parse images list from a CSV. Images can be filenames or URLs.
- parse_int_field() : int
- Parse an int value field
- parse_published_field() : float|string
- Parse the published field. 1 is published, 0 is private, -1 is draft.
- parse_relative_comma_field() : array<string|int, mixed>
- Parse relative comma-delineated field and return product ID.
- parse_relative_field() : int|string
- Parse relative field and return product ID.
- parse_shipping_class_field() : int
- Parse a shipping class field from a CSV.
- parse_skip_field() : string
- Just skip current field.
- parse_stock_quantity_field() : float|string
- Parse the stock qty field.
- parse_tags_field() : array<string|int, mixed>
- Parse a tag field from a CSV.
- parse_tags_spaces_field() : array<string|int, mixed>
- Parse a tag field from a CSV with space separators.
- parse_tax_status_field() : string
- Parse the tax status field.
- expand_data() : array<string|int, mixed>
- Expand special and internal data into the correct formats for the product CRUD.
- explode_values() : array<string|int, mixed>
- Explode CSV cell values using commas by default, and handling escaped separators.
- explode_values_formatter() : string
- Remove formatting and trim each value.
- get_formating_callback() : array<string|int, mixed>
- Deprecated get formatting callback method.
- get_formatting_callback() : array<string|int, mixed>
- Get formatting callback.
- get_memory_limit() : int
- Get memory limit
- get_product_object() : WC_Product|WP_Error
- Prepare a single product for create or update.
- get_row_id() : string
- Get a string to identify the row from parsed data.
- get_variation_parent_attributes() : array<string|int, mixed>
- Get variation parent attributes and set "is_variation".
- memory_exceeded() : bool
- Memory exceeded
- process_item() : array<string|int, mixed>|WP_Error
- Process a single item and save.
- read_file() : mixed
- Read file.
- remove_utf8_bom() : string
- Remove UTF-8 BOM signature.
- set_image_data() : mixed
- Convert raw image URLs to IDs and set.
- set_mapped_keys() : mixed
- Set file mapped keys.
- set_meta_data() : mixed
- Append meta data.
- set_parsed_data() : mixed
- Map and format raw data to known fields.
- set_product_data() : mixed
- Set product data.
- set_variation_data() : WC_Product|WP_Error
- Set variation data.
- starts_with() : bool
- Check if strings starts with determined word.
- time_exceeded() : bool
- Time exceeded.
- unescape_data() : string
- The exporter prepends a ' to escape fields that start with =, +, - or @.
- adjust_character_encoding() : string
- Convert a string from the input encoding to UTF-8.
Properties
$file
CSV file.
protected
string
$file
= ''
$file_position
The file position after the last read.
protected
int
$file_position
= 0
$file_positions
Raw data.
protected
array<string|int, mixed>
$file_positions
= array()
$mapped_keys
Mapped keys - CSV headers.
protected
array<string|int, mixed>
$mapped_keys
= array()
$params
Importer parameters.
protected
array<string|int, mixed>
$params
= array()
$parsed_data
Parsed data.
protected
array<string|int, mixed>
$parsed_data
= array()
$parsing_raw_data_index
Tracks current row being parsed.
protected
int
$parsing_raw_data_index
= 0
$raw_data
Raw data.
protected
array<string|int, mixed>
$raw_data
= array()
$raw_keys
Raw keys - CSV raw headers.
protected
array<string|int, mixed>
$raw_keys
= array()
$start_time
Start time of current import.
protected
int
$start_time
= 0
(default value: 0)
Methods
__construct()
Initialize importer.
public
__construct(string $file[, array<string|int, mixed> $params = array() ]) : mixed
Parameters
- $file : string
-
File to read.
- $params : array<string|int, mixed> = array()
-
Arguments for the parser.
Return values
mixed —get_attachment_id_from_url()
Get attachment ID.
public
get_attachment_id_from_url(string $url, int $product_id) : int
Parameters
- $url : string
-
Attachment URL.
- $product_id : int
-
Product ID.
Tags
Return values
int —get_attribute_taxonomy_id()
Get attribute taxonomy ID from the imported data.
public
get_attribute_taxonomy_id(string $raw_name) : int
If does not exists register a new attribute.
Parameters
- $raw_name : string
-
Attribute name.
Tags
Return values
int —get_file_position()
Get file pointer position from the last read.
public
get_file_position() : int
Return values
int —get_mapped_keys()
Get file mapped headers.
public
get_mapped_keys() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_params()
Get importer parameters.
public
get_params() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_parsed_data()
Get parsed data.
public
get_parsed_data() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_percent_complete()
Get file pointer position as a percentage of file size.
public
get_percent_complete() : int
Return values
int —get_raw_data()
Get raw data.
public
get_raw_data() : array<string|int, mixed>
Return values
array<string|int, mixed> —get_raw_keys()
Get file raw headers.
public
get_raw_keys() : array<string|int, mixed>
Return values
array<string|int, mixed> —import()
Process importer.
public
import() : array<string|int, mixed>
Do not import products with IDs or SKUs that already exist if option update existing is false, and likewise, if updating products, do not process rows which do not exist if an ID/SKU is provided.
Return values
array<string|int, mixed> —parse_backorders_field()
Parse backorders from a CSV.
public
parse_backorders_field(string $value) : string
Parameters
- $value : string
-
Field value.
Return values
string —parse_bool_field()
Parse a field that is generally '1' or '0' but can be something else.
public
parse_bool_field(string $value) : bool|string
Parameters
- $value : string
-
Field value.
Return values
bool|string —parse_categories_field()
Parse a category field from a CSV.
public
parse_categories_field(string $value) : array<string|int, mixed>
Categories are separated by commas and subcategories are "parent > subcategory".
Parameters
- $value : string
-
Field value.
Return values
array<string|int, mixed> — of arrays with "parent" and "name" keys.parse_comma_field()
Parse a comma-delineated field from a CSV.
public
parse_comma_field(string $value) : array<string|int, mixed>
Parameters
- $value : string
-
Field value.
Return values
array<string|int, mixed> —parse_date_field()
Parse dates from a CSV.
public
parse_date_field(string $value) : string|null
Dates requires the format YYYY-MM-DD and time is optional.
Parameters
- $value : string
-
Field value.
Return values
string|null —parse_datetime_field()
Parse dates from a CSV.
public
parse_datetime_field(string $value) : string|null
Dates can be Unix timestamps or in any format supported by strtotime().
Parameters
- $value : string
-
Field value.
Return values
string|null —parse_description_field()
Parse a description value field
public
parse_description_field(string $description) : string
Parameters
- $description : string
-
field value.
Return values
string —parse_download_file_field()
Parse download file urls, we should allow shortcodes here.
public
parse_download_file_field(string $value) : string
Allow shortcodes if present, otherwise esc_url the value.
Parameters
- $value : string
-
Field value.
Return values
string —parse_float_field()
Parse a float value field.
public
parse_float_field(string $value) : float|string
Parameters
- $value : string
-
Field value.
Return values
float|string —parse_id_field()
Parse the ID field.
public
parse_id_field(string $value) : int
If we're not doing an update, create a placeholder product so mapping works for rows following this one.
Parameters
- $value : string
-
Field value.
Return values
int —parse_images_field()
Parse images list from a CSV. Images can be filenames or URLs.
public
parse_images_field(string $value) : array<string|int, mixed>
Parameters
- $value : string
-
Field value.
Return values
array<string|int, mixed> —parse_int_field()
Parse an int value field
public
parse_int_field(int $value) : int
Parameters
- $value : int
-
field value.
Return values
int —parse_published_field()
Parse the published field. 1 is published, 0 is private, -1 is draft.
public
parse_published_field(string $value) : float|string
Alternatively, 'true' can be used for published and 'false' for draft.
Parameters
- $value : string
-
Field value.
Return values
float|string —parse_relative_comma_field()
Parse relative comma-delineated field and return product ID.
public
parse_relative_comma_field(string $value) : array<string|int, mixed>
Parameters
- $value : string
-
Field value.
Return values
array<string|int, mixed> —parse_relative_field()
Parse relative field and return product ID.
public
parse_relative_field(string $value) : int|string
Handles id:xx
and SKUs.
If mapping to an id: and the product ID does not exist, this link is not valid.
If mapping to a SKU and the product ID does not exist, a temporary object will be created so it can be updated later.
Parameters
- $value : string
-
Field value.
Return values
int|string —parse_shipping_class_field()
Parse a shipping class field from a CSV.
public
parse_shipping_class_field(string $value) : int
Parameters
- $value : string
-
Field value.
Return values
int —parse_skip_field()
Just skip current field.
public
parse_skip_field(string $value) : string
By default is applied wc_clean() to all not listed fields in self::get_formatting_callback(), use this method to skip any formatting.
Parameters
- $value : string
-
Field value.
Return values
string —parse_stock_quantity_field()
Parse the stock qty field.
public
parse_stock_quantity_field(string $value) : float|string
Parameters
- $value : string
-
Field value.
Return values
float|string —parse_tags_field()
Parse a tag field from a CSV.
public
parse_tags_field(string $value) : array<string|int, mixed>
Parameters
- $value : string
-
Field value.
Return values
array<string|int, mixed> —parse_tags_spaces_field()
Parse a tag field from a CSV with space separators.
public
parse_tags_spaces_field(string $value) : array<string|int, mixed>
Parameters
- $value : string
-
Field value.
Return values
array<string|int, mixed> —parse_tax_status_field()
Parse the tax status field.
public
parse_tax_status_field(string $value) : string
Parameters
- $value : string
-
Field value.
Return values
string —expand_data()
Expand special and internal data into the correct formats for the product CRUD.
protected
expand_data(array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>
-
Data to import.
Return values
array<string|int, mixed> —explode_values()
Explode CSV cell values using commas by default, and handling escaped separators.
protected
explode_values(string $value[, string $separator = ',' ]) : array<string|int, mixed>
Parameters
- $value : string
-
Value to explode.
- $separator : string = ','
-
Separator separating each value. Defaults to comma.
Tags
Return values
array<string|int, mixed> —explode_values_formatter()
Remove formatting and trim each value.
protected
explode_values_formatter(string $value) : string
Parameters
- $value : string
-
Value to format.
Tags
Return values
string —get_formating_callback()
Deprecated get formatting callback method.
protected
get_formating_callback() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —get_formatting_callback()
Get formatting callback.
protected
get_formatting_callback() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —get_memory_limit()
Get memory limit
protected
get_memory_limit() : int
Return values
int —get_product_object()
Prepare a single product for create or update.
protected
get_product_object(array<string|int, mixed> $data) : WC_Product|WP_Error
Parameters
- $data : array<string|int, mixed>
-
Item data.
Return values
WC_Product|WP_Error —get_row_id()
Get a string to identify the row from parsed data.
protected
get_row_id(array<string|int, mixed> $parsed_data) : string
Parameters
- $parsed_data : array<string|int, mixed>
-
Parsed data.
Return values
string —get_variation_parent_attributes()
Get variation parent attributes and set "is_variation".
protected
get_variation_parent_attributes(array<string|int, mixed> $attributes, WC_Product $parent) : array<string|int, mixed>
Parameters
- $attributes : array<string|int, mixed>
-
Attributes list.
- $parent : WC_Product
-
Parent product data.
Return values
array<string|int, mixed> —memory_exceeded()
Memory exceeded
protected
memory_exceeded() : bool
Ensures the batch process never exceeds 90% of the maximum WordPress memory.
Return values
bool —process_item()
Process a single item and save.
protected
process_item(array<string|int, mixed> $data) : array<string|int, mixed>|WP_Error
Parameters
- $data : array<string|int, mixed>
-
Raw CSV data.
Tags
Return values
array<string|int, mixed>|WP_Error —read_file()
Read file.
protected
read_file() : mixed
Return values
mixed —remove_utf8_bom()
Remove UTF-8 BOM signature.
protected
remove_utf8_bom(string $string) : string
Parameters
- $string : string
-
String to handle.
Return values
string —set_image_data()
Convert raw image URLs to IDs and set.
protected
set_image_data(WC_Product &$product, array<string|int, mixed> $data) : mixed
Parameters
- $product : WC_Product
-
Product instance.
- $data : array<string|int, mixed>
-
Item data.
Return values
mixed —set_mapped_keys()
Set file mapped keys.
protected
set_mapped_keys() : mixed
Return values
mixed —set_meta_data()
Append meta data.
protected
set_meta_data(WC_Product &$product, array<string|int, mixed> $data) : mixed
Parameters
- $product : WC_Product
-
Product instance.
- $data : array<string|int, mixed>
-
Item data.
Return values
mixed —set_parsed_data()
Map and format raw data to known fields.
protected
set_parsed_data() : mixed
Return values
mixed —set_product_data()
Set product data.
protected
set_product_data(WC_Product &$product, array<string|int, mixed> $data) : mixed
Parameters
- $product : WC_Product
-
Product instance.
- $data : array<string|int, mixed>
-
Item data.
Tags
Return values
mixed —set_variation_data()
Set variation data.
protected
set_variation_data(WC_Product &$variation, array<string|int, mixed> $data) : WC_Product|WP_Error
Parameters
- $variation : WC_Product
-
Product instance.
- $data : array<string|int, mixed>
-
Item data.
Tags
Return values
WC_Product|WP_Error —starts_with()
Check if strings starts with determined word.
protected
starts_with(string $haystack, string $needle) : bool
Parameters
- $haystack : string
-
Complete sentence.
- $needle : string
-
Excerpt.
Return values
bool —time_exceeded()
Time exceeded.
protected
time_exceeded() : bool
Ensures the batch never exceeds a sensible time limit. A timeout limit of 30s is common on shared hosting.
Return values
bool —unescape_data()
The exporter prepends a ' to escape fields that start with =, +, - or @.
protected
unescape_data(string $value) : string
Remove the prepended ' character preceding those characters.
Parameters
- $value : string
-
A string that may or may not have been escaped with '.
Tags
Return values
string —adjust_character_encoding()
Convert a string from the input encoding to UTF-8.
private
adjust_character_encoding(string $value) : string
Parameters
- $value : string
-
The string to convert.