我使用的是Woocommerce预订,只有一个基本的成本填充。没有其他规则。如何在这样的循环中显示产品价格?
<?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(); ?>价格字段没有显示任何东西
更新
另一个我尝试过的代码:
<?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;?>两者都返回零的值。
又一次尝试
<?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; ?>什么都不起作用:(它们要么显示空白,要么显示零。)有人能帮我指出正确的方向吗?
非常感谢
发布于 2018-06-27 08:22:51
尝试(来自文档):
$product = new WC_Product_Booking($productID);
//don't know if you need 'echo'
echo $product->get_price_html()如果不是,我认为第二段的逻辑是可以的,但可能是productID != postID,所以另一个解决方案是:
编辑
我的回答太长了,不能发表在评论里。
您确定正确设置了wp中的产品吗?
为了执行第二个建议,您需要访问数据库。在wp中获取post(产品)的ID,在创建/修改它时,您应该在url中包含类似于{URL}/wp/id=123的内容。
一旦您有了ID,请在DB中的wp_post_meta表中查找包含该post_id的所有字段,并检查是否可以找到正确的价格。
一旦您找到它,您可以调用get_post_meta(correctID,correctKey)
发布于 2018-06-27 04:16:18
似乎您正在使用正确的元键,这可能与您使用esc_url()有关,而您应该只使用esc_html()。我会试试的。
https://stackoverflow.com/questions/51054170
复制相似问题