View in English
Guia de configuração

Hay.chat no WordPress com plugins de cache e de consentimento

WP Rocket, LiteSpeed Cache, Autoptimize, Complianz, CookieYes e a WP Consent API, com o que já testamos e o que ainda não

6 min de leitura Lojas WordPress e WooCommerce

Publicado em

A maioria das lojas WordPress usa um plugin de cache e um banner de cookies. Este guia mostra como o widget de chat do Hay.chat se comporta com os mais comuns, e o que mudar se algo parecer errado.

Leia isto antes: nenhum dos plugins abaixo foi testado com o Hay.chat ainda. Cada seção está marcada como "Ainda não testado". As orientações vêm de como o widget carrega e da documentação de cada plugin. Quando testarmos um plugin num site real, vamos marcar aqui com a data e a versão. Se você tiver um problema antes disso, escreva para nós dizendo qual plugin e qual configuração.

Como o widget carrega#

O plugin adiciona duas coisas a cada página onde o widget está ligado: um pequeno script inline com as suas configurações (window.HayChat.config) e o widget.js do seu servidor Hay.chat (https://eu.hay.chat, a menos que você hospede por conta própria). A partir da versão 1.0.1 do plugin, o script carrega adiado (defer) no rodapé e não há uma folha de estilo separada bloqueando a renderização.

O widget.js é pequeno. Ele desenha o botão do chat e baixa o resto do chat quando a página termina de carregar e o navegador fica ocioso, ou antes, se o visitante for até o botão. Nada é guardado no dispositivo do visitante antes de ele enviar a primeira mensagem.

Daí vêm duas coisas:

  • As configurações inline precisam rodar antes do widget.js. Plugins de otimização que mantêm os scripts na ordem (atrasando ou adiando todos juntos) funcionam. Plugins que movem ou juntam só alguns deles podem quebrar o widget.
  • O seu plugin de cache pode guardar a página normalmente. As configurações do widget são as mesmas para todos os visitantes, e o chat de cada um vem do Hay.chat, não da sua página.

Esconder o widget em algumas páginas (plugin 1.1.0)#

A versão 1.1.0 do plugin traz uma seção Ocultar em (Hide on) na página de configurações: Carrinho, Finalizar compra, Minha conta e uma lista de outros caminhos (um por linha; * corresponde a qualquer coisa, então /membros/* esconde o widget em tudo abaixo de /membros/). Todas vêm desligadas.

A regra é verificada no seu servidor quando o WordPress monta a página. Com cache de página, cada URL fica guardada com ou sem o widget, que é o que você quer. O WooCommerce já avisa os plugins de cache para não guardar as páginas de carrinho, finalização e conta.

Plugins de cache e otimização#

WP Rocket: Ainda não testado#

O Delay JavaScript execution do WP Rocket segura todos os scripts até o visitante mexer o mouse, rolar, tocar ou apertar uma tecla. O script de configurações do Hay.chat e o widget.js continuam na ordem, então o widget deve simplesmente aparecer na primeira interação. É a configuração que recomendamos se a nota de velocidade da página é o que mais importa para você.

Se você quer o botão visível assim que a página carrega, tire o widget do atraso: no WP Rocket, vá em File Optimization → Delay JavaScript execution → Excluded JavaScript Files e adicione estas duas linhas:

/v1/webchat/widget.js
HayChat

A primeira corresponde ao script do widget, a segunda às configurações inline. O WP Rocket também ignora qualquer tag de script com o atributo nowprocket. O plugin não adiciona esse atributo, então use a lista de exclusão acima.

LiteSpeed Cache: Ainda não testado#

O cache de página não precisa de mudança. Em Page Optimization → JS Settings, o Load JS Deferred em Deferred deve funcionar. Em Delayed, ele age como o atraso do WP Rocket: o widget aparece na primeira interação. Para manter o botão desde o início, adicione widget.js e HayChat em JS Deferred / Delayed Excludes (na aba Tuning).

Se você ligar o JS Combine, adicione os dois também em JS Excludes, para que as configurações não fiquem longe do script que as lê.

Autoptimize: Ainda não testado#

O Autoptimize não mexe em scripts de outros domínios, então o widget.js fica como está. Scripts inline só são juntados se você ligar Also aggregate inline JS. Se ligar, adicione HayChat em Exclude scripts from Autoptimize para as configurações ficarem no lugar.

Plugins de consentimento#

O que o widget faz sem um plugin de consentimento#

O widget não guarda nada no dispositivo até o visitante enviar uma mensagem. A partir daí, ele mantém o chat na aba atual, para que uma troca de página não o perca. Para encontrar o mesmo chat numa visita futura, ele também guarda a conversa no armazenamento local do navegador. Por padrão, faz isso assim que o visitante envia uma mensagem, a menos que o seu site retire o consentimento.

O seu site controla isso com duas chamadas:

  • window.HayChat.grantConsent() deixa o widget manter o chat entre visitas.
  • window.HayChat.revokeConsent() apaga o que ele guardou entre visitas. O chat aberto na aba continua funcionando.

As duas funcionam assim que o widget.js roda, antes de o resto do chat carregar. Com consent: 'strict' nas configurações do widget, nada fica guardado entre visitas até grantConsent() ser chamado.

A partir da versão 1.1.0, quando o plugin WP Consent API está ativo, o plugin Hay.chat:

  • coloca o widget em strict, para que nada fique guardado entre visitas até o visitante concordar;
  • chama grantConsent() quando o visitante permite a categoria funcional (functional), e revokeConsent() quando ele retira a permissão;
  • se registra na WP Consent API, para que o seu plugin de consentimento não o liste como desconhecido.

Manter o chat entre visitas entra como funcional, não como estatística nem marketing: serve só para a conversa do próprio visitante.

Sem a WP Consent API (ou antes da 1.1.0), chame as duas funções a partir dos eventos da sua ferramenta de consentimento.

Complianz: Ainda não testado#

O Complianz é compatível com a WP Consent API. Instale o plugin WP Consent API junto e atualize o Hay.chat para a 1.1.0. Aceitar a categoria Funcional no banner do Complianz deve então deixar o widget manter o chat entre visitas.

CookieYes: Ainda não testado#

O CookieYes também é compatível com a WP Consent API. Como no Complianz, instale o plugin WP Consent API, atualize o Hay.chat para a 1.1.0 e confira se o CookieYes liga a categoria Funcional dele à categoria functional da WP Consent API.

Outras ferramentas de consentimento#

Se a sua ferramenta não é compatível com a WP Consent API, chame window.HayChat.grantConsent() no evento de "aceito" dela e window.HayChat.revokeConsent() no evento de "retirado", para a categoria que cobre armazenamento funcional.

O que testamos a seguir#

Para cada plugin acima, vamos verificar num site de teste com WooCommerce que o botão aparece (ou aparece na primeira interação, quando atrasado), que um chat abre e continua após uma troca de página e, nos plugins de consentimento, que nada fica guardado entre visitas antes do consentimento e que retirar o consentimento apaga o que foi guardado. Os resultados vão aparecer aqui, com data, como "Testado".

Coloque o Hay.chat no seu site WordPress

Instale o plugin gratuito do wordpress.org e teste o Hay.chat por 30 dias, sem cartão de crédito.

Ver o plugin para WordPress