Здравствуйте! Столкнулся с аналогичной проблемой. Заметил, что также писали об этом.
У меня на сайте много вариативных товаров – в файле для Яндекс.маркета они выводятся с одинаковым названием, что является проблемой, ибо Яндекс не разрешает публикацию в таком случае.
Я реализовал решение, но: навыки программирования имею базовые, поэтому код совсем не DRY. Если возможно, поправьте его.
В /market-exporter/admin/class-market-exporter-wc.php
с 399 строки, где в yml добавляется имя товара, внес изменения:
if ( ! $type_prefix_set ) {
$attributes = $product->get_attributes();
$offer_name[] = $this->clean( $offer->get_title() );
foreach ( $attributes as $param ) {
$a = 'a';
if ( self::woo_latest_versions() ) {
$taxonomy = wc_attribute_taxonomy_name_by_id( $param->get_id() );
} else {
$taxonomy = $param['name'];
}
if ( isset( $param['variation'] ) && true === $param['variation'] || isset( $param['is_variation'] ) && 1 === $param['is_variation'] ) {
$param_value = $offer->get_attribute( $taxonomy );
} else {
$param_value = false;
}
// Skip if empty value (when cyrillic letter are used in attribute slug).
if ( ! isset( $param_value ) || empty( $param_value ) ) {
continue;
}
/* @var WC_Product_Attribute $param */
$offer_name[] = $param_value;
}
$beauty_attrs = implode(", ", $offer_name);
$yml .= ' <name>' . $beauty_attrs . '</name>' . PHP_EOL;
}
После 285 строки, внутри цикла while вставил $offer_name = [];
Насколько адекватно это решение? И еще вопрос: для чего используется переменная ‘$a’ в цикле по перебору атрибутов? Это было реализовано на основе вывода атрибутов в yml-файл.
-
This reply was modified 6 years, 2 months ago by native_today.
-
This reply was modified 6 years, 2 months ago by native_today.