Forum Replies Created

Viewing 1 replies (of 1 total)
  • Здравствуйте! Столкнулся с аналогичной проблемой. Заметил, что также писали об этом.
    У меня на сайте много вариативных товаров – в файле для Яндекс.маркета они выводятся с одинаковым названием, что является проблемой, ибо Яндекс не разрешает публикацию в таком случае.

    Я реализовал решение, но: навыки программирования имею базовые, поэтому код совсем не 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, 5 months ago by native_today.
    • This reply was modified 6 years, 5 months ago by native_today.
Viewing 1 replies (of 1 total)