WPML
Статус
Открыто
Заявлено для
WPML Multilingual CMS 4.6.4
Теги темы
Bug

Обзор проблемы

Обновление до WPML 4.6.4 на сервере с механизмом кеширования OpCache может привести к непредвиденной фатальной ошибке при использовании панели управления. В частности, при использовании конвейера развертывания.

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

Обходное решение

Перед продолжением убедитесь, что у Вас есть полная резервная копия сайта.

Вариант 1


Перезапуск сервера PHP должен решить эту проблему. Свяжитесь со своим хостинг-провайдером и запросите перезапуск службы PHP-FPM.

Вариант 2

1. Проверьте наличие новых файлов

  • Откройте ../wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php

  • Убедитесь, что файл расположен правильно. Он должен содержать следующий код в строке 14:
    class WPML_Language_Pair_Records implements ILanguagePairs {

    Вместо:

    class WPML_Language_Pair_Records {


  • Если это не так, это указывает на проблему в процессе развертывания, и Вам необходимо её проверить.
2. Если содержимое файла правильное

В качестве альтернативы Вы можете сбросить OPCache для этого конкретного файла.


  • Запустите это из скрипта, обслуживаемого по HTTP (не через CLI/SSH):
    opcache_invalidate( '/wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php', true);

3. Наконец, убедитесь, что у Вас не осталась папка /Language/

  • Откройте папку /wp-content/plugins/sitepress-multilingual-cms/classes/.

  • Найдите оставшуюся папку /Language/ с заглавной буквы.

  • Если она есть, удалите каталог /Language/ и убедитесь, что в каталоге /language/ находятся файлы из релиза WPML 4.6.6.

Если проблема не устранена, обратитесь в поддержку WPML. Будет очень полезно, если Вы отправите нам содержимое Вашего phpinfo().

Все известные проблемы →