如何在WP_Query中获取WooCommerce产品变体名称和变体描述?

时间:2020-03-13 作者:Ilkka Gustafsson

我把每个产品变体都作为自己的按钮,下面是我拼凑起来的代码。Echo$product->name输出类似“product-variation”的内容,但我需要“Variation 价格”。价格将在仪表板的“描述”字段中输入。我已经完成了几个相关的问题和答案,但我还没有足够的技能将解决方案应用到我的代码中,因此非常感谢您的帮助!

    <?php
    $params = array(\'posts_per_page\' => -1, \'post_type\' => \'product_variation\', \'order\' => \'ASC\');
    $wc_query = new WP_Query($params);
    ?>
    <?php if ($wc_query->have_posts()) : ?>
    <?php while ($wc_query->have_posts()) : $wc_query->the_post(); ?>
      <form class="cart" action="<?php the_permalink() ?>" method="post" enctype="multipart/form-data">
          <input type="hidden" name="add-to-cart" value="<?php echo esc_attr($product->id); ?>">
          <button <?php post_class(\'button\') ?> type="submit"><strong><?php echo $product->name ?> </strong></button>
      </form>
    <?php endwhile; ?>
    <?php wp_reset_postdata(); ?>
    <?php else:  ?>
    <div>
          <?php _e( \'No Products\' ); ?>
    </div>
    <?php endif; ?>

1 个回复
最合适的回答,由SO网友:Ilkka Gustafsson 整理而成

好的,发布后不久,我就想出了一个可行的解决方案。使用此代码,我直接从变体价格字段中获取价格,而不是像我在问题中提到的那样从描述字段中获取价格。

<?php
    $params = array(\'posts_per_page\' => -1, \'post_type\' => \'product_variation\', \'order\' => \'ASC\');
    $wc_query = new WP_Query($params);
    global $product;
    ?>
    <?php if ($wc_query->have_posts()) : ?>
    <?php while ($wc_query->have_posts()) : $wc_query->the_post(); ?>
      <form class="cart" action="<?php the_permalink() ?>" method="post" enctype="multipart/form-data">
          <input type="hidden" name="add-to-cart" value="<?php echo esc_attr($product->id); ?>">
          <button <?php post_class(\'button\') ?> type="submit"><strong><?php echo implode("", $product->get_variation_attributes()); ?> </strong><span style="display: inline-block"><?php echo $product->get_price(); ?></span></button>
      </form>
    <?php endwhile; ?>
    <?php wp_reset_postdata(); ?>
    <?php else:  ?>
    <div>
          <?php _e( \'No Products\' ); ?>
    </div>
<?php endif; ?>

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post