php - Remove item with $product_id - Woocommerce -
made function customer product added cart when reach specific amount.
example of when customer reaches level 3 , product added.
// bonus products $product_1 = '4751'; $product_2 = '4752'; $product_3 = '4753'; // cart value in 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 sum level $level3 = '1500'; // check sum , apply product if ($sum_raw >= $level3) { // cycle through each product in cart , check match $found = 'false'; foreach (wc()->cart->cart_contents $item) { global $product; $product_id = $item['variation_id']; if ($product_id == $product_3) { $found = 'true'; } } // if product found nothing if ($found == 'true') {} // else add else { //we add product wc()->cart->add_to_cart($product_3);
if customer decides remove item's statement true want able remove again.
if ($sum_raw < $level3) { // trying remove item foreach ($woocommerce->cart->get_cart() $cart_item_key => $cart_item) { if ($cart_item['variation_id'] == $product_3) { //remove single product wc()->cart->remove_cart_item($product_3); } } }
am not manage remove product cart. ideas doing wrong here? have been searching around without finding solution works me.
solution
with @rohil_phpbeginner & @wisdmlabs came solution did job me.
global $woocommerce; // check if sum if ($sum_raw < $level3) { foreach ($woocommerce->cart->get_cart() $cart_item_key => $cart_item) { if ($cart_item['variation_id'] == $product_3) { //remove single product $woocommerce->cart->remove_cart_item($cart_item_key); } } }
i think using remove_cart_item
wrongly. if go through documentation, find accepts cart_item_key parameter(as wisdmlabs mentioned in comment).
and using wc()->cart->remove_cart_item($product_3);
instead of wc()->cart->remove_cart_item($cart_item_key);
so replacing line, think able remove product.
Comments
Post a Comment