public function ajax_generate_brand() {
$term_id = intval($_POST['term_id']);
$term = get_term($term_id, 'pwb-brand');
$api_key = get_option('gemini_api_key');
if (empty($api_key)) {
wp_send_json_error('API Key mancante.');
}
$model = 'gemini-2.5-flash';
$url = "https://generativelanguage.googleapis.com/v1/models/{$model}:generateContent?key={$api_key}";
// Prompt ottimizzato per forzare HTML puro
$prompt = "Agisci come venditore esperto di moda luxury. Scrivi una descrizione editoriale per il brand '{$term->name}' che sia autorevole, tecnica e diretta.
REGOLE E-E-A-T & STILE:
1. Tono: Professionale, no frasi soggettive, enfasi su qualità, materiali e costruzione.
2. Struttura asimmetrica: Evita la struttura standard scolastica (Introduzione-Elenco-Conclusione). Distribuisci le informazioni in modo vario: paragrafi narrativi, brevi righe d'impatto, approfondimenti tecnici.
3. Contenuto: Includi storia del brand, filosofia creativa, target ideale ed esempi di abbinamento.
ISTRUZIONI FORMATTAZIONE HTML (OBBLIGATORIE):
1. Usa ESCLUSIVAMENTE tag HTML:
, , ,
,
, - , , ,
.
2. NON USARE MAI Markdown (*, **, -, `). Se usi markdown, la risposta è errata.
3. Grassetto e Corsivo: Usa per il grassetto e per il corsivo.
4. Lunghezza: Almeno 1200 caratteri.
STRUTTURA OBBLIGATORIA:
- Paragrafo introduttivo (p): Mood, occasione d'uso, storia.
- Titolo di sezione (h2): 'Il DNA del Brand' o simili.
- Elenco (ul/li): Filosofia creativa, Materiali distintivi, Target d'età, Consiglio di stile.
- Titolo di sezione (h3): 'Cura e Manutenzione'.
- Conclusione: Un paragrafo finale che invita all'acquisto basandosi sul valore del brand.
OUTPUT: Restituisci SOLO codice HTML, niente introduzioni o chiusure.";
$response = wp_remote_post($url, [
'body' => json_encode([
'contents' => [['parts' => [['text' => $prompt]]]]
]),
'headers' => ['Content-Type' => 'application/json'],
'timeout' => 60
]);
if (is_wp_error($response)) wp_send_json_error('Errore di connessione.');
$body = json_decode(wp_remote_retrieve_body($response), true);
$content = $body['candidates'][0]['content']['parts'][0]['text'] ?? '';
// Pulizia: rimuove eventuali blocchi di codice Markdown se l'AI dovesse dimenticarsi
$content = str_replace(['```html', '```'], '', $content);
wp_update_term($term_id, 'pwb-brand', ['description' => $content]);
update_term_meta($term_id, 'rank_math_title', "Scopri {$term->name} | Esclusività e Stile");
update_term_meta($term_id, 'rank_math_description', mb_substr(strip_tags($content), 0, 155));
wp_send_json_success();
}