Как добавить изображение условий атрибута в WooCommerce?

#wordpress #woocommerce

#wordpress #woocommerce

Вопрос:

В WooCommerce я создал атрибут «Бренд» и добавил некоторые термины, такие как «Бренд один», «Бренд два» и т.д.. Я хочу добавить изображение для каждого термина. Прямо сейчас нет возможности добавить изображение в атрибутивных терминах.

Пожалуйста, скажите мне, как добавить изображение в атрибутивных терминах.

Ссылка администратора выглядит следующим образом:

  .../wp-admin/edit-tags.php?taxonomy=pa_brandamp;post_type=product'
  

Ответ №1:

WooCommerce хранит атрибуты продукта за пределами обычной таблицы таксономии, поэтому вам нужно выбрать что-то более специфичное для WC. Попробуйте расширение Variation Swatches и Photos.

ОБНОВЛЕНИЕ: вы можете использовать плагин Taxonomy Images, но вам нужно внести незначительные изменения. По умолчанию плагин отображает только таксономии, которые настроены для отображения в области администрирования (т. Е. show_ui Значение равно true). WooCommerce по умолчанию скрывает таксономии атрибутов продуктов, поэтому плагин не будет отображать их на экране настроек. Вы можете изменить это поведение, закомментировав / удалив строки 402-402 из taxonomy-images.php :

     if ( ! isset( $taxonomy->show_ui ) || empty( $taxonomy->show_ui ) )
        continue
  

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

Спасибо @helgatheviking за предложение этого плагина в первую очередь

Комментарии:

1. Чувак, ты гений! Спасибо вам большое, очень большое!

2. @dre Возможно ли добавить опцию изображения в область атрибутов чуть выше вариантов?

Ответ №2:

С плагином «Образцы вариантов» (см. Ответ @Dre) все работает гладко, и получить изображение так же просто, как это:

 $swatch_term = new WC_Swatch_Term( 'swatches_id', $term_id, $taxonomy, false,
                'swatches_image_size' );

$html = '<img src="' . $swatch_term->thumbnail_src . '" alt=""/>';
  

«Изображения таксономии» не обновлялись со времен WP 3.6.1…

Комментарии:

1. Я хочу показывать изображения только с атрибутом pa_brand и внутри перебирать все и печатать его дочерние изображения, то есть бренд Gucci и его изображение. возможно ли это?

2. сайт разбился после добавления кода

3. @HeemanshuBhalla — Сообщение от 2015 года. С тех пор все могло измениться.

4. @tivnet ок, понял. Я исправил проблему и добавил ее в качестве ответа

Ответ №3:

Технически «атрибут» WooCommerce — это просто пользовательская таксономия WordPress. Поэтому я бы попробовал что-то вроде плагина изображений таксономии.

Комментарии:

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

2. ОБНОВЛЕНИЕ: я съем свою шляпу! Я ошибся — WC добавляет их как обычные таксономии, но он добавляет ко всем слагам префикс ‘pa_’ и создает отдельную таблицу для отслеживания всего этого. Вы можете использовать упомянутый плагин, но должны внести в него изменения. Я добавлю это в качестве ответа.

Ответ №4:

Плагин «Variation Swatches and Photos extension» является премиум-классом, и никто не хотел бы покупать его для такой цели, как получение изображения значка для бренда.

«Изображения таксономии» не обновлялись со времен WP 3.6.1…

То, что я придумал, — это изображение категории и таксономии, и это делает работу.

Вот как вы можете получить URL-адрес изображения:

     if (function_exists('get_wp_term_image'))
    {
        $meta_image = get_wp_term_image($term_id); 
        //It will give category/term image url 
    }

    echo $meta_image; // category/term image url
  

Ответ №5:

Я исправил эту проблему. На самом деле я не передавал правильное значение в таксономии. Я использовал плагин variation swatches, поэтому не знал, какое значение передавать для таксономии. ниже приведен рабочий код. Я пытался получить список атрибутов «брендов» с изображениями.

 $attribute_taxonomies = wc_get_attribute_taxonomies();
$taxonomy_terms = array();

if ($attribute_taxonomies) :
    foreach ($attribute_taxonomies as $tax) :
        if (taxonomy_exists(wc_attribute_taxonomy_name($tax->attribute_name))) :
            
            if($tax->attribute_name=="brands"){
                $taxonomy_terms[$tax->attribute_name] = get_terms(wc_attribute_taxonomy_name($tax->attribute_name), 'number=6amp;orderby=nameamp;hide_empty=1');
            }
        endif;
    endforeach;
endif;

foreach ($taxonomy_terms as $item) :
    foreach($item as $child):
        //print_r($child);
         $thumbnail_id = get_woocommerce_term_meta( $child->term_id, 'product_pa_brands', true );
        $textureImg = wp_get_attachment_image_src( $thumbnail_id );
       

//we are getting image in $textureImg[0]

        }
    endforeach;
endforeach;