Automattic\WooCommerce\Internal\CLI\Migrator\Core
WooCommerceProductImporter::import_batch
Import a batch of products.
Method of the class: WooCommerceProductImporter{}
No Hooks.
Returns
Array. Batch import results.
Usage
$WooCommerceProductImporter = new WooCommerceProductImporter(); $WooCommerceProductImporter->import_batch( $products_data, $source_data_batch ): array;
- $products_data(array) (required)
- Array of mapped product data.
- $source_data_batch(array)
- Array of original source data for reference.
Default:array()
WooCommerceProductImporter::import_batch() WooCommerceProductImporter::import batch code WC 10.7.0
public function import_batch( array $products_data, array $source_data_batch = array() ): array {
$results = array();
$batch_stats = array(
'successful' => 0,
'failed' => 0,
'skipped' => 0,
);
$total_count = count( $products_data );
foreach ( $products_data as $index => $product_data ) {
$source_data = $source_data_batch[ $index ] ?? array();
$product_name = $product_data['name'] ?? 'Unknown Product';
$result = $this->import_product( $product_data, $source_data );
$results[] = $result;
if ( 'success' === $result['status'] ) {
if ( 'skipped' === $result['action'] ) {
++$batch_stats['skipped'];
} else {
++$batch_stats['successful'];
}
} else {
++$batch_stats['failed'];
}
if ( $this->progress_callback ) {
call_user_func( $this->progress_callback, $index + 1, $total_count, $product_name, $result );
}
}
return array(
'results' => $results,
'stats' => $batch_stats,
);
}