woocommerce:如何在自定义循环中显示折扣

问题描述 投票:0回答:2

我正在尝试将我自己的主题与

woocommerce
集成,并使用自定义循环来显示最近产品的轮播。所以我不知道如何分别显示折扣百分比和销售徽章

我正在运行

xampp
服务器

<?php $loop = new WP_Query( array( 'post_type' => 'product', 'posts_per_page' => 12 ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?> 

<div class="pdp-promo-name" itemprop="name">
    -40% 
</div>
php woocommerce wordpress-theming
2个回答
0
投票

将此添加到 functions.php

function display_discount_percentage() {
   global $product;
   if ( ! $product->is_on_sale() ) return;
   if ( $product->is_type( 'simple' ) ) {
      $max_percentage = ( ( $product->get_regular_price() - $product->get_sale_price() ) / $product->get_regular_price() ) * 100;
   } elseif ( $product->is_type( 'variable' ) ) {
      $max_percentage = 0;
      foreach ( $product->get_children() as $child_id ) {
         $variation = wc_get_product( $child_id );
         $price = $variation->get_regular_price();
         $sale = $variation->get_sale_price();
         if ( $price != 0 && ! empty( $sale ) ) $percentage = ( $price - $sale ) / $price * 100;
         if ( $percentage > $max_percentage ) {
            $max_percentage = $percentage;
         }
      }
   }
   if ( $max_percentage > 0 ) echo '<div class="pdp-promo-name" itemprop="name">-' . round($max_percentage) . '%</div>'; 
}

并在循环中调用 display_discount_percentage() 函数。


-2
投票
© www.soinside.com 2019 - 2024. All rights reserved.