我在这里遇到的问题是人们进入产品页面,设置他们想要该产品的数量并添加到购物车(而不是将他们带到购物车页面)。如果客户希望对该产品进行进一步更改,客户希望能够返回商店/产品页面(老实说,这很奇怪,因为他们可以在购物车页面上执行此操作,但无论如何)。但是,当人们在产品页面上更新数量时,不会更新数量,而是会增加该产品的现有数量。
如何在产品页面上多次提交数量时更新现有数量?有没有我可以利用的woocommerce循环?
答案 0 :(得分:1)
谢谢大家,我已经挖掘了插件并编写了以下解决方案:
add_action('woocommerce_add_to_cart_handler', 'update_product_in_cart', 11, 2);
function update_product_in_cart($p, $q) {
global $woocommerce;
$cartItem = $woocommerce->cart->cart_contents;
$currentProductId = $q->id;
$wCart = $woocommerce->cart->get_cart();
// If cart already exists, and product exists, than remove product, and add the new product to it.
if ($wCart)
{
$cart_item_keys = array_keys($wCart);
foreach($cart_item_keys as $key)
{
foreach($cartItem as $item)
{
$productItemId = $item['product_id'];
if ($productItemId == $currentProductId)
{
// If you want to empty the entire cart...
// $woocommerce->cart->empty_cart();
// If you want to remove just the product from the cart...
$woocommerce->cart->set_quantity($key, 0);
}
}
}
}
// This adds the product to the cart...
return $q;
}
这会添加到functions.php中,基本上,如果购物车中存在产品ID,则会删除产品,并在新产品信息中添加$q
的返回。
有魅力!