Un omaggio abbinato all’ordine di un prodotto, potrebbe rappresentare una strategia di marketing per aumentare le vendite dello stesso, stimolando il potenziale acquirente ad ottenere il prodotto in regalo. Questa tecnica potrebbe risultare utile nel caso di prodotti invenduti, datati od appartenenti a vecchie collezioni.

Possiamo risolvere il problema senza l’utilizzo di un plugin, inserendo all’interno del file functions.php, del tema utilizzato il codice seguente:
add_action( 'template_redirect', 'eb_add_gift_in_cart' );
function eb_add_gift_in_cart() {
if (is_admin()) return;
if (WC()->cart->is_empty()) return;
// ID del prodotto o dei prodotti con lo stesso regalo abbinato.
$product_bought_ids = array(ID1, ID2, ID3, ID4);
// ID del prodotto da in omaggio.
$product_gifted_id = ID;
$product_bought_in_cart = false;
$product_gifted_in_cart = false;
foreach( WC()->cart->get_cart() as $key => $val ) {
$_product = $val['data'];
foreach( $product_bought_ids as $k => $v ) {
if($v == $_product->id ) {
$product_bought_in_cart = true;
}
}
if( $product_gifted_id == $_product->id ) {
$product_gifted_in_cart = true;
}
}
if ( !$product_bought_in_cart ) {
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 );
}
}
}
} else {
if ( !$product_gifted_in_cart ) {
WC()->cart->add_to_cart( $product_gifted_id );
}
}
}
Il prodotto in omaggio va impostato come “nascosto” e con prezzo pari a zero.