Woocommerce - Показать товары на домашней странице WordPress - wp_query - PullRequest
0 голосов
/ 02 декабря 2019

Я сделал пользовательский wp_query, чтобы показывать свои товары для продажи на домашней странице woocommerce, но я не могу показать правильные товары для продажи на домашней странице. Я вижу только 3 продукта (один из них продается, еще 2 нет). Shordcode показывает правильные продажи товаров, но мой запрос сходит с ума. Я не могу использовать шорткод, потому что мне нужно создать карусель.

Код ниже:

$args = array(
'post_type'      => 'product',
'posts_per_page' => -1,
'meta_query'     => array(
'relation' => 'OR',
          array( // Simple products type
                            'key'           => '_sale_price',
                            'value'         => 0,
                            'compare'       => '>',
                            'type'          => 'numeric'
                        ),
                        array( // Variable products type
                            'key'           => '_min_variation_sale_price',
                            'value'         => 0,
                            'compare'       => '>',
                            'type'          => 'numeric'
                        )
                    )
                );

                $saleproducts = new WP_Query( $args );

                if ( $saleproducts->have_posts() ) : 
                while ( $saleproducts->have_posts() ) : $saleproducts->the_post();

                $post_thumbnail_id     = get_post_thumbnail_id();
                $product_thumbnail     = wp_get_attachment_image_src($post_thumbnail_id, $size = 'shop-feature');
                $product_thumbnail_alt = get_post_meta( $post_thumbnail_id, '_wp_attachment_image_alt', true );

----MY HTML CODE HERE----

endwhile; endif; 
wp_reset_query();
wp_reset_postdata();

1 Ответ

0 голосов
/ 02 декабря 2019

Я проверил ваш код, он не работает для вариационных продуктов, поскольку _min_variation_sale_price не существует в таблице postmeta. Поэтому у меня есть запрос на изменение, чтобы получить в продаже товары. Это выглядит следующим образом:

$query_args = array(
    'posts_per_page' => -1,
    'no_found_rows' => 1,
    'post_status' => 'publish',
    'post_type' => 'product',
    'meta_query' => WC()->query->get_meta_query(),
    'post__in' => array_merge(array(0), wc_get_product_ids_on_sale())
);
$products = new WP_Query($query_args);

if ($products->have_posts()) :
    while ($products->have_posts()) : $products->the_post();

        $post_thumbnail_id = get_post_thumbnail_id();
        $product_thumbnail = wp_get_attachment_image_src($post_thumbnail_id, $size = 'shop-feature');
        $product_thumbnail_alt = get_post_meta($post_thumbnail_id, '_wp_attachment_image_alt', true);

        echo get_the_title() . ' - ' . get_the_ID() . '<br/>';
//        ----MY HTML CODE HERE----
    endwhile;
endif;

С помощью этого кода вы можете получить все товары в продаже. Я сослался на это здесь .

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...