Eu observei o mesmo problema com o formulário de contato 7 há algum tempo.
Mas observe que o registro de códigos de acesso com base em is_admin
é doing_it_wrong ( veja a resposta do gmazzap )
Existem as duas razões que parecem legítimas à primeira vista (e porque estão erradas):
-
(improvável) O autor do plug-in tentou otimizar o script para registrar apenas códigos de acesso quando necessário. Nesse caso, o autor não considerou que o shortcode possa ser usado em solicitações Ajax.
Errado porque : essa otimização não fornece nenhum ganho de desempenho. Ele simplesmente adiciona um valor ao array "shortcodes registrados" global.
-
(Este é o mais provável) O autor do plug-in
o suporte para o shortcode em solicitações do Ajax. Com o Contact-Form-7, esse é possivelmente o caso, porque os formulários podem ser configurados como "Enviar via Ajax". No entanto, este recurso requer o formulário para carregar arquivos javascript adicionais que não são carregados quando o código de acesso é analisado via Ajax e o javascript é adicionado via enqueue_scripts()
.O autor decidiu desativar o suporte do Ajax para evitar relatórios de bugs como "Não use isto: o formulário é exibido, mas clicar no botão Enviar não funciona. Perda de tempo completa!"
Assim, o usuário verá um formulário de trabalho garantido ou nenhum formulário.
Errado porque : Verificar
is_admin
é uma má prática aqui. A condição deve verificar se a constanteDOING_AJAX
está definida e verdadeira.
Embora a maioria dos plugins não use esse tipo de condição, os poucos que têm essa restrição possivelmente a têm por causa de problemas no passado.
Quando um shortcode está simplesmente fazendo alguma saída na página, não há razão para adicionar qualquer condição de administrador. No entanto, quando o shortcode também enfileira arquivos js ou css, faz sentido limitar o uso a solicitações não administrativas / não-ajax.