【问题标题】:Loop through Woocommerce cart items for a tracking code循环遍历 Woocommerce 购物车项目以获取跟踪代码
【发布时间】:2018-12-20 12:06:14
【问题描述】:

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

【问题讨论】:

    标签: php wordpress woocommerce product cart


    【解决方案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 $woocommerceWC() 取代了一段时间。自 Woocommerce 3.0 以来,WC_Product 对象中不再包含 post 对象

    【讨论】:

      猜你喜欢
      • 2020-02-28
      • 2017-04-27
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 2014-05-05
      相关资源
      最近更新 更多