获取购物车内特定产品的总项目数,并在循环中显示

时间:2016-04-24 00:13:11

标签: php wordpress loops woocommerce product

我想知道如何反映或显示用户在循环中的单个项目上添加的项目总数。这是为了表示用户在购物车中添加的特定商品的总数

我设法在文档的帮助下显示文本,但它似乎获取了购物车内所有商品的所有数量。

<div class="container">

<?php
    $args = array(
        'post_type' => 'product',
    );

    $crate_products = new WP_Query ( $args );
    if ( $crate_products->have_posts() ) : while ( $crate_products->have_posts() ) :
    $crate_products->the_post();

?>

    <div id="post-<?php the_ID() ?>" class="three columns product-post">
    <?php
        global $woocommerce;
        $items = $woocommerce->cart->get_cart();

        foreach($items as $item => $values) {
            $_product = $values['product_id']->post;
            echo "<b>" . '</b>  <br> Quantity: '.$values['quantity'].'<br>';
        }
    ?>

    <?php  wc_get_template_part('content', 'product'); ?>

    </div>

    <?php wp_reset_postdata(); ?>

    <?php endwhile; else: ?>

<?php endif; ?>

<?php wp_reset_query(); ?>

更新

这是我想要制作的概念。当用户在购物车内添加特定金额的特定商品时。然后,它将显示一个图标,其中包含该特定项目的总金额。我希望它显示在循环内。

这是一张图片。右上角的数字表示购物车内有3个土豆

enter image description here

2 个答案:

答案 0 :(得分:1)

什么是package com.x.catalog @RestController("CatalogTextureController") public class TextureController { ... package com.x.cms @RestController("CMSTextureController") public class TextureController { ... 以及下面的代码和平?

$crate_products

这部分代码就像您要显示与$args = array( 'post_type' => 'product' ); $crate_products = new WP_Query ( $args ); if ( $crate_products->have_posts() ) : while ( $crate_products->have_posts() ) : $crate_products->the_post(); 相关的所有项目。但这与购物车无关......

这是经典的购物车循环(最接近您的代码)。我可以显示购物车中的所有商品,包括任何类型的细节或规格,数量......:

$crate_products

----(E d i t)----

如果您可以为html结构提供购物车中某个产品的常用详细信息。
在那之后为您的特殊产品,您可以放置​​一些条件来显示不同的东西。即使对于非特殊项目,您也可以启用条件,根据空元素禁用某些显示详细信息。

答案 1 :(得分:0)

这是一个简单的答案!

如果你想分手,我会分成变量。

将其放入产品循环模板(content-product.php)

  global $woocommerce;
  global $product;

  $curr_prod_id = $product->id;

  $items = $woocommerce->cart->get_cart();

  foreach($items as $item => $values) {
      if ($values['product_id'] == $curr_prod_id) {
          echo '<div class="cart-quantity">';
          echo 'Quantity: '.$values['quantity'];
          echo '</div>';
      };
  }