首页 > 解决方案 > 循环遍历 Woocommerce 购物车项目以获取跟踪代码

问题描述

我正在尝试遍历 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 以正确的方式做到这一点?此外,如果您知道如何实际获取添加到购物车的产品数量(即每个产品添加了多少项目),那将非常感激。

标签: phpwordpresswoocommerceproductcart

解决方案


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

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()为一会儿。WC_Product自 Woocommerce 3.0 以来,对象中不再包含 post 对象


推荐阅读