Woocommerce: Получение названия вариации товара

16 июл. 2019 г., 12:59:48
Просмотры: 37.7K
Голосов: 0

Я хочу получить название вариации товара в Woocommerce. Например, если у меня есть товар, доступный в разных размерах: маленький, средний и большой. Я хотел бы вывести, например, "большой". У меня почти получилось. Проблема в том, что я также получаю название товара одновременно, например: "Название товара - Большой" Вот мой код:

$product_variation = wc_get_product($variation['variation_id']); $product_variation->get_name()

Надеюсь, кто-то сможет помочь, спасибо. :-)

0
Все ответы на вопрос 5
1

Я протестировал приведенный ниже код - он корректно работает для названия варианта

$variationId = 39;
$variation = new WC_Product_Variation($variationId);
$variationName = implode(" / ", $variation->get_variation_attributes());
echo $variationName;
17 июл. 2019 г. 17:54:04
Комментарии

Большое спасибо! Это работает :-)

Oscar S. Oscar S.
17 июл. 2019 г. 19:14:48
0

Используйте метод get_varation(). Если атрибут является глобальным, метод правильно получит название из термина таксономии для атрибута, а если нет — вернёт значение, сохранённое вместе с товаром.

$product_variation = wc_get_product( $variation['variation_id'] ); 
echo $product_variation->get_attribute( 'size' );
16 июл. 2019 г. 14:01:18
0

Я считаю, что это должно работать нормально:

$string = WC_Product_Variation::get_formatted_name();

ссылка: https://woocommerce.wp-a2z.org/oik_api/wc_product_variationget_formatted_name/

17 окт. 2020 г. 16:59:43
0
-1

используйте это здесь, чтобы получить название варианта

$productId = 1; // ID товара здесь
$handle = new WC_Product_Variable($productId);
$variationData = $handle->get_children();
foreach ($variationData as $value) {
$variation_id = $value;
$single_variation = new WC_Product_Variation($value);
$var_slug = $single_variation->slug;
echo "<br/>".$name = implode(" / ", $single_variation->get_variation_attributes());//здесь вы получаете название товара
}
16 июл. 2019 г. 16:52:30
2
-2

Попробуйте приведенный ниже код. Он выведет название вариации атрибута размера по ID вариации.

$variation = wc_get_product($variation['variation_id']);
$variation_attributes = $variation->get_variation_attributes();
$variation_name = ucfirst($variation_attributes['attribute_pa_size']);
echo $variation_name;

Сообщите, если это сработает для вас.

16 июл. 2019 г. 13:44:33
Комментарии

Это будет работать только если атрибут глобальный, и вернет только slug. ucfirst() это костыль, чтобы slug выглядел как название атрибута, и не будет работать корректно если значение состоит из нескольких слов или если метка не совпадает со slug.

Jacob Peattie Jacob Peattie
16 июл. 2019 г. 14:03:26

Спасибо @jacob за разъяснение.

Chetan Vaghela Chetan Vaghela
16 июл. 2019 г. 14:21:25