En este caso le pido a chatgpt que me cree un código para wordpress que permita añadir un producto automáticamente al carrito cuando alguien compre un producto en concreto.
Es algo parecido a lo que hice en un video anterior, pero en este caso podemos elegir los productos concretos que activen esta funcionalidad.
// Agregar un producto de regalo al carrito cuando se añaden productos específicos
function agregar_producto_de_regalo_al_carrito() {
// ID de los productos que deben activar el producto de regalo
$productos_activadores = array(3682, 3681); // Reemplaza estos IDs con los IDs de tus productos
// ID del producto de regalo
$producto_de_regalo_id = 4590; // Reemplaza este ID con el ID de tu producto de regalo
// Verificar si alguno de los productos activadores está en el carrito
$encontrado = false;
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
if (in_array($cart_item['product_id'], $productos_activadores)) {
$encontrado = true;
break;
}
}
// Si se encontró un producto activador en el carrito, agregar el producto de regalo
if ($encontrado) {
WC()->cart->add_to_cart($producto_de_regalo_id);
}
}
add_action('woocommerce_before_cart', 'agregar_producto_de_regalo_al_carrito');
// Verificar y eliminar un producto si ciertos productos específicos no están en el carrito
function eliminar_producto_si_no_hay_activadores($cart) {
// IDs de los productos que deben estar en el carrito para mantener el producto
$productos_requeridos = array(3682, 3681); // IDs de los productos requeridos
$producto_a_eliminar = 4590; // ID del producto a eliminar si no hay activadores
$activadores_en_carrito = false;
// Verificar si alguno de los productos activadores está en el carrito
foreach ($cart->get_cart() as $cart_item_key => $cart_item) {
$product_id = $cart_item['product_id'];
// Verificar si el producto en el carrito es variable y si su variante es un activador
if (in_array($product_id, $productos_requeridos)) {
$activadores_en_carrito = true;
break;
}
}
// Si no hay activadores en el carrito, eliminar el producto específico
if (!$activadores_en_carrito) {
foreach ($cart->get_cart() as $cart_item_key => $cart_item) {
if ($cart_item['product_id'] == $producto_a_eliminar) {
$cart->remove_cart_item($cart_item_key);
break;
}
}
}
}
add_action('woocommerce_before_calculate_totals', 'eliminar_producto_si_no_hay_activadores');
Te invito a ver este otro post para que aprendas cómo y donde insertar este código de ChatGpt en WordPress.