2017-10-31 12 views
1

私は2000以上の製品のカスタムフィールドの値をインポートする必要があり、これを可能にするフリープラグインまたは組み込み関数を見つけることができません。現在、私はこの機能を持つプレミアムプラグインの範囲を見つけましたが、最も安価なプラグインは$ 50ですが、これは現在のところ予算外です。WooCommerce csvインポートカスタムフィールド - カスタムフィールドを組み込むために組み込みのインポータを調整しますか?

したがって、ここに誰かが組み込みCSVインポーター&エクスポーターにカスタムフィールドを追加する方法を知っているかどうか質問したいと思います.Woocommerce 3.1のそれ以降のバージョンは付属していますか?これまでの製品データ用の独自のカスタムフィールドを作成しましたが、自動的にビルトインインポーターに表示されるわけではありません(悲しいことに)。

これを実行するには実行可能な方法がありますか、それとも、私が見つけていない無料のプラグインなど何か他の方法を知っていますか?

私はthis postとして "wp ultimate csv importer"を試しましたが、残念ながらカスタムフィールドはこの無料プラグインには表示されません。

答えて

1

私はちょうど答えを見つけたので、私はこの質問を投稿するのが少し速かったようです - しかし、うまくいけば、これは何人かの人々に多くの時間とお金を節約することができます私がこの答えをどこか他のところで見つけたのであれば、時間。

私は誤ってウクソクのドキュメントセクションの "Column Header Reference"(ただし、最初からそこにあったはずです)にぶつかりました。実際には、これは完全に実行可能であることが実際に分かりました。プレフィックスがmeta:、その後にカスタムフィールドのidが付いたcsvファイルこのソリューション
ため

要件は、このソリューションのためののみの要件は、あなたがWoocommerceバージョン> 3.1がインストールされている、活性化、およびプラグインの組み込みのCSVインポートツールを使用することです。あなたは、たとえば、ブランドが含まれ、各製品のカスタムフィールドを持っている場合
:「> Woocommerce製品(CSV) - - >インポートツール」

これは、下の管理パネルで見つけることができますそれぞれの製品のIDがbrandの場合、csvファイルのヘッダーリファレンスにmeta:brandと名前を付けて、これらのカスタムフィールドの値をインポートできます。

他の例として、カスタムフィールドのIDが_product_brandの場合、このカスタムフィールドの値は、ヘッダー参照(例:Excelのcsvファイルの1行目)に次のように名前を付けてインポートできます。meta:_product_brand

解決策は、カスタムフィールドidの先頭にcsvファイル内にmeta:というプレフィックスを付けることです。

注:インポートの2番目の手順で自動的に行われない場合は、インポートする列の[フィールドにマップ]列で[メタとしてインポート]オプションを選択してくださいカスタムフィールドに追加します。

あなただけの存在doesntのフィールドIDを持つメタ見出し参照してCSVファイルをアップロードする場合は、これはcsvファイルで指定された名前を持つ新しいカスタムフィールドを作成する新しいカスタムフィールド
を作成します。

+0

ありがとうございました! 私は似たような状況にあり、あなたの指示に従って私は解決しました! –

0

私は同じ必要性を持ち、最終的にこの目的のために自分のプラグインを開発しました。

まず、プラグインにPHPExcelから使用する必要があります。その後、xlsファイルを読み込んで、woocommerce関数を使用して製品をインポートします。

読むと、以下の構造を持つPHP配列ににあなたのXLSファイルを変換:

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'] 
); 

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', ""); 
関連する問題