WooCommerce: показать все варианты разных продуктов, упорядоченных по атрибуту

Я хочу показать все варианты из нескольких продуктов и отсортировать их по атрибуту (номеру).

Я не мог найти решение для этого. Я мог бы показать все продукты и отобразить варианты для каждого продукта. Но я не мог упорядочить отображаемые товары по атрибуту.

Есть ли способ показать все варианты?


person Cray    schedule 13.08.2017    source источник


Ответы (1)


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

$variations=array();
foreach($products as $product){
$product_s = wc_get_product( $product->ID );
    if ($product_s->product_type == 'variable') {
        $args = array(
            'post_parent' => $plan->ID,
            'post_type'   => 'product_variation',
            'numberposts' => -1,
        );
        $variants = $product_s->get_available_variations();
        foreach($variants as $variant){
            array_push($variations,$variant);
        }

    }
}
$variations=array_unique($variations);
echo '<pre>';
print_r($variations);
echo '</pre>';

Источник метода Woo-commerce: get_available_variations()

Благодарю вас!

person TTareq    schedule 14.08.2017
comment
Редактировать: ах, я вижу. Он показывает только варианты одного продукта, верно? Мне нужен список всех вариантов из нескольких продуктов - person Cray; 14.08.2017
comment
Извиняюсь! Я думаю, что вы пропустили некоторые вещи! сначала получите весь продукт, затем запустите этот код, где $products ссылается на все продукты. - person TTareq; 14.08.2017
comment
используйте $args = array( 'post_type' =› 'product', 'post_status' =› 'опубликовать', 'posts_per_page' =› -1); $продукты = get_posts($args); - person TTareq; 14.08.2017
comment
попробуйте только аргумент $args = array( 'post_type' =› 'product'); - person TTareq; 14.08.2017
comment
если я это сделаю, массив снова станет пустым - person Cray; 14.08.2017