#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;