价格不会与相关产品列表中的WooCommerce的常规代码一起显示



我要做的是在侧边栏的相关产品列表中显示产品标题之外的价格…但由于某些原因,它不起作用。

是的,我已经搜索了StackOverflow存档和谷歌,找到了明显的答案:

<?php echo $product->get_price_html(); ?>

但是这个在我的代码结构中不起作用:

<h4>Related products</h4>
   <ul class="prods-list">
     <?php while ( $products->have_posts() ) : $products->the_post(); ?>
        <li>
          <a href="<?php the_permalink(); ?>" target="_blank">
           <?php do_action( 'woocommerce_before_shop_loop_item_title' ); ?>
           <span><?php the_title(); ?></span>
          /a>
          </li>
          <?php endwhile; wp_reset_postdata(); ?>
  </ul>

我在这里做错了什么?我尝试在标题span之后添加代码,但它没有返回任何东西。

看起来您试图在Post对象上调用Product类中的方法。如果没有看到前面的代码,我无法确定,但是看起来$products变量被设置为WP_Query()的一个实例。如果是这种情况,那么您需要做两件事:

  1. 使用当前Post ID获取Product对象的实例
  2. 在Product对象上调用get_price_html()方法

你可以写得更简洁,但我将逐条地解释每个东西的作用。你的代码应该看起来像这样:

<h4>Related products</h4>
  <ul class="prods-list">
    <?php while ( $products->have_posts() ) : $products->the_post(); ?>
      <li>
        <a href="<?php the_permalink(); ?>" target="_blank">
          <?php do_action( 'woocommerce_before_shop_loop_item_title' ); ?>
          <?php
            // Get the ID for the post object currently in context
            $this_post_id = get_the_ID();
            // Get an instance of the Product object for the product with this post ID
            $product = wc_get_product($this_post_id);
            // Get the price of this product - here is where you can 
            // finally use the function you were trying
            $price = $product->get_price_html();
          ?>
          <span><?php the_title(); ?></span>
          <?php
            // Now you can finally echo the price somewhere in your HTML:
            echo $price;
          ?>
        </a>
      </li>
    <?php endwhile; wp_reset_postdata(); ?>
  </ul>

相关内容

  • 没有找到相关文章

最新更新