-
-
Save woogists/0928d4b3df4ba423ddb74317a7979527 to your computer and use it in GitHub Desktop.
/** | |
* Add another product depending on the cart total | |
*/ | |
add_action( 'template_redirect', 'add_product_to_cart' ); | |
function add_product_to_cart() { | |
if ( ! is_admin() ) { | |
global $woocommerce; | |
$product_id = 2831; //replace with your product id | |
$found = false; | |
$cart_total = 30; //replace with your cart total needed to add above item | |
if( $woocommerce->cart->total >= $cart_total ) { | |
//check if product already in cart | |
if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) { | |
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) { | |
$_product = $values['data']; | |
if ( $_product->get_id() == $product_id ) | |
$found = true; | |
} | |
// if product not found, add it | |
if ( ! $found ) | |
$woocommerce->cart->add_to_cart( $product_id ); | |
} else { | |
// if no products in cart, add it | |
$woocommerce->cart->add_to_cart( $product_id ); | |
} | |
} | |
} | |
} |
This code is working except for one small hitch. The item adds once the cart total is met and deletes if the cart total is changed, but there is no way to manually remove the item. When I try to delete the free item from the cart, the page just refreshes and the item is still there. Any ideas?
Seeing the same. Item is removed, but immediately added again because it wasn't found. When you remove other items from the cart until $cart_total is reached, you can delete it. Curious about a solution too.
It doesn't delete product from cart if total goes below minimum.
Based on my testing it doesn't delete product from cart if total goes below minimum but i think they didn't include everything. Its sample code to get you started and not a finished product for immediate usage.
And you have an idea how to modify the code to add the product at a specific price. I want it to be free for 0.01.
hello,
This code is working except for one small hitch. The item adds once the cart total is met and deletes if the cart total is changed, but there is no way to manually remove the item. When I try to delete the free item from the cart, the page just refreshes and the item is still there. Any ideas?