#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 )