# Override dei Template Entourance

Il plugin Entourance permette di sovrascrivere i template nel tuo tema WordPress, proprio come fanno WooCommerce e altri plugin popolari.

## Come Funziona

Il plugin cerca i template in questo ordine:

1. **Tema Child**: `wp-content/themes/tuo-tema-child/entourance/`
2. **Tema Parent**: `wp-content/themes/tuo-tema/entourance/`
3. **Plugin**: `wp-content/plugins/entourance-wp-plugin/templates/`

## Template Disponibili per l'Override

### Template Principale

- **`single-product-template.php`** - Template completo per la pagina singola di un prodotto Entourance (experience, host, eatery, poi, itinerary, article)

### Parti del Template (Single Parts)

Puoi anche sovrascrivere le singole parti:

- `single-parts/header.php` - Header del prodotto (breadcrumb, titolo, badge)
- `single-parts/image-slider.php` - Galleria immagini con modal
- `single-parts/main-content.php` - Contenuto principale (descrizione, cosa include, ecc.)
- `single-parts/sidebar.php` - Sidebar (prezzo, contatti, disponibilità)
- `single-parts/map.php` - Mappa con coordinate
- `single-parts/accessibility.php` - Informazioni accessibilità
- `single-parts/itinerary-stops.php` - Tappe dell'itinerario
- `single-parts/related.php` - Prodotti correlati

## Come Sovrascrivere un Template

### Esempio: Override del Template Principale

1. Crea una cartella `entourance` nel tuo tema:
   ```
   wp-content/themes/tuo-tema/entourance/
   ```

2. Copia il template dal plugin:
   ```
   cp wp-content/plugins/entourance-wp-plugin/templates/single-product-template.php 
      wp-content/themes/tuo-tema/entourance/single-product-template.php
   ```

3. Modifica il file copiato come preferisci!

### Esempio: Override di una Singola Parte

1. Crea la sottocartella nel tema:
   ```
   wp-content/themes/tuo-tema/entourance/single-parts/
   ```

2. Copia solo la parte che vuoi modificare:
   ```
   cp wp-content/plugins/entourance-wp-plugin/templates/single-parts/header.php 
      wp-content/themes/tuo-tema/entourance/single-parts/header.php
   ```

3. Personalizza!

## Best Practices

### 1. Usa un Tema Child
Se stai usando un tema premium, crea sempre un tema child per proteggere le tue modifiche dagli aggiornamenti:
```php
/*
 Theme Name:   Tuo Tema Child
 Template:     tuo-tema-parent
*/
```

### 2. Mantieni la Struttura delle Variabili
I template si aspettano queste variabili:
- `$item` - Oggetto del prodotto con tutte le informazioni
- `$type_ent_product` - Tipo di prodotto (experience, host, eatery, ecc.)
- `$id_single_product` - ID o slug del prodotto
- `$images` - Array delle immagini
- `$has_images` - Boolean se ci sono immagini

### 3. Usa le Funzioni Helper del Plugin
Il plugin fornisce funzioni helper che puoi usare nei tuoi template:

```php
// Traduzioni
entourance_get_translation('chiave_traduzione');

// Ottenere dati
EntouranceAPI::get_experience($url, $id);
EntouranceAPI::get_host($url, $id);
// ecc.

// Includere altri template con possibilità di override
entourance_get_template('single-parts/header.php', array(
    'item' => $item,
    'type_ent_product' => $type_ent_product
));

// Localizzare un template (restituisce il path)
$template_path = entourance_locate_template('single-parts/map.php');
```

### 4. Controlla gli Aggiornamenti
Quando aggiorni il plugin, confronta i template originali con le tue modifiche per vedere se ci sono nuove funzionalità da integrare.

## Esempio Pratico: Personalizzare l'Header

```php
<?php
/**
 * Template override: Header personalizzato
 * Posizione: wp-content/themes/mio-tema/entourance/single-parts/header.php
 */

if (!defined('ABSPATH')) {
    die('Accesso diretto non consentito');
}
?>

<div class="mio-header-personalizzato">
    <h1 class="mio-titolo-custom">
        <?php echo esc_html($item->name); ?>
    </h1>
    
    <!-- Aggiungi il tuo contenuto personalizzato qui -->
    <div class="mia-classe-custom">
        <!-- Il tuo codice personalizzato -->
    </div>
    
    <!-- Puoi mantenere parti del template originale -->
    <?php if (isset($item->category)): ?>
        <span class="badge"><?php echo esc_html($item->category); ?></span>
    <?php endif; ?>
</div>
```

## Esempio Avanzato: Template Completamente Personalizzato

Puoi creare un template completamente personalizzato che usa solo alcune parti del plugin:

```php
<?php
/**
 * Template: single-product-template.php personalizzato
 * Posizione: wp-content/themes/mio-tema/entourance/single-product-template.php
 */

if (!defined('ABSPATH')) {
    die('Accesso diretto non consentito');
}

// Ottieni le variabili globali
global $entourance_id, $entourance_type;
$type_ent_product = $entourance_type;

// Ottieni i dati del prodotto
switch ($type_ent_product) {
    case 'experience':
        $item = EntouranceAPI::get_experience(
            get_option('entourance_server') . '/api/public/slug/experience/', 
            $entourance_id
        );
        break;
    // ... altri casi
}
?>

<div class="mio-layout-personalizzato">
    <!-- Usa le parti del plugin che ti servono -->
    <?php entourance_get_template('single-parts/image-slider.php', array(
        'item' => $item,
        'images' => $item->images ?? array()
    )); ?>
    
    <!-- Aggiungi il tuo contenuto personalizzato -->
    <div class="mio-contenuto-custom">
        <h1><?php echo esc_html($item->name); ?></h1>
        <!-- Il tuo HTML personalizzato -->
    </div>
    
    <!-- Usa altre parti del plugin se necessario -->
    <?php entourance_get_template('single-parts/map.php', array(
        'item' => $item,
        'type_ent_product' => $type_ent_product
    )); ?>
</div>
```

## Debug: Come Verificare se l'Override Funziona

### 1. Verifica il Percorso
Aggiungi temporaneamente questo codice all'inizio del tuo template personalizzato:
```php
<?php
error_log('Template caricato da: ' . __FILE__);
?>
```

Poi controlla il log degli errori di WordPress (`wp-content/debug.log` se WP_DEBUG è attivo).

### 2. Usa la Funzione di Debug
```php
<?php
// Verifica quale template verrebbe caricato
$template_path = entourance_locate_template('single-product-template.php');
echo '<!-- Template path: ' . esc_html($template_path) . ' -->';
?>
```

### 3. Controlla i Permessi
```bash
# Su Linux/Mac, assicurati che i permessi siano corretti
chmod 755 wp-content/themes/tuo-tema/entourance
chmod 644 wp-content/themes/tuo-tema/entourance/*.php
```

### 4. Svuota la Cache
Se usi un plugin di caching, svuota la cache dopo aver creato/modificato un template.

## Supporto

Se hai domande o problemi con l'override dei template:
1. Controlla che il percorso del file sia corretto: `wp-content/themes/TUO-TEMA/entourance/`
2. Verifica i permessi della cartella (755 per directory, 644 per file)
3. Controlla il log degli errori di WordPress (`wp-content/debug.log`)
4. Assicurati che le variabili necessarie siano definite nel tuo template
5. Verifica che il tema child sia attivo (se stai usando un child theme)
6. Svuota tutte le cache (plugin di cache, cache del browser, ecc.)

## Changelog Template

Tieni traccia delle modifiche significative ai template negli aggiornamenti del plugin consultando il file CHANGELOG.md o le note di rilascio.

