function forzar_compra_welcome_pack() {
    if (is_admin() || wp_doing_ajax()) {
        return; // No aplicar en el backend o en peticiones AJAX
    }

    if (is_user_logged_in()) {
        $user_id = get_current_user_id();
        $orders = wc_get_orders([
            'customer_id' => $user_id,
            'status' => ['completed', 'processing'], // Pedidos válidos
            'limit' => 1, // Solo verificamos si ha comprado algo
        ]);

        $welcome_pack_id = 123; // ID del Welcome Pack (cámbialo por el real)
        $cart = WC()->cart;

        // Si no ha hecho compras, forzar la compra del Welcome Pack
        if (empty($orders)) {
            $cart->empty_cart(); // Vaciar siempre el carrito
            $cart->add_to_cart($welcome_pack_id, 1); // Solo 1 unidad
            wc_add_notice('Debes comprar el Welcome Pack antes de añadir otros productos.', 'error');
            wp_safe_redirect(wc_get_cart_url()); // Redirigir al carrito
            exit;
        }
    }
}
add_action('template_redirect', 'forzar_compra_welcome_pack');

function bloquear_agregar_otros_productos($passed, $product_id) {
    if (is_user_logged_in()) {
        $user_id = get_current_user_id();
        $orders = wc_get_orders([
            'customer_id' => $user_id,
            'status' => ['completed', 'processing'],
            'limit' => 1,
        ]);

        $welcome_pack_id = 123; // ID del Welcome Pack

        // Si el usuario no ha comprado nada y está intentando añadir otro producto, bloquearlo
        if (empty($orders) && $product_id != $welcome_pack_id) {
            wc_add_notice('Debes comprar el Welcome Pack antes de añadir otros productos.', 'error');
            return false;
        }

        // Si ya tiene el Welcome Pack en el carrito, impedir que agregue más unidades
        $cart = WC()->cart;
        foreach ($cart->get_cart() as $cart_item) {
            if ($cart_item['product_id'] == $welcome_pack_id && $product_id == $welcome_pack_id) {
                wc_add_notice('Solo puedes comprar un Welcome Pack.', 'error');
                return false;
            }
        }
    }
    return $passed;
}
add_filter('woocommerce_add_to_cart_validation', 'bloquear_agregar_otros_productos', 10, 2);
