WPML
Status
Aberto
Relatado para
WPML Multilingual CMS 4.6.4
Tags de tópico
Bug

Visão geral do problema

Atualizar para o WPML 4.6.4 em um servidor com o mecanismo de cache OpCache pode resultar em um erro fatal inesperado ao usar seu back-end. Especificamente ao usar um pipeline de implantação.

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

Solução alternativa

Certifique-se de ter um backup completo do seu site antes de prosseguir.

Opção 1


Reiniciar o seu servidor PHP deve corrigir esse problema. Entre em contato com o provedor do seu servidor e solicite a reinicialização do serviço PHP-FPM.

Opção 2

1. Verifique se os novos arquivos estão presentes

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

  • Verifique se o arquivo está no local correto. Ele deve conter este código na linha 14:
    class WPML_Language_Pair_Records implements ILanguagePairs {

    Em vez de:

    class WPML_Language_Pair_Records {


  • Se esse não for o caso, isso indicaria um problema no processo de implantação e você precisará verificá-lo.
2. Se você notar que o conteúdo do arquivo está correto

Como alternativa, você pode invalidar o seu OPCache para esse arquivo específico.


  • Execute isto a partir de um script servido por HTTP (não CLI/SSH):
    opcache_invalidate( '/wp-content/plugins/sitepress-multilingual-cms/classes/language/class-wpml-language-pair-records.php', true);

3. Por fim, verifique se você não tem uma pasta /Language/ restante

  • Abra a sua pasta /wp-content/plugins/sitepress-multilingual-cms/classes/.

  • Procure por uma pasta /Language/ restante com inicial maiúscula.

  • Se esse for o caso, remova o diretório /Language/ e certifique-se de que o diretório /language/ tenha os arquivos da versão WPML 4.6.6.

Se o problema persistir, entre em contato com o suporte do WPML. Seria muito útil se você nos enviasse o conteúdo do seu phpinfo().

Todos os problemas conhecidos →