Skip to main content

Come aggiungere un prodotto in regalo nel carrello di WooCommerce al raggiungimento di un importo. (Senza plugin!)

Un metodo rapido, semplice e gratuito per aggiungere prodotti in regalo nel tuo carrello se viene raggiunta una determinata cifra.

Se hai la necessità che al raggiungimento di un importo prestabilito, un prodotto di Woocommerce venga in automatico aggiunto al carrello, questo articolo fa al caso tuo.

Se desideri che il prodotto da aggiungere sia in regalo, dovrai impostare il prezzo uguale a 0, in altenativa stabilisci un prezzo di vendita.

Il mio consiglio è quello di impostare il prodotto che verrà aggiunto in automatico al carrello, su “nascosto”. Così facendo non sarà visibile nel tuo shop online e lo potrai regalare solo quando verrà raggiunto l’importo prestabilito.

Con questo snippet di codice, potrai stabilire se l’importo totale da raggiungere dovrà comprendere le spese di spedizione, o se considerare solo il totale dei prodotti aggiunti nel carrello.

Infine, grazie a questo codice, se il carrello viene aggiornato rimuovendo ad esempio dei prodotti, viene effettuato sempre un controllo sul minimo importo da raggiungere, e se non rispettate le condizioni il prodotto aggiunto in automatico verrà in automrtico rimosso.

Codice PHP: Aggiungi “Prodotto in regalo” al Carrello se viene raggiunta una cifra prestabilita

add_action( 'template_redirect', 'interno15_add_gift_in_cart_limit_price' );
function interno15_add_gift_in_cart_limit_price() {
	
	if (!function_exists( 'WC' ) || WC()->cart->is_empty()) return;

	// Qui dovrai indicare l'ID del prodotto da aggiungere nel carrello 
	// (prodotto in omaggio) 
	$product_gifted_id = 27;
	
	// Qui dovrai indicare l'importo minimo da raggiungere per ricevere
	// l'omaggio. 
	// l'importo sarà >= $price_limit
	$price_limit = 21.00;
	
	// Qui imposti il flag di controllo per stabilire se considerare il 
	// totale con le spedizioni o senza
	// $total_with_delivery = true; -> se il totale deve comprendere le spedizioni
	// $total_with_delivery = false; -> se il totale NON deve comprendere le spedizioni
	$total_with_delivery = false;
	
	if ($total_with_delivery == true){
		$total_cart = (float)WC()->cart->total;
	} else {
		$total_cart = (float)WC()->cart->cart_contents_total;
	}
		
	$product_gifted_in_cart = false;
	
	foreach( WC()->cart->get_cart() as $key => $val ) {
		$_product = $val['data'];

		if( $product_gifted_id == $_product->id ) {
			$product_gifted_in_cart = true;
		}
	}
	
	// se non nel carrello rimuove il regalo, altrimenti lo aggiunge
	if ( $total_cart >= $price_limit ) { 
		if ( !$product_gifted_in_cart ) {
			WC()->cart->add_to_cart( $product_gifted_id );
		}
	} else {
		if ( $product_gifted_in_cart ) { 
			foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { 
				if ( $cart_item['product_id'] == $product_gifted_id ) { 
					WC()->cart->remove_cart_item( $cart_item_key );
				}
			}
		}
	}
}
Non è necessaria una conoscenza avanzata del php, ti basta copiare il codice sopra riportato e modificare le seguenti variabili:
// Qui dovrai indicare l'ID del prodotto da aggiungere nel carrello 
// (prodotto in omaggio) 
$product_gifted_id = 27;

// Qui dovrai indicare l'importo minimo da raggiungere per ricevere
// l'omaggio. 
// l'importo sarà >= $price_limit
$price_limit = 21.00;

// Qui imposti il flag di controllo per stabilire se considerare il 
// totale con le spedizioni o senza
// $total_with_delivery = true; -> se il totale deve comprendere le spedizioni
// $total_with_delivery = false; -> se il totale NON deve comprendere le spedizioni
$total_with_delivery = false;