https://flechaa.com/misioncrear/
admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('ai_robo_nonce') )); wp_enqueue_style('ai-robo-css', plugin_dir_url(__FILE__) . 'ai-robo.css'); } add_action('wp_enqueue_scripts', 'ai_robo_enqueue_scripts'); function ai_robo_shortcode() { ob_start(); ?>

Gerador IA — Posts e Stories

= 5) { wp_send_json_error('Limite de geração atingido. Tente novamente em 1 minuto.'); } set_transient($key, $count + 1, 60); // Sanitizar entrada $biz = sanitize_text_field($_POST['biz'] ?? 'comercio'); $objective = sanitize_text_field($_POST['objective'] ?? ''); $text = sanitize_text_field($_POST['text'] ?? ''); $colors = sanitize_text_field($_POST['colors'] ?? ''); $format = sanitize_text_field($_POST['format'] ?? 'feed'); // validações simples if ( empty($text) || strlen($text) > 200 ) { wp_send_json_error('Texto inválido ou muito longo.'); } // Monta prompt (modelo simples; adapte conforme necessário) $prompt = "Instagram {$format} for a {$biz} - {$objective}. Headline: {$text}. Colors: {$colors}. Style: high-energy, professional, clean layout, space for logo and CTA."; // Escolha da API: Replicate example (substitua pelo provedor que quiser) // Pegue a chave da API do wp-config.php (defina conforme instruções abaixo) if ( defined('IMG_API_KEY') && IMG_API_KEY ) { $api_key = IMG_API_KEY; } else { wp_send_json_error('API key não encontrada. Configure IMG_API_KEY no wp-config.php.'); } // Exemplo com Replicate — faça ajustes conforme o provedor (modelo e payload variam) // Documentação Replicate: https://replicate.com/docs (verificar modelo exato) $replicate_model = 'stability-ai/stable-diffusion'; // placeholder - substitua se necessário // Payload de exemplo (ajuste conforme API) $payload = array( "model" => $replicate_model, "prompt" => $prompt, "width" => ($format === 'story' ? 1080 : 1080), "height" => ($format === 'story' ? 1920 : 1080), ); // Faz chamada à API (cURL). **ATENÇÃO**: adapt e teste conforme a API real que usar. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.replicate.com/v1/predictions"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); $headers = array(); $headers[] = "Authorization: Token " . $api_key; $headers[] = "Content-Type: application/json"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array( "version" => "", // alguns modelos exigem a version id; ver docs do model "input" => array( "prompt" => $prompt ) ))); $result = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ( $httpcode >= 400 || !$result ) { // Retorna erro genérico (não vaza chave) wp_send_json_error('Erro ao gerar imagem (API). Código: ' . $httpcode); } // A resposta da Replicate normalmente é JSON com URL(s) — aqui retornamos bruta para que o front lide. wp_send_json_success($result); } add_action('wp_ajax_ai_robo_generate', 'ai_robo_ajax_generate'); add_action('wp_ajax_nopriv_ai_robo_generate', 'ai_robo_ajax_generate'); /** * Arquivos JS/CSS inline (para simplificar entrega, crie os arquivos ou deixe inline) * Aqui deixo arquivos separados: ai-robo.js e ai-robo.css (eles são referenciados acima). */ // Se quiser, crie os arquivos ai-robo.js e ai-robo.css na mesma pasta do plugin. // Conteúdo sugerido abaixo no README desta resposta.