WooCommerce csv импорт настраиваемых полей — настроить встроенный импортер для включения настраиваемых полей?

Я нахожусь в такой ситуации, когда мне приходится импортировать значения для настраиваемых полей для более чем 2000 продуктов, и я просто не могу найти бесплатный плагин или встроенную функцию, которая позволяет это. На данный момент я обнаружил ряд премиальных плагинов, которые имеют эту функцию, но самый дешевый стоит 50 долларов, а сейчас это просто не по бюджету.

Поэтому я хотел бы спросить, знает ли кто-нибудь здесь о способе добавления пользовательских полей во встроенный импортер CSV & экспортер, какие более поздние версии Woocommerce, чем 3.1 поставляется с? До сих пор я успешно создал свои собственные настраиваемые поля для данных о продукте, но они не отображаются автоматически во встроенном импортере (к сожалению).

Есть ли какой-либо жизнеспособный способ сделать это, или в этом отношении, вы знаете какой-либо другой способ, такой как бесплатный плагин, который я не нашел, или что-нибудь еще?

Пожалуйста, обратите внимание, что я попробовал «wp ultimate csv import» согласно эта почта, но, к сожалению, пользовательские поля не отображаются в этом бесплатном плагине.

3

Решение

Что ж, похоже, я слишком быстро отправил этот вопрос, так как я только что нашел ответ — но, надеюсь, это может сэкономить некоторым людям много времени и денег (сэкономило бы мне много времени, если бы я нашел этот ответ только в другом месте).

Я случайно наткнулся наСсылка на заголовок столбца«(хотя, очевидно, я должен был быть там с самого начала) раздела документа Woocommerce, и здесь я действительно обнаружил, что это вполне выполнимо, просто изменив ссылку на заголовок в файле csv с префиксом meta: с последующим id вашего настраиваемого поля.

Требование к этому решению
только Для этого решения необходимо, чтобы у вас была установлена ​​и активирована версия Woocommerce> 3.1, а также использовался встроенный импортер csv плагина. Это можно найти в панели администратора в разделе «Инструменты -> Импорт -> Продукты Woocommerce (CSV)»

пример:
если у вас есть настраиваемое поле для каждого продукта, которое, например, содержит марку каждого продукта и имеет идентификатор brandВы можете импортировать значения для каждого из этих настраиваемых полей, указав ссылку на заголовок в файле csv следующим образом: meta:brand,

В качестве другого примера, если идентификатор настраиваемого поля был _product_brandзначения для этого настраиваемого поля можно импортировать, указав ссылку на заголовок (например, 1-ю строку в csv-файле в excel) следующим образом: meta:_product_brand

Решение состоит в том, чтобы префикс пользовательского поля id с meta: внутри CSV-файла в заголовке.

Замечания:
если это не произойдет автоматически во время второго шага импорта, обязательно выберите опцию «импортировать как мета» в столбце «сопоставить с полем» для столбца, который вы хотите импортировать в свое настраиваемое поле.

Создать новое настраиваемое поле
Если вы просто загрузите csv со ссылкой на мета-заголовок с идентификатором поля, который не существует, это создаст новое настраиваемое поле с именем, указанным в файле csv.

6

Другие решения

У меня была такая же потребность и, наконец, я разработал свой собственный плагин для этой цели.

Сначала вам нужно использовать из PHPExcel в вашем плагине. После этого прочитайте ваш файл xls и импортируйте продукт с функциями woocommerce.

Прочитайте и преобразуйте ваш файл 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', "" );
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector