如何在WooCommerce上获取产品的原价?

时间:2016-03-22 作者:user3538235

我创建了代码来循环浏览产品列表并显示价格

  $args = array( \'post_type\' => \'product\', \'posts_per_page\' => 100, \'product_cat\' => \'hot-deals\');
          $loop = new WP_Query( $args );
          while ( $loop->have_posts() ) : $loop->the_post(); 

global $product; 


$xml .= \'<Original_price>\' . $product->get_display_price( $product->get_regular_price() ) . \'</Original_price>\';
$xml .= \'<Discount_price>\' . $product->get_display_price() . \'</Discount_price>\';

echo $product->get_price_html();

endwhile;
wp_reset_query();
get_price_html() 完美工作,价格如下:

From: $ 621 $ 559
但是,我想单独获得价格

我可以用

$product->get_display_price()
问题是,我拿不到原价,

我试过了$product->get_regular_price() , 不返回任何内容

我试过了$product->get_display_price( $product->get_regular_price() ), 返回销售价格

那么如何获得原价呢?非常感谢。

2 个回复
SO网友:Nicolai Grossherr

我很确定问题是WP_Query 返回与Woocommerces产品对象不同的post对象。当您试图通过获取相应的全局值来获取产品数据时,这是行不通的,尤其是因为您正在执行的查询对该全局值没有任何作用。现在我可能要做的是,首先,使用fields 参数设置为ids. 其次,当循环返回的ID数组时,我建议您使用wc_get_product(), 这将为您提供所需的所有信息。

注:我回答这个问题是为了说明WordPress和Woocommerces对象之间的回报差异。我想说清楚product 是一个CPT,它不一定能最佳地用于WP的标准查询。有一个强有力的论据认为你的问题离题了,因为它是关于第三方插件的。请看一下我们的help center 了解更多有关我们网站指南的信息。

SO网友:Oussama Bouthouri

要获得循环内的常规价格,您可以使用:

get_post_meta( get_the_ID(), \'_regular_price\', true);
对于销售价格,您可以使用:

get_post_meta( get_the_ID(), \'_sale_price\', true);