Woocommerce получить описание родителя из вариационного продукта

#woocommerce

Вопрос:

Я пытаюсь получить описание родительского продукта из серии вариантов.

Я пробовал этот способ

 $args = array(  'numberposts' =gt; -1,  'post_type' =gt; 'product_variation',  'suppress_filters' =gt; false,  'orderby' =gt; 'title',  'order' =gt; 'DESC' ); $products = get_posts( $args );  foreach ( $products as $productId ) {  $product = wc_get_product( $productId );   $parent = $product-gt;get_parent_data();  ....  

где продукт — это моя вариация. Но в родительских данных у меня нет описания. Есть какие-либо предложения о том, как я могу получить описание?

Комментарии:

1. $products содержат вариации?

2. ДА. $args = array( 'numberposts' =gt; -1, 'post_type' =gt; 'product_variation', 'suppress_filters' =gt; false, 'orderby' =gt; 'title', 'order' =gt; 'DESC' ); $products = get_posts( $args );

3. Пожалуйста, добавьте соответствующий код.

Ответ №1:

Вы можете использовать get_parent_id для получения идентификатора родительского продукта. Попробуйте выполнить приведенный ниже код.

 $args = array(  'numberposts' =gt; -1,  'post_type' =gt; 'product_variation',  'suppress_filters' =gt; false,  'orderby' =gt; 'title',  'order' =gt; 'DESC'  );  $products = get_posts( $args );   $productsIds = array(); // store product id for avoid duplication.  foreach ( $products as $variation_id ) {    $variation = wc_get_product($variation_id);  $product = wc_get_product( $variation-gt;get_parent_id() );   if( !in_array( $product-gt;get_id(), $productsIds ) amp;amp; $product ){  $productsIds[] = $product-gt;get_id();  $product_details = $product-gt;get_data();  $product_full_description = $product_details['description'];  $product_short_description = $product_details['short_description'];  }  }  

Комментарии:

1. работал таким образом: if( !in_array( $product-gt;get_id(), $productsIds ) amp;amp; product )