Получить цены на товары, которые будут отображаться в WooCommerce 3 - PullRequest
0 голосов
/ 02 июня 2018

Я хочу отобразить 8 товаров категории X на моей домашней странице

Я использую следующий код для получения продуктов

    <div class="row">
        <?php  
            $args = array(
                'post_type'      => 'product',
                'posts_per_page' => 8,
                'product_cat'    => 'cw'
            );
            $loop = new WP_Query( $args );
            while ( $loop->have_posts() ) : $loop->the_post();
                global $product;
        ?>

        <div class="col-md-3">
            <div class="product">
                <?php echo woocommerce_get_product_thumbnail(); ?>
                <p class="name"><?php echo get_the_title(); ?></p>
                <p class="regular-price"></p>
                <p class="sale-price"></p>
                <a href="<?php echo get_permalink(); ?>" class="more">more info</a>
                <form class="cart" action="<?php echo get_permalink(); ?>" method="post" enctype='multipart/form-data' style="display:inline;">
                    <button type="submit" name="add-to-cart" value="45" class="order">buy</button>
                </form>
            </div>
        </div>

, с этим я могу получать продукты, но я не 'не знаю, какой метод, чтобы получить обычную и продажную цену

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Никогда не используйте напрямую get_sale_price(); или get_regular_price(); WC_Product методы для отображения цен на продукцию .

Почему? Потому что вы получите неправильные цены в этих 2 случаях:

  • Если вы ввели свои цены с налогами , и вы установили отображение без налогов
  • Если вы ввели свои цены без налогов , и вы установили отображение с налогами .

То есть для отображения цен на продукты правильный способ - использовать wc_get_price_to_display() следующим образом:

// Active price: 
wc_get_price_to_display( $product, array( 'price' => $product->get_price() ) );

//Regular price: 
wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) );

//Sale price: 
wc_get_price_to_display( $product, array( 'price' => $product->get_sale_price() ) );

Теперь, если вы хотите правильных форматированных цен с валютой вы также будете использовать wc_price() функцию форматирования следующим образом:

// Active formatted price: 
$product->get_price_html();

// Regular formatted  price: 
wc_price( wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) ) );

// Sale formatted  price: 
wc_price( wc_get_price_to_display( $product, array( 'price' => $product->get_sale_price() ) ) );
0 голосов
/ 02 июня 2018

Вы можете использовать, get_sale_price для цены продажи и get_regular_price для обычной цены

$product->get_sale_price();

$product->get_regular_price();
...