問題描述
開發了一個功能,讓客戶在達到特定數量時將產品添加到購物車.
Made a function where the customer get a product added to the cart when they reach a specific amount.
客戶達到第 3 級并添加產品的示例.
// Bonus products
$product_1 = '4751';
$product_2 = '4752';
$product_3 = '4753';
// Get cart value in a clean format
$cart_total = WC()->cart->get_cart_subtotal();
$cart_total = html_entity_decode($cart_total, ENT_QUOTES, 'UTF-8');
$cart_total_format = strip_tags($cart_total);
$cart_value = preg_filter("/[^0-9]/", "", $cart_total_format);
$sum_raw = $cart_value;
// Set the sum level
$level3 = '1500';
// Check sum and apply product
if ($sum_raw >= $level3) {
// Cycle through each product in the cart and check for match
$found = 'false';
foreach (WC()->cart->cart_contents as $item) {
global $product;
$product_id = $item['variation_id'];
if ($product_id == $product_3) {
$found = 'true';
}
}
// If product found we do nothing
if ($found == 'true') {}
// else we will add it
else {
//We add the product
WC()->cart->add_to_cart($product_3);
如果客戶決定刪除項目,那么此聲明是正確的,我希望能夠再次刪除它.
If customer decides to remove item's so this statement is true i want to be able to remove it again.
if ($sum_raw < $level3) {
// Trying to remove item
foreach ($woocommerce->cart->get_cart() as $cart_item_key => $cart_item) {
if ($cart_item['variation_id'] == $product_3) {
//remove single product
WC()->cart->remove_cart_item($product_3);
}
}
}
我無法從購物車中移除產品.任何想法在這里做錯了什么?一直在四處尋找,但沒有找到任何適合我的解決方案.
Am do not manage to remove the product from cart. Any ideas what am doing wrong here? Have been searching around without finding any solution that works for me.
解決方案
在@Rohil_PHPBeginner & 的幫助下@WisdmLabs 我來到了這個為我完成工作的解決方案.
With help from @Rohil_PHPBeginner & @WisdmLabs I came to this solution that did the job for me.
global $woocommerce;
// Check if sum
if ($sum_raw < $level3) {
foreach ($woocommerce->cart->get_cart() as $cart_item_key => $cart_item) {
if ($cart_item['variation_id'] == $product_3) {
//remove single product
$woocommerce->cart->remove_cart_item($cart_item_key);
}
}
}
推薦答案
我認為您對 remove_cart_item
的使用不正確.如果您瀏覽文檔,您會發現它接受cart_item_key 作為參數(如評論中提到的 wisdmLabs).
I think you're using remove_cart_item
incorrectly. If you go through the documentation, you will find that it accepts cart_item_key as parameter (as wisdmLabs mentioned in comment).
你是這樣使用它的:
WC()->cart->remove_cart_item($product_3);
試試這個:
WC()->cart->remove_cart_item($cart_item_key);
更新該行后,我認為您將能夠刪除產品.
After updating that line, I think you will able to remove product.
這篇關于刪除帶有 $product_id 的項目 - Woocommerce的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!