Изменить название продукта для сгенерированных переменных продуктов в WooCommerce

#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, я вижу, что он получает обычное имя варианта (используемое в вазе).