- Home
- Blog
- Web developer
- Modulo non compatibile con PHP 8 in PrestaShop – Come sistemarlo velocemente
Modulo non compatibile con PHP 8 in PrestaShop – Come sistemarlo velocemente

Getting your Trinity Audio player ready... |
Con l’arrivo di PHP 8 e PHP 8.1 molti store PrestaShop (sia 1.7 che 8.x) hanno iniziato a mostrare errori improvvisi: pagine bianche, moduli che non si installano, funzioni che non rispondono o l’intero back office che si blocca.
Il motivo è quasi sempre lo stesso: un modulo non compatibile con PHP 8.
In questa guida ti spiego come identificare il modulo problematico, come ripristinare il funzionamento del sito e quali sono le soluzioni reali per sistemare la compatibilità.
🔍 Perché molti moduli non funzionano con PHP 8
PHP 8 ha introdotto modifiche importanti, e molti moduli più vecchi usano ancora:
- funzioni deprecate
- sintassi compatibile solo con PHP 5 / 7
- variabili non tipizzate
- metodi che ora generano errori fatali
- codice non aggiornato dal 2019–2020
Il risultato è che basta anche un solo modulo non compatibile per:
- bloccare il checkout
- generare un errore 500
- impedire la visualizzazione del back office
- far sparire intere sezioni del sito
🔥 Sintomi tipici di un modulo non compatibile con PHP 8
- Errore 500 durante la navigazione
- Back Office non accessibile
- Modulo che non si attiva
- Carrello che si blocca
- Checkout non funzionante
- Messaggi come:
Deprecated: Required parameter $x follows optional parameter $y Fatal error: Uncaught TypeError Call to undefined function each()
🛠 Come identificare il modulo non compatibile
1️⃣ Attiva la modalità debug
Vai in:
Advanced Parameters > Performance > Debug Mode
Ricarica la pagina → troverai l’errore esatto (php fatal error).
L’errore solitamente mostra:
- la cartella del modulo (
/modules/nomeModulo/…) - il file preciso
- la riga da correggere
2️⃣ Disattiva il modulo dal database (se il BO non si apre)
Entra in phpMyAdmin:
Tabella:
ps_module
Trova il modulo → metti active = 0.
Ricarica il sito → se riparte, hai trovato il colpevole.
3️⃣ Controlla gli override del modulo
Alcuni moduli aggiungono override che rompono tutto in PHP 8.
Controlla:
/override/classes/…/override/controllers/…
Se trovi file del modulo → rinominali (es. nome.php_OFF).
🧩 Come sistemare effettivamente il modulo (soluzioni reali)
🔧 1. Aggiorna il modulo all’ultima versione
Molti sviluppatori hanno rilasciato versioni compatibili con PHP 8.
Se il modulo è:
- PayPal
- Stripe
- gestionali
- corrieri
- checkout
… l’update risolve il 90% dei casi.
🔧 2. Ripara manualmente gli errori più comuni
Se non esiste un aggiornamento, puoi sistemare il modulo modificando il codice.
Errori tipici e relative correzioni:
❌ Parametri opzionali prima di quelli obbligatori
function test($a = '', $b) {}Deve diventare:
function test($a, $b) {}❌ Funzioni rimosse in PHP 8
Esempi:
each() get_magic_quotes_gpc() create_function()
Devi sostituirle con alternative moderne.
❌ Tipizzazioni errate
Molti moduli usano:
return false;
In metodi che dovrebbero ritornare un array: questo ora genera errori.
🔧 3. Chiedi allo sviluppatore un aggiornamento
Se è un modulo premium o con supporto attivo → meglio non toccare il codice.
🔧 4. Reinstallalo (o installalo su PHP 7.4 e poi aggiorna)
Alcuni moduli meno recenti non si installano direttamente su PHP 8, ma funzionano se installati con PHP 7.4 e poi aggiornati.
Procedura:
- Porta temporaneamente il server a PHP 7.4
- Installa il modulo
- Torna a PHP 8.1
- Verifica il funzionamento
Funziona più spesso di quanto si creda.
🔧 5. Cambia modulo con uno alternativo compatibile
Se il modulo è abbandonato → è meglio sostituirlo.
🚑 Situazione critica? Sito bloccato? Checkout fermo?
Posso sistemare il modulo e ripristinare il sito in poche ore.
Cosa posso fare:
- ✔ rendo il modulo compatibile con PHP 8
- ✔ sistemo errori fatali, warning e deprecazioni
- ✔ ripristino BO/checkout bloccati
- ✔ effettuo test reali con pagamenti
- ✔ assistenza in remoto, risposta in giornata
👉 Scrivimi su WhatsApp