add_action('forminator_custom_form_submit_before_set_fields', 'generar_imagen_con_ia', 10, 3); function generar_imagen_con_ia($entry, $form_id, $field_data_array) { // Asegúrate de que este es el ID de tu formulario if ($form_id != 18059) return; $name-1 = ''; $select-1 = ''; $select-2 = ''; $email-1 = ''; $upload-1 = ''; foreach ($field_data_array as $field) { if ($field['name'] === 'email') $email = $field['value']; if ($field['name'] === 'file-upload') $image_url = $field['value']; } if (!$email || !$image_url) return; // Llama a la API de Replicate $api_token = 'r8_NeUwhhRT4JYbYF6wFEzhv2kA4ezwSe324mdV0'; $model = 'cjwbw/photo-to-cartoon'; $response = wp_remote_post('https://api.replicate.com/v1/predictions', [ 'headers' => [ 'Authorization' => 'Token ' . $api_token, 'Content-Type' => 'application/json', ], 'body' => json_encode([ 'version' => '3k6cxgk61xrmc0cpnd9tfwjmtr', // se explica abajo 'input' => [ 'image' => $image_url ] ]) ]); $body = json_decode(wp_remote_retrieve_body($response), true); $prediction_url = $body['urls']['get']; // Esperar a que se genere la imagen (máximo 30s) $output_image = null; for ($i = 0; $i < 15; $i++) { sleep(2); $check = wp_remote_get($prediction_url, [ 'headers' => ['Authorization' => 'Token ' . $api_token] ]); $check_data = json_decode(wp_remote_retrieve_body($check), true); if ($check_data['status'] == 'succeeded') { $output_image = $check_data['output']; break; } } if ($output_image) { // Enviar correo con imagen $subject = "Tu imagen personalizada de la feria de motos 🏍️"; $message = "Gracias por participar. Aquí tienes tu imagen:

"; $message .= ""; wp_mail($email, $subject, $message, ['Content-Type: text/html; charset=UTF-8']); } }