首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Woocommerce产品定制循环中显示价格

在Woocommerce产品定制循环中显示价格
EN

Stack Overflow用户
提问于 2018-06-27 03:33:06
回答 2查看 1.7K关注 0票数 0

我使用的是Woocommerce预订,只有一个基本的成本填充。没有其他规则。如何在这样的循环中显示产品价格?

代码语言:javascript
复制
<?php
$args = array( 'post_type' => 'product', 'posts_per_page' => -1 );
$loop = new WP_Query( $args );

<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
ID is: <?php the_ID(); ?>
Title is: <?php the_title(); ?>
Price: <?php echo esc_html( get_post_meta( get_the_ID(), '_regular_price', true ) ); ?>

<?php endwhile; wp_reset_query(); ?>

价格字段没有显示任何东西

更新

另一个我尝试过的代码:

代码语言:javascript
复制
<?php
global $woocommerce;
$product = new WC_Product_Booking($productID);
$base_price = $product->get_price();
$product_data = $product->get_data();
$product_pricing = get_post_meta( $product_id, '_wc_booking_pricing', true);
?>

<?php echo $product_pricing; ?> 
<?php echo $base_price;?>

两者都返回零的值。

又一次尝试

代码语言:javascript
复制
<?php
global $woocommerce;
$product = new WC_Product_Booking($productID);
$product = wc_get_product( $product_id );

$base_price = $product->get_price();
$product_data = $product->get_data();

$product_pricing = $product_data['pricing'];
foreach($product_pricing as $key => $princing ){
   $pricing_type           = $princing['type'];
   $pricing_base_cost      = $princing['base_cost'];
   $pricing_base_modifier  = $princing['base_modifier'];
   $pricing_cost           = $princing['cost']; 
   $pricing_modifier       = $princing['modifier'];
   $pricing_from           = $princing['from'];
   $pricing_to             = $princing['to'];
}

$pricing_data = get_post_meta( $product_id, '_wc_booking_pricing', false); ?>

<?php echo $pricing_data; ?>

什么都不起作用:(它们要么显示空白,要么显示零。)有人能帮我指出正确的方向吗?

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-27 08:22:51

尝试(来自文档):

代码语言:javascript
复制
$product = new WC_Product_Booking($productID);
//don't know if you need 'echo'
echo $product->get_price_html()

如果不是,我认为第二段的逻辑是可以的,但可能是productID != postID,所以另一个解决方案是:

  • 查找postID for productID
  • 调用get_post_meta( postID,‘_wc_订票_价格’,true);
  • 打印价格

编辑

我的回答太长了,不能发表在评论里。

您确定正确设置了wp中的产品吗?

为了执行第二个建议,您需要访问数据库。在wp中获取post(产品)的ID,在创建/修改它时,您应该在url中包含类似于{URL}/wp/id=123的内容。

一旦您有了ID,请在DB中的wp_post_meta表中查找包含该post_id的所有字段,并检查是否可以找到正确的价格。

一旦您找到它,您可以调用get_post_meta(correctID,correctKey)

票数 0
EN

Stack Overflow用户

发布于 2018-06-27 04:16:18

似乎您正在使用正确的元键,这可能与您使用esc_url()有关,而您应该只使用esc_html()。我会试试的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51054170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档