Error: Something went wrong. We could not make a connection with the server.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Очень интересная ошибка, плагина «Woocommerce CSV importer». Возникает при импорте товара, притом что с начало был сделан экспорт, потом файл полученный при экспорте импортирую обратно. То есть плагину не нравится его же файл.

Проанализировав файл импорта, выяснилось что ошибка возникает как раз на импорте вариативных товаров.

Протрасировав ошибку, добавляя в код инструкцию по выводу в лог


$this->logger->log ('метка');

выявил что сбой идет при создании класса товара, в файле

/wp-content/plugins/woocommerce-csvimport/include/class-woocsv-product.php


public function fill_in_data ()

{

. . .

$test = new WC_Product($tempID); // - место сбоя

. .

то есть при попадании на вариативный товар создавался класс WC_Product, а полазим на просторах инета, нашел что есть для вариативных товаров свой класс WC_Product_Variation.

Решение

Берем и создаем следующее условие


public function fill_in_data ()

{

. . .

$post_type = $this->raw_data[ array_search ('post_type', $this->header) ];
if ($post_type == 'product'){
  $test = new WC_Product($tempID);
}
if ($post_type == 'product_variation'){
  $test = new WC_Product_Variation($tempID);
}

. . .

}

Правим файл class-woocsv-import.php

добавляем новые поля для сопоставления


public $fields = array (
0 => 'sku',
1 => 'post_name',
2 => 'post_status',
3 => 'post_title',
4 => 'post_content',
5 => 'post_excerpt',
6 => 'category',
7 => 'tags',
8 => 'stock',
10 => 'regular_price',
11 => 'sale_price',
12 => 'weight',
13 => 'length',
14 => 'width',
15 => 'height',
17 => 'tax_status',
18 => 'tax_class',
19 => 'stock_status', // instock, outofstock
20 => 'visibility', // visible, catelog, search, hidden
21 => 'backorders', // yes,no
22 => 'featured', // yes,no
23 => 'manage_stock', // yes,no
24 => 'featured_image',
25 => 'product_gallery',
26 => 'shipping_class',
27 => 'comment_status', //closed, open
28 => 'change_stock', // +1 -1 + 5 -8
29 => 'ID',
30 => 'ping_status', // open,closed
31 => 'menu_order',
32 => 'post_author', //user name or nice name of an user
33 => 'post_date',
34 => 'product_type', // - добавляем
35 => 'post_type',    // - добавляем
36 => 'post_parent',  // - добавляем
37 => 'price'         // - добавляем
);

После этого плагин уже не ругается и импортирует вариативный товар.

Полезные ссылки

https://docs.woocommerce.com/wc-apidocs/class-WC_Product.html

https://docs.woocommerce.com/wc-apidocs/class-WC_Product_Variation.html

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *