循环遍历 Woocommerce 购物车项目以获取跟踪代码
Loop through Woocommerce cart items for a tracking code
我试图遍历 WooCommerce 购物车页面上的每个产品,以便在 JavaScript 跟踪代码中设置一些对象,这些对象应该打印出 ID 和添加到购物车的产品数量在这个对象中。
我使用了 Whosebug 中的一些示例来访问产品并循环遍历它们并创建 JavaScript 对象,但我收到一条错误消息:
post was called incorrectly. Product properties should not be accessed
directly
这是我在 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 以正确的方式做到这一点?另外,如果您知道如何实际获取添加到购物车的产品数量(即每个产品添加了多少项目),那将不胜感激。
您的代码中存在一些错误……请尝试以下操作:
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
}
它应该更好地工作而没有错误。
Note: global $woocommerce
is replaced by WC()
since a while. There is no anymore post object included in the WC_Product
Object since Woocommerce 3.0
我试图遍历 WooCommerce 购物车页面上的每个产品,以便在 JavaScript 跟踪代码中设置一些对象,这些对象应该打印出 ID 和添加到购物车的产品数量在这个对象中。
我使用了 Whosebug 中的一些示例来访问产品并循环遍历它们并创建 JavaScript 对象,但我收到一条错误消息:
post was called incorrectly. Product properties should not be accessed directly
这是我在 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 以正确的方式做到这一点?另外,如果您知道如何实际获取添加到购物车的产品数量(即每个产品添加了多少项目),那将不胜感激。
您的代码中存在一些错误……请尝试以下操作:
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
}
它应该更好地工作而没有错误。
Note:
global $woocommerce
is replaced byWC()
since a while. There is no anymore post object included in theWC_Product
Object since Woocommerce 3.0