Juan Pardo
A Coruña · 43.36° N--:-- CET

Añadir producto de regalo automáticamente en WooCommerce. Código gratis

Juan PardoActualizado el 2 min de lectura
añadir producto de regalo automáticamente en WooCommerce

Si tienes una tienda online WooCommerce y estás buscando una manera de conquistar a tus clientes, te voy a mostrar una manera que encontré para añadir otro producto gratis en WooCommerce automáticamente.

Seguro que en más de una ocasión viste el clásico compra esto y te regalamos x producto. Pues esto lo mismo. Un cliente de una marca de ropa quería ofrecer un pack de calcetines con la compra de cualquiera de sus otros productos y después de explorar un montón de plugins y opciones, no había ninguno que me convencía del todo.

Y para que añadir más plugins cuando un simple código puede hacer lo mismo.

Sin más rodeos, vamos a ver cómo añadir productos gratis automáticamente.

Pasos para añadir un producto de regalo automáticamente en WooCommerce

Paso 1. Crea el producto que quieres regalar y apunta el ID

Paso 2. Añade este fragmento de código

En tu functions.php o con un plugin de fragmentos de códigos (este es mi favorito) añade el siguiente fragmento:

// Añadir producto de regalo especificando el subtotal del carrito
add_action( 'woocommerce_before_calculate_totals', 'check_free_gifted_product' );
function check_free_gifted_product( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;

// AJUSTES
$free_product_id = 531; // CAMBIAR EL ID POR EL PRODUCTO QUE QUIERES REGALAR
$targeted_subtotal = 1; // CAMBIAR POR EL MINIMO DEL CARRITO REQUERIDO PARA DAR EL REGALO

$cart_subtotal = 0; // Initializing

// Loop through cart items (first loop)
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ){
// When free product is is cart
if ( $free_product_id == $cart_item['product_id'] ) {
$free_key = $cart_item_key;
$free_qty = $cart_item['quantity'];
$cart_item['data']->set_price(0); // Optionally set the price to zero
} else {
$cart_subtotal += $cart_item['line_total'] + $cart_item['line_tax'];
}
}

// Si el subtotal es correcto y el producto de regalo no estaba ya en el carrito, incluirlo
if ( ! isset($free_key) && $cart_subtotal >= $targeted_subtotal ) {
$cart->add_to_cart( $free_product_id );
}
// Si el subtotal mínimo para el regalo no es suficiente y el producto ya está en el carrito, eliminarlo
elseif ( isset($free_key) && $cart_subtotal < $targeted_subtotal ) { $cart->remove_cart_item( $free_key );
}
// Mantén la cantidad del producto de regalo en 1.
elseif ( isset($free_qty) && $free_qty > 1 ) {
$cart->set_quantity( $free_key, 1 );
}
}

// Mostrar el producto de regalo en el minicarrito con precio cero.
add_filter( 'woocommerce_cart_item_price', 'change_minicart_free_gifted_item_price', 10, 3 );
function change_minicart_free_gifted_item_price( $price_html, $cart_item, $cart_item_key ) {
$free_product_id = 1189; // CHANGE THIS TO YOUR PRODUCT ID

if( $cart_item['product_id'] == $free_product_id ) {
return wc_price( 0 );
}
return $price_html;
}

Paso 3. Sustituye los valores en los ajustes

añadir un producto de regalo automáticamente en WooCommerce código

Cuentas con 2 ajustes principales:

  • El ID del producto a sustituir por el que has creado de regalo en el primer paso
  • El mínimo del carrito para añadir el regalo automáticamente

Eso es todo! Espero que te sirva de utilidad.

¿Tienes un proyecto?

¿Te ayudo con tu web?

Si prefieres que lo haga yo, cuéntame tu proyecto. La primera reunión es gratuita.