Como corrigir a incompatibilidade do Astra Pro com PHP 8.3
O que é o erro do Astra Pro com PHP 8.3?
A incompatibilidade do Astra Pro com PHP 8.3 ocorre quando o addon Astra Pro está numa versão lançada antes do suporte oficial ao PHP 8.3 e o servidor já está nessa versão do PHP. O PHP 8.3 endureceu várias regras que antes só geravam aviso (criação de propriedade dinâmica, passar null para parâmetros internos não anuláveis, funções removidas), então código antigo do Astra Pro passa a emitir mensagens de deprecated ou, em casos graves, um fatal error. O sintoma varia: pode ser só um aviso no debug.log, uma faixa de avisos no topo do site ou a tela do Personalizar e o front-end quebrados.
Como identificar
- Mensagem “Deprecated: Creation of dynamic property …” apontando um arquivo dentro de wp-content/plugins/astra-addon no debug.log ou no topo da página.
- Mensagem “Fatal error: Uncaught TypeError” ou “Deprecated” referenciando um arquivo do astra-addon ao abrir o Personalizar (Aparência -> Personalizar).
- Faixa de avisos de PHP no cabeçalho do site logo após o host atualizar o PHP para a versão 8.3.
- Tela branca ou erro crítico só nas telas que usam recursos do Astra Pro (cabeçalho transparente, mega menu, blog layout), enquanto o tema Astra grátis continua carregando.
- Em Ferramentas -> Saúde do site, aviso de que a versão do tema ou do plugin Astra está desatualizada.
Como prevenir
- Mantenha o tema Astra e o plugin Astra Pro sempre na última versão e sempre atualizados juntos.
- Renove a licença do Astra Pro antes de vencer, para nunca perder o acesso às correções de compatibilidade.
- Antes de o host subir uma versão maior do PHP, teste o site numa cópia de homologação com a nova versão do PHP.
- Em produção, mantenha WP_DEBUG_DISPLAY desligado para que avisos de deprecated nunca apareçam para o visitante.
Causa
- Plugin Astra Pro (astra-addon) numa versão anterior à 4.4, lançada antes do suporte oficial ao PHP 8.3, rodando num servidor já migrado para o PHP 8.3.
- Versão do tema Astra e do plugin Astra Pro fora de sincronia (um atualizado e o outro não), combinação que o próprio addon bloqueia ou quebra.
- Licença do Astra Pro expirada ou não ativada, o que impede o WordPress de oferecer a atualização do plugin que traz a correção do PHP 8.3.
- WP_DEBUG_DISPLAY ligado em produção, fazendo o aviso de deprecated (que seria silencioso) aparecer impresso na tela e assustar o visitante.
- Plugin de cache servindo HTML antigo com a faixa de erro mesmo depois da atualização, dando a impressão de que o problema persiste.
Como resolver
- Confirme a versão do PHP e do Astra Pro: veja em Ferramentas -> Saúde do site -> Informações -> Servidor a versão do PHP, e em Aparência -> Temas e em Plugins a versão do Astra e do Astra Pro. Se o PHP está em 8.3 e o Astra Pro está abaixo da 4.4, a incompatibilidade está confirmada.
- Ative a licença do Astra Pro: sem a licença ativa o WordPress não mostra a atualização que corrige o PHP 8.3. Ative em:
Painel WP -> Astra -> Configurações -> Licença - Atualize o tema e o plugin para a versão mais recente: atualize sempre os dois juntos para manter a sincronia entre tema e addon:
Painel WP -> Painel -> Atualizações Painel WP -> Plugins -> Astra Pro -> Atualizar agora Painel WP -> Aparência -> Temas -> Astra -> Atualizar agora - Esconda os avisos em produção: se ainda houver algum deprecated isolado, mantenha o log mas pare de imprimir na tela. No wp-config.php deixe o debug em arquivo, não na tela:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); - Limpe o cache e reteste: limpe o cache do plugin de cache e do host (e do Cloudflare, se houver) para não ver HTML antigo com a faixa de erro. Recarregue o front-end e o Personalizar e confira o debug.log:
wp-content/debug.log
// wp-config.php — registra os avisos do PHP 8.3 no log sem imprimir na tela
// Cole antes da linha: /* That's all, stop editing! Happy publishing. */
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // grava em wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // nao mostra o aviso ao visitante
@ini_set( 'display_errors', 0 );














