Как добавить описание вариации товара, в карточку товара Woocommerce?
Нужно реализовать чтобы описание вариации выводилось прямо в карточке товара, оно выводится у меня только на странице товара, а как сделать чтобы и на карточке не знаю
Дополнительно:
Использовать хук woocommerce_after_shop_loop_item и метод get_available_variations() у продукта, как то так:
function test() { global $product; if ($product->is_type('variable')) { $current_variation_id = $product->get_variation_id(); $variations = $product->get_available_variations(); foreach ($variations as $variation) { if ($current_variation_id === $variation['variation_id']) { if (isset($variation['variation_description'])) { echo $variation['variation_description']; } break; } } } } add_action('woocommerce_after_shop_loop_item', 'test'); |
function test() { global $product; if ($product->is_type('variable')) { $current_variation_id = $product->get_variation_id(); $variations = $product->get_available_variations(); foreach ($variations as $variation) { if ($current_variation_id === $variation['variation_id']) { if (isset($variation['variation_description'])) { echo $variation['variation_description']; } break; } } } } add_action('woocommerce_after_shop_loop_item', 'test');
- Спасибо, описание действительно выводится, но еще проблема в том что выводится описание всех вариаций, а нужно как-то сделать чтобы выводилось только выбранной вариации, такая штука реализована на странице товара, но я не знаю где найти тот скрипт(
- Vorder96, обновил ответ. Если не верно, то напишите заново (подробно), что именно Вы хотите.
- Михаил Р., Вы гений, оно правильно но почему-то не выводится теперь описание, по инспектору вижу что оно есть, но на карточке товара теперь не выводится
- Михаил Р.,
- Vorder96, я так понял, что выводится все так, как и задумано? Если да, то жмите соответствующие кнопки под ответом и создавайте новый вопрос с проблемой не корректной верстки карточки товара.
- Михаил Р., Хорошо, Спасибо
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


Описание вариации можно вывести в карточке товара WooCommerce, но важно понимать ограничение: в каталоге пользователь ещё не выбрал конкретную вариацию. Поэтому WordPress не знает, описание какой именно вариации показывать. На странице товара это работает иначе, потому что там есть форма выбора атрибутов.
Есть три нормальных варианта:
Самый простой вариант — показать описание первой доступной вариации в хуке карточки товара:
add_action('woocommerce_after_shop_loop_item_title', function () { global $product; if (!$product || !$product->is_type('variable')) { return; } $variations = $product->get_available_variations(); if (empty($variations[0]['variation_description'])) { return; } echo '<div class="loop-variation-description">'; echo wp_kses_post(wpautop($variations[0]['variation_description'])); echo '</div>'; }, 25);
Если нужно вывести все описания, лучше ограничить длину, иначе каталог быстро станет тяжёлым и неудобным:
foreach ($product->get_available_variations() as $variation) { if (!empty($variation['variation_description'])) { echo '<p class="loop-variation-description">' . esc_html(wp_trim_words(wp_strip_all_tags($variation['variation_description']), 18)) . '</p>'; } }
Для больших магазинов аккуратнее с
get_available_variations()в цикле каталога: если на странице 40 товаров и у каждого десятки вариаций, это может заметно замедлить вывод. В таком случае лучше заранее сохранить нужный короткий текст в meta товара и выводить уже его.Итог: технически это делается через
woocommerce_after_shop_loop_item_title, но сначала определите логику: первая вариация, все вариации или динамический выбор. Для каталога чаще всего достаточно короткого текста первой/основной вариации.