WPML
Statut
Ouvert
Signalé pour
WPML Multilingual CMS 4.6.4
Étiquettes de sujet
Bug

Aperçu de l’anomalie

La mise à jour vers WPML 4.6.4 sur un serveur avec le moteur de cache OpCache peut entraîner une erreur fatale inattendue lors de l’utilisation de votre back-end. Plus particulièrement lors de l’utilisation d’un pipeline de déploiement.

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

Solution de contournement

Assurez-vous d’avoir une sauvegarde complète de votre site avant de continuer.

Option 1


Le redémarrage de votre serveur PHP devrait résoudre ce problème. Veuillez contacter votre hébergeur pour lui demander un redémarrage du service PHP-FPM.

Option 2

1. Vérifiez si les nouveaux fichiers sont présents

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

  • Vérifiez si le fichier est correctement placé. Il devrait contenir ce code à la ligne 14 :
    class WPML_Language_Pair_Records implements ILanguagePairs {

    Au lieu de :

    class WPML_Language_Pair_Records {


  • Si ce n’est pas le cas, cela indique un problème dans le processus de déploiement et vous devez le vérifier.
2. Si vous constatez que le contenu du fichier est correct

Vous pouvez également invalider votre OPCache pour ce fichier spécifique.


  • Exécutez ceci à partir d’un script servi par HTTP (pas en CLI/SSH) :
    opcache_invalidate( '/wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php', true);

3. Enfin, vérifiez que vous n’avez pas de dossier /Language/ restant

  • Ouvrez votre dossier /wp-content/plugins/sitepress-multilingual-cms/classes/.

  • Recherchez un dossier /Language/ restant avec une majuscule.

  • Si c’est le cas, veuillez supprimer le répertoire /Language/ et assurez-vous que le répertoire /language/ contient bien les fichiers de la version 4.6.6 de WPML.

Si le problème persiste, veuillez contacter l’assistance WPML. Il serait très utile que vous nous envoyiez le contenu de votre phpinfo().

Toutes les anomalies connues →