akho
Forum Replies Created
-
@blobuz дайте, пожалуйста, ваш скайп и я с вами свяжусь
Тоже столкнулся сегодня с этой проблемой (раньше не было). В моем случае все было очевидно – плагин Capcha. В настройках у брал запрос на капчу при логине и все заработало.
Да, плагин правильный. Он берет текущие атрибуты вариации, создает глобальные атрибуты и добавляет их в вариацию.
Я методом проб и ошибок вычислил, что для корректной работы фильтров не обязательно добавлять глобальные атрбуты в вариации, а достаточно только линка с ними. Плюс так как я знаю какие мне атрибуты нужны я могу их создать заранее, а не делать это через код.
Как итог, единственное что делают несколько строчек кода, которые я показал выше, это создают линк вариации с глобальными атрибутами.
В моем случае я создал 3 глобальных атрибута Цвет, Размер и Рост со слагами color, size и height.
Вот часть кода в import.php, которая объединяет вариации с этими атрибутами для корректной фильтрацииforeach ($product['ХарактеристикиТовара'] as $characteristic) { $attribute_value = @$characteristic['Значение']; if (!$attribute_value) continue; $product_attribute_name = $characteristic['Наименование']; $product_attribute_key = sanitize_title($product_attribute_name); if( "Размер" === $product_attribute_name || "Цвет" === $product_attribute_name || "Рост" === $product_attribute_name ) { if ("Размер" === $product_attribute_name) wp_set_object_terms( $post_id, $attribute_value, 'pa_size', false ); if ("Цвет" === $product_attribute_name) wp_set_object_terms( $post_id, $attribute_value, 'pa_color', false ); if ("Рост" === $product_attribute_name) wp_set_object_terms( $post_id, $attribute_value, 'pa_height', false ); } // end if $product_attribute_position = count($product_attributes); $product_attributes[$product_attribute_key] = array( 'name' => wc_clean($product_attribute_name), 'value' => $attribute_value, 'position' => $product_attribute_position, 'is_visible' => 0, 'is_variation' => 0, 'is_taxonomy' => 0, ); }Ключевый здесь вот эти строки:
if( "Размер" === $product_attribute_name || "Цвет" === $product_attribute_name || "Рост" === $product_attribute_name ) { if ("Размер" === $product_attribute_name) wp_set_object_terms( $post_id, $attribute_value, 'pa_size', false ); if ("Цвет" === $product_attribute_name) wp_set_object_terms( $post_id, $attribute_value, 'pa_color', false ); if ("Рост" === $product_attribute_name) wp_set_object_terms( $post_id, $attribute_value, 'pa_height', false ); } // end ifМне удалось добиться правильной фильтрации только за счет создания глобальных атрибутов и их линком с вариативными товарами. Я взял плагин Product Attributes – Bulk Modifier за основу, немного подшаманил его и добавил в обработки wc1c_mode_import и wc1c_mode_query.
Поробуйте начать с плагина, может это все что вам нужно.Может кому пригодиться. Нашел решение проблемы, не знаю с чем это связано, но в моем случае в массиве $suboffers не было значений ‘offer’, но были ‘product’. Соответсвуюшая замена в коде решила мою проблему.
Если есть кто-то кто может помочь с решением этой задачи, то готов заплатить 5000 р.
Ну вот я как раз выгружаю товар с характеристиками Размер, Цвет + Цена, но результат в WC получается как описан выше