我正在创建一个WordPress自定义插件,通过上传一个CSV文件在Woocommerce中导入产品数据。CSV文件包含不同类型的产品(简单、可变、分组、外部),具有自定义属性和大量数据。您可以查看CSV文件。这是我的密码:
<?PHP
foreach($csv_file as $csv_data){
//getting csv file name
$csvFileName = $csv_data["name"];
$file = fopen($csvFileName, 'r');
$file_data = fgetcsv($file);
$fp = file($csvFileName);
$rows = array_map('str_getcsv', file($csvFileName));
$header = array_shift($rows);
$csv = array();
foreach($rows as $row) {
$csv[] = array_combine($header, $row);
}
$assocData = array();
if( ($handle = fopen( $csvFileName, "r")) !== FALSE) {
$rowCounter = 0;
while (($rowData = fgetcsv($handle, 0, ",")) !== FALSE) {
if( 0 === $rowCounter) {
$headerRecord = $rowData;
} else {
foreach( $rowData as $key => $value) {
$assocData[ $rowCounter - 1][ $headerRecord[ $key] ] = $value;
}
}
$rowCounter++;
}
fclose($handle);
}
//Then iterate $assocData using foreach loop and fetch all keys and values
?>注意:上面的代码非常适合简单的产品类型,但是当提供上面链接的CSV文件时会抛出一个错误。下面是错误截图:

我的目标:我想上传一个CSV文件,其中包含100个简单产品、50个可变产品、20个外部产品和10个分组产品等混合产品类型的数据,然后在Woocommerce中上传所有产品。
发布于 2022-09-14 16:28:19
PHP为我工作。如果有人遇到同样的情况,他们可以使用这个https://github.com/parsecsv/parsecsv-for-php类:它正确地返回CSV文件数据。
在PHP中打开CSV文件并获得文件名之后,我从代码中添加这个PHP:
<?PHP
$csv = new \ParseCsv\Csv();
$csv->auto($csvFileName);
$csv_file_data = $csv->data;
?>然后,我只需要使用foreach循环迭代$csv_file_data变量。
特别感谢@Deigo引用该PHP类.
https://stackoverflow.com/questions/73718763
复制相似问题