Этот вопрос закрыт для ответов, так как повторяет вопрос Как вывести только товары с акцией в WooCommerce?
@sasha761

Как вывести товары циклом на отдельном шаблоне страницы?

Добрый вечер. в общем-то хочу на отдельной странице вывести продукты которые со скидкой (обычным шордкодом не подойдет потому что пагинацию не смогу вывести) , и в общем-то наткнулся на такую "статью"

и скопировал вот такой код на страницу
class WC_sales {

 public static function sale_products( $atts ) {
    global $woocommerce_loop;
    $atts = shortcode_atts( array(
      'per_page' => '12',
      'columns'  => '4',
      'orderby'  => 'title',
      'order'    => 'asc'
    ), $atts );
    // Get products on sale
    $product_ids_on_sale = wc_get_product_ids_on_sale();
    $meta_query = WC()->query->get_meta_query();
    $args = array(
      'posts_per_page'  => $atts['per_page'],
      'orderby'       => $atts['orderby'],
      'order'       => $atts['order'],
      'no_found_rows'   => 1,
      'post_status'     => 'publish',
      'post_type'     => 'product',
      'meta_query'    => $meta_query,
      'post__in'      => array_merge( array( 0 ), $product_ids_on_sale )
    );
    ob_start();
    $products = new WP_Query( apply_filters( 'woocommerce_shortcode_products_query', $args, $atts ) );
    $columns = absint( $atts['columns'] );
    $woocommerce_loop['columns'] = $columns;

    if ( $products->have_posts() ) : ?>

      <?php woocommerce_product_loop_start(); ?>

        <?php while ( $products->have_posts() ) : $products->the_post(); ?>

          <?php wc_get_template_part( 'content', 'product' ); ?>


        <?php endwhile; // end of the loop. ?>

      <?php woocommerce_product_loop_end(); ?>

    <?php endif;
    wp_reset_postdata();
    return '<div class="woocommerce columns-' . $columns . '">' . ob_get_clean() . '</div>';
  }
}

Но почему-то ничего не выводит (цикл не отрабатывает вообще ) и var_dump($products) даже не получаю .
Подскажите пожалуйста в чем может быть проблема .
Спасибо!
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ответы на вопрос 1
@deadnice
Создайте отдельный файл шаблона в теме и в нём составьте корректный запрос https://wp-kama.ru/function/wp_query
Пример:
$saleProducts = wc_get_product_ids_on_sale();
$args = array(
  'post_type' => 'product',
	  'post__in' => array_merge(array(0), $saleProducts)
);
$query = new WP_Query($args);
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы