#php #wordpress #woocommerce #product
#php #wordpress #woocommerce #продукт
Вопрос:
Версия TL; DR
Как мне изменить имя, которое автоматически генерируется для переменных продуктов?
Подробная версия
Все варианты продуктов получают имена на основе атрибутов переменных, из которых они генерируются.
Пример
Допустим, есть переменный продукт: Vase. У Vase есть атрибут: Условие со значениями:
- ‘Новый’
- ‘Обновленный’
- ‘Используется’.
Итак, если я сделаю это (получу и выведу все имена вариантов):
$vase = wc_get_product( $vase_product_id );
$variation_ids = $vase->get_children();
if( !empty( $variation_ids ) ):
foreach( $variation_ids as $v_id ):
$variation = wc_get_product( $v_id );
echo '<pre>';
print_r($variation->get_name());
echo '</pre>';
endforeach; // foreach( $variations as $item ):
endif; // if ( !empty( $variations ) )
Он выведет:
Vase - New
Vase - Refurbished
Vase - Used
Как мне изменить это, чтобы оно стало:
Vase - New condition
Vase - Refurbished condition
Vase - Used condition
… Итак, добавляем имя атрибута после значения изменения.
Ответ №1:
$vase = wc_get_product( $vase_product_id );
$parent_name = $vase->get_name();
$variation_ids = $vase->get_children();
if ( !empty( $variation_ids ) ):
foreach ( $variation_ids as $v_id ):
$variation = wc_get_product( $v_id );
echo '<pre>';
print_r( $parent_name . ' - ' . $variation->get_attribute_summary() );
echo '</pre>';
endforeach; // foreach( $variations as $item ):
endif;
Комментарии:
1. Знаете ли вы, как я могу сделать это поведение по умолчанию для данного атрибута? Например, когда я использую Pro-плагин Product Feed Pro, я вижу, что он получает обычное имя варианта (используемое в вазе).