Как менять название атрибута в Woocomerce в зависимости от категории?
Все товары выгружаются на сайт с названием атрибута "Толщина" и его значением. Атрибут вывожу в product loop и в саму карточку. Проблема в том, что некоторые товары должны иметь другое название атрибута (не значение), например фасовка, длина, ширина... в зависимости от родительской категории (в химии - фасовка, в ткани - ширина и т.п.), значение не меняется. Есть смешанные категории (типа акция), где все товары должны быть со своим названием атрибута.
Подскажите, пожалуйста, как это можно реализовать? Долго искал что-то похожее в интернете, но так ничего подходящего не нашел..
Ответы (2 шт):
"фасовка, длина, ширина, долгота. толщина" - это все отдельные аттрибуты. они подразумевают другой смысл, другие ед. измерения и тд В карточке/цикле товара лучше будет обращаться не напрямую а через цикл
Те заменить
echo $product->get_attribute('толщина')
заменить на что-то вроде
foreach( ['фасовка','длина', 'ширина', 'долгота', 'толщина'] as $attr ){
$attr_value = $product->get_attribute($attr);
if( empty($attr_value) )
continue;
echo $attr . ' ' . $attr_value;
}
Решил вопрос следующим образом. Создал поле через ACF. WP all import выгружает данные в это поле.
Далее через функцию вывожу это поле, проверяя соответствие категории
// ВЫВОД АТРИБУТА - ФАСОВКА
add_filter('woocommerce_after_shop_loop_item_title', 'show_product_attributes_vors_dublen', 9);
function show_product_attributes_vors_dublen()
{
global $product;
$cat_id = 1229;
$cat_ids = $product->get_category_ids();
$varia = get_field('varia_atribut');
if ($varia) {
if (in_array($cat_id, $cat_ids, true)) {
echo '<br><td><span>Фасовка:</span><tr> ' . $varia . '</td></tr></span>';
}
}
}
// ВЫВОД АТРИБУТА - ТОЛЩИНА
add_filter('woocommerce_after_shop_loop_item_title', 'show_product_attributes_tolshina', 9);
function show_product_attributes_tolshina()
{
global $product;
$cat_id = 1191;
$cat_ids = $product->get_category_ids();
$varia = get_field('varia_atribut');
if ($varia) {
if (in_array($cat_id, $cat_ids, true)) {
echo '<br><td><span>Толщина:</span><tr> ' . $varia . '</td></tr></span>';
}
}
}