WPML
Stato
Aperto
Segnalato per
WPML Multilingual CMS 4.6.4
Tag dell’argomento
Bug

Panoramica del problema

L’aggiornamento a WPML 4.6.4 su un server con il motore di cache OpCache potrebbe causare un errore fatale imprevisto durante l’utilizzo del tuo backend. In particolare quando utilizzi una pipeline di deployment.

2023/06/22 02:36:16 [error] 359706#359706: *507646 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught TypeError: WPML\User\UsersByCapsRepository::__construct(): Argument #2 ($languagePairs) must be of type WPML\User\LanguagePairs\ILanguagePairs, WPML_Language_Pair_Records given, called in .../wp-content/plugins/sitepress-multilingual-cms/classes/container/class-config.php on line 63 and defined in .../wp-content/plugins/sitepress-multilingual-cms/classes/user/UsersByCapsRepository.php:18

Soluzione alternativa

Assicurati di avere un backup completo del tuo sito prima di procedere.

Opzione 1


Il riavvio del server PHP dovrebbe risolvere questo problema. Contatta il provider del server e richiedi un riavvio del servizio PHP-FPM.

Opzione 2

1. Controlla se i nuovi file sono presenti

  • Apri ../wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php

  • Controlla se il file è posizionato correttamente. Dovrebbe contenere questo codice alla riga 14:
    class WPML_Language_Pair_Records implements ILanguagePairs {

    Invece di:

    class WPML_Language_Pair_Records {


  • In caso contrario, indicherebbe un problema nel processo di distribuzione che dovrai verificare.
2. Se vedi che il contenuto del file è corretto

In alternativa, puoi invalidare l’OPCache per quel file specifico.


  • Esegui questo da uno script servito via HTTP (non CLI/SSH):
    opcache_invalidate( '/wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php', true);

3. Infine, verifica di non avere una cartella /Language/ rimanente

  • Apri la cartella /wp-content/plugins/sitepress-multilingual-cms/classes/.

  • Cerca una cartella /Language/ rimanente con l’iniziale maiuscola.

  • In tal caso, rimuovi la directory /Language/ e assicurati che quella /language/ contenga i file della versione WPML 4.6.6.

Se il problema persiste, contatta il supporto WPML. Sarebbe davvero utile se ci inviassi il contenuto del tuo phpinfo().

Tutti i problemi noti →