Problemi di visualizzazione con i page builder
Quando costruisci la pagina prodotto con un page builder come Creative Elements o AP Page Builder, il messaggio di Estimated Delivery potrebbe non comparire, anche se il modulo è installato, la data di consegna è configurata e l'hook necessario è presente. Questa guida spiega perché succede e come risolverlo senza scrivere codice.
Disponibile dalla v3.7.5
Panoramica
Per impostazione predefinita, il modulo mostra una sola istanza del messaggio di consegna per pagina prodotto. Questa protezione esiste per evitare che il messaggio venga stampato due volte quando un tema richiama lo stesso hook più di una volta.
Alcuni page builder costruiscono la pagina prodotto in due passaggi: prima producono un segnaposto, poi eseguono un secondo processo di rendering per riempirne il contenuto. Il modulo vede il secondo rendering come una ripetizione del primo e lo sopprime, quindi il messaggio di consegna scompare silenziosamente dalla pagina.
Questo riguarda solo la visualizzazione standard basata su hook nella pagina prodotto. È un argomento diverso dal posizionamento del widget in punti personalizzati, trattato in Integrazione con widget e page builder.
La soluzione
Attiva una singola impostazione per permettere al modulo di essere mostrato più di una volta per pagina prodotto:
- Apri il modulo e vai su Avanzate → Compatibilità (Advanced → Compatibility).
- Attiva Abilita istanze multiple nella pagina prodotto (Enable multiple instances on Product Page).
- Salva, poi ricarica una pagina prodotto sul tuo negozio per verificare che il messaggio di consegna ora compaia.
Questo è tutto ciò che serve: nessuna modifica ai template e nessuna modifica al codice.
Promemoria automatico: quando il modulo rileva che Creative Elements o AP Page Builder è attivo nel tuo negozio, mostra un avviso nella propria pagina delle impostazioni — "You seem to be using a page builder module…" — con un link "click here to activate it" che attiva questa impostazione al posto tuo con un solo clic.
Come funziona
Finché l'impostazione è disattivata, il primo hook che si attiva nella pagina prodotto contrassegna il messaggio di consegna come "già mostrato" e ogni chiamata successiva nella stessa pagina viene saltata. Quando abiliti Abilita istanze multiple nella pagina prodotto, quel blocco viene rimosso, quindi ogni hook richiamato dal page builder può mostrare il messaggio.
Il modulo controlla anche se un page builder noto è installato e abilitato (attualmente Creative Elements e AP Page Builder). Quando ne rileva uno e l'impostazione è ancora disattivata, mostra l'avviso di promemoria descritto sopra, così non resti a chiederti perché il messaggio non compare.
Note importanti
- Solo PrestaShop 1.7+. Questa impostazione non ha alcun effetto su PrestaShop 1.6.
- Builder rilevati automaticamente: l'avviso di promemoria compare per Creative Elements e AP Page Builder. Altri page builder che renderizzano la pagina in due passaggi possono incorrere nello stesso problema: la soluzione è identica, ma non riceverai l'avviso automatico, quindi abilita l'impostazione manualmente.
- PrettyBlocks non è interessato. I blocchi PrettyBlocks passano attraverso il renderer dei widget e aggirano del tutto la protezione a istanza singola, quindi non ti serve questa impostazione quando usi i blocchi PrettyBlocks.
- Lasciala disattivata se non ti serve. In un tema standard la protezione evita la doppia visualizzazione accidentale, quindi abilitala solo quando un page builder sta effettivamente sopprimendo il messaggio.
Risoluzione dei problemi
| Problema | Soluzione |
|---|---|
| Il messaggio di consegna manca ancora dopo aver abilitato l'impostazione | Verifica che la data di consegna sia effettivamente configurata per il prodotto (un prodotto senza regola corrispondente non mostra nulla, per progettazione) e svuota la cache delle pagine perché la modifica abbia effetto. |
| L'impostazione non è visibile in Compatibilità | L'opzione è disponibile su PrestaShop 1.7 e superiori. Su PS 1.6 non si applica. |
| Il messaggio ora compare due volte | Il tuo tema stava già mostrando correttamente il messaggio e il page builder ne aggiunge una seconda copia. Disattiva di nuovo l'impostazione: ti serve solo quando il messaggio manca, non quando è già visibile. |
Domande frequenti
La mia pagina prodotto usa un page builder e la data di consegna non compare affatto: perché?
Per evitare di stampare il messaggio di consegna due volte, il modulo mostra una sola istanza per pagina prodotto. Alcuni page builder creano un segnaposto e poi ne renderizzano il contenuto in un secondo passaggio, che il modulo considera un duplicato e nasconde. Abilita **Avanzate → Compatibilità → Abilita istanze multiple nella pagina prodotto** per rimuovere questo limite. Questa impostazione richiede PrestaShop 1.7 o superiore.
Devo modificare il mio tema o aggiungere un hook manualmente?
No. La soluzione è un singolo interruttore nelle impostazioni di Compatibilità del modulo. Non serve modificare i template né aggiungere hook a mano.
Quali page builder riconosce automaticamente il modulo?
Creative Elements e AP Page Builder. Quando uno dei due è attivo e l'impostazione è disattivata, il modulo mostra un promemoria nella propria pagina delle impostazioni con un link per abilitarla con un clic. Altri builder a due passaggi possono causare lo stesso sintomo e si risolvono allo stesso modo: basta abilitare l'impostazione da soli.
Questo riguarda PrettyBlocks?
No. I blocchi PrettyBlocks vengono renderizzati tramite l'interfaccia dei widget e non sono soggetti alla protezione a istanza singola, quindi questa impostazione non serve per loro. Consulta [Integrazione con widget e page builder](./widget-page-builder.mdx) per il posizionamento con PrettyBlocks.
Abilitandola il messaggio verrà mostrato due volte in un tema normale?
Può succedere, se il tuo tema mostra già correttamente il messaggio. La protezione a istanza singola esiste proprio per evitarlo. Abilita questa impostazione solo quando un page builder sta sopprimendo il messaggio; altrimenti lasciala disattivata.
Funzioni correlate
- Integrazione con widget e page builder — posizionare il widget di consegna ovunque tramite WidgetInterface o i blocchi PrettyBlocks
- Visualizzazione nella pagina prodotto — la visualizzazione standard della consegna basata su hook a cui si applica questa protezione