遍历Woocommerce购物车项目以获取跟踪代码

时间:2018-12-20 12:06:15

标签: php wordpress woocommerce product cart

我试图在WooCommerce中的购物车页面上遍历所有产品,以便在JavaScript跟踪代码中设置一些对象,这些对象应在该对象中打印出ID和添加到购物车中的产品数量。

我已经使用了StackOverflow的一些示例来介绍产品,还可以遍历它们并创建JavaScript对象,但是出现了错误:

  

帖子被错误地调用。不应访问产品属性   直接

这是我在functions.php中使用的代码:

<?php }
    if (is_cart()) { ?>
        <?php 
   global $woocommerce;
   $items = $woocommerce->cart->get_cart();
   $product_names=array(); ?>
    <script>
        var options = [
        <?php foreach ($items as $item => $values) { 
            $_product = $values['data']->post;?> 
            {productid: "<?php echo $_product->ID; ?>"},
        <?php
        }
        ?>
        ]
    </script>
   <?php      
    }
}

我认为不推荐使用这些产品。如今有人知道如何使用WooCommerce正确执行此操作吗?另外,如果您知道如何实际获得添加到购物车中的产品的数量(即每个产品添加了多少件商品),那将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的代码中有一些错误……请尝试以下操作:

if (is_cart()) { 
    $product_names=array(); 
?>
<script>
    var options = [
    <?php foreach ( WC()->cart->get_cart() as $cart_item ) : ?> 
        {productid: "<?php echo $cart_item['data']->get_id(); ?>"},
    <?php endforeach; ?>
    ]
</script>
<?php      
}

它应该更好地工作而不会出现错误。

  

注意::一段时间以来,global $woocommerce WC() 取代。自Woocommerce 3.0起,WC_Product对象中不再包含post对象