- Статус
- Открыто
- Заявлено для
- 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 { - Если это не так, это указывает на проблему в процессе развертывания, и Вам необходимо её проверить.
В качестве альтернативы Вы можете сбросить OPCache для этого конкретного файла.
- Запустите это из скрипта, обслуживаемого по HTTP (не через CLI/SSH):
opcache_invalidate( '/wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php', true);
- Откройте папку /wp-content/plugins/sitepress-multilingual-cms/classes/.
- Найдите оставшуюся папку /Language/ с заглавной буквы.
- Если она есть, удалите каталог
/Language/и убедитесь, что в каталоге/language/находятся файлы из релиза WPML 4.6.6.
Если проблема не устранена, обратитесь в поддержку WPML. Будет очень полезно, если Вы отправите нам содержимое Вашего phpinfo().