WooCommerce csv 사용자 지정 필드 가져오기 - 사용자 지정 필드를 포함하도록 기본 제공 임포터를 조정하시겠습니까?
2000개 이상의 제품에 대해 커스텀 필드의 값을 Import해야 하는 상황에서 이를 가능하게 하는 무료 플러그인이나 빌트인 기능을 찾을 수 없습니다.현재 이 기능을 갖춘 다양한 프리미엄 플러그인을 찾았지만, 가장 저렴한 플러그인은 50달러이며, 현시점에서는 예산 범위 밖입니다.
그래서 여기 계신 분 중에 내장 CSV 임포터 및 익스포터에 커스텀 필드를 추가하는 방법을 알고 계신 분 계십니까?Woocommerce의 3.1 이후 버전은 무엇입니까?지금까지 제품 데이터에 대한 사용자 지정 필드를 성공적으로 생성했지만 기본 제공 임포터에 자동으로 표시되지 않습니다(안타깝게도).
실행 가능한 방법이 있습니까?그런데 무료 플러그인 등 제가 찾지 못한 방법이 있습니까?
이 투고에 따라 "wp ultimate csv importer"를 사용해 보았습니다만, 유감스럽게도 이 무료 플러그인에는 커스텀 필드가 표시되지 않습니다.
방금 답을 찾아냈기 때문에 제가 이 질문을 너무 빨리 올렸던 것 같습니다.하지만 이 질문을 통해 시간과 비용을 절약할 수 있기를 바랍니다(다른 곳에서만 이 답을 찾았더라면 많은 시간을 절약할 수 있었을 것입니다).
우연히 Woocommerce 문서 섹션의 "Column Header Reference"(처음부터 거기에 있었어야 했지만)와 마주치게 되었습니다.여기서 실제로 이 작업은 csv 파일에서 헤더 참조를 프리픽스로 조정하는 것만으로 완전히 실행 가능하다는 것을 알게 되었습니다.meta:
그 다음에id
커스텀 필드의
이 솔루션의 요건
이 솔루션의 유일한 요건은 Woocommerce 버전이 3.1 이상 설치되어 활성화되어 있어야 하며 플러그인의 내장 CSV 임포터를 사용해야 한다는 것입니다.이는 관리 패널의 "도구 --> Import --> Woocommerce 제품(csv)"에서 확인할 수 있습니다.
예:
예를 들어 각 제품의 브랜드를 포함하고 ID가 다음과 같은 사용자 정의 필드가 있는 경우brand
파일 을 붙이면 각 수 csv " " " " " " " Import " 。meta:brand
.
가 「Da」인 ._product_brand
Reference의 첫 행)에 이름을 수 있습니다.헤더 레퍼런스(「excel」csv 「csv」)는 Import 합니다.meta:_product_brand
필드 에 붙이는 입니다.id
meta:
csv 파일 입니다.
주의: Import의 두 번째 단계에서 자동으로 실행되지 않는 경우 커스텀필드로 Import할 컬럼의 "map to field" 컬럼에서 "import as meta" 옵션을 선택하십시오.
custom field (새로운 작성)
존재하지 않는 필드 ID를 가진 메타 머리글 참조를 사용하여 csv를 업로드하면 csv 파일에 지정된 이름으로 새로운 커스텀필드가 생성됩니다.
저도 같은 요구가 있어서 드디어 이 목적을 위해 저만의 플러그인을 개발했습니다.
먼저 플러그인에서 PHPExcel을 사용해야 합니다.그 후 xls 파일을 읽고 woocommerce 기능이 있는 제품을 Import합니다.
xls 파일을 읽고 다음 구조의 PHP 어레이로 변환합니다.
function fileInitializer($file, $needCells){
$array_data = array();
require_once 'libraries/PHPExcel/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$target_dir = untrailingslashit( dirname( __FILE__ ) )."/upload-file/".$file;
$objReader= new PHPExcel_Reader_Excel5();
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load( $target_dir);
$rowIterator = $objPHPExcel->getActiveSheet()->getRowIterator();
$rowIndex = 0;
foreach($rowIterator as $row){
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
if(1 == $row->getRowIndex ()) continue;
foreach ($cellIterator as $cell) {
foreach($needCells as $needCell){
if($needCell['cell_name'] == $cell->getColumn()){
$array_data[$rowIndex][$needCell['array_name']] = fai_convert_string_to_persian($cell->getCalculatedValue());
}
}
}
$rowIndex++;
}
return $array_data;
}
$file = 'FILEPATH';
$needCells = array(
array('cell_name'=>'A', 'array_name'=>'id')
, array('cell_name'=>'B', 'array_name'=>'full_name')
);
$array_data = fileInitializer($file, $needCells);
상기 프로세스 후 $array_data에 잠시 시간을 두고 다음과 같이 제품을 추가합니다.
$post = array(
'post_author' => $user_id,
'post_content' => '',
'post_status' => "publish",
'post_title' => $value['product_name'],
'post_parent' => '',
'post_type' => "product",
);
$post_id = wp_insert_post( $post, $wp_error );
//ADDING EXTERA FEATURES
update_post_meta( $post_id, 'main_code_text_field', $value['main_code']
);
또한 Woocommerce 메타다타도 있습니다.
update_post_meta( $post_id, 'total_sales', '0');
update_post_meta( $post_id, '_downloadable', 'yes');
update_post_meta( $post_id, '_virtual', 'yes');
update_post_meta( $post_id, '_regular_price', "" );
update_post_meta( $post_id, '_sale_price', "");
update_post_meta( $post_id, '_purchase_note', "" );
update_post_meta( $post_id, '_featured', "no" );
update_post_meta( $post_id, '_weight', "" );
update_post_meta( $post_id, '_length', "" );
update_post_meta( $post_id, '_width', "" );
update_post_meta( $post_id, '_height', "" );
update_post_meta( $post_id, '_sku', "");
update_post_meta( $post_id, '_product_attributes', array());
update_post_meta( $post_id, '_sale_price_dates_from', "" );
update_post_meta( $post_id, '_sale_price_dates_to', "" );
update_post_meta( $post_id, '_sold_individually', "" );
update_post_meta( $post_id, '_manage_stock', "no" );
update_post_meta( $post_id, '_backorders', "no" );
update_post_meta( $post_id, '_stock', "" );
언급URL : https://stackoverflow.com/questions/47041693/woocommerce-csv-import-custom-fields-adjust-built-in-importer-to-include-custo
'programing' 카테고리의 다른 글
JSX(React)에서 곱슬머리 괄호는 무엇을 의미합니까? (0) | 2023.03.02 |
---|---|
JSON 문자열에서 C# 클래스 파일을 자동 생성하는 방법 (0) | 2023.03.02 |
application.yml과 application.properties를 비교합니다. (0) | 2023.03.02 |
Tymeleaf 형식 지정 날짜 (0) | 2023.03.02 |
속성별 AngularJS 정렬 (0) | 2023.03.02 |