我试图在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正确执行此操作吗?另外,如果您知道如何实际获得添加到购物车中的产品的数量(即每个产品添加了多少件商品),那将不胜感激。
答案 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对象