Plugin para Mapas Culturais que adiciona um botão flutuante do WhatsApp fixado no lado direito inferior da tela em todo o sistema. O plugin permite configuração fácil do número e mensagem através de variáveis de ambiente.
- 🎯 Botão flutuante fixo - Sempre visível no canto inferior direito
- 📱 Responsivo - Adapta-se automaticamente a dispositivos móveis e desktop
- 🎨 Visual atrativo - Design moderno com efeito de pulso e animações
- ⚙️ Configurável - Número e mensagem configuráveis via variáveis de ambiente
- 🌐 Acessível - Suporte a navegação por teclado e leitores de tela
- 🌍 Internacionalizado - Suporte a múltiplos idiomas (pt_BR, es_ES, es_AR, en_US)
- 📊 Analytics - Integração opcional com Google Analytics e Google Tag Manager
- 🔧 Plug and play - Fácil instalação e configuração
Adicione o plugin ao arquivo de configuração do seu projeto Mapas Culturais:
<?php
// Em config.d/plugins.php ou config.d/0.main.php
return [
'plugins' => [
// ... outros plugins
'WhatsAppFloating' => [
'namespace' => 'WhatsAppFloating',
'config' => []
],
]
];
Adicione as seguintes variáveis ao seu arquivo .env
:
# Habilita ou desabilita o plugin
WHATSAPP_ENABLED=true
# Número do WhatsApp (com código do país)
# Exemplo para Brasil: 5511999999999 (55 = Brasil, 11 = DDD, 999999999 = número)
WHATSAPP_NUMBER=5511999999999
# Mensagem padrão que será enviada
WHATSAPP_MESSAGE=Olá! Gostaria de falar com vocês. 👋\n\nObrigado!
O plugin suporta múltiplos idiomas automaticamente baseado na configuração do Mapas Culturais:
- pt_BR - Português (Brasil) - Padrão
- es_ES - Espanhol (Espanha)
- es_AR - Espanhol (Argentina)
- en_US - Inglês (Estados Unidos)
- Copie o arquivo
translations/whatsapp-floating.pot
- Renomeie para
translations/[codigo_idioma].po
- Traduza as strings no arquivo
- Faça um pull request com a nova tradução
- Mensagem padrão do WhatsApp
- Título do botão (tooltip)
- Texto do tooltip
Consulte translations/README.md
para detalhes sobre como contribuir com traduções.
### 3. Restart da Aplicação
Após a configuração, reinicie a aplicação para que as alterações tenham efeito.
## Configuração Detalhada
### Variáveis de Ambiente
| Variável | Tipo | Padrão | Descrição |
|----------|------|---------|-----------|
| `WHATSAPP_ENABLED` | boolean | `true` | Habilita/desabilita o plugin |
| `WHATSAPP_NUMBER` | string | - | Número do WhatsApp com código do país |
| `WHATSAPP_MESSAGE` | string | "Olá! Gostaria de falar com vocês." | Mensagem padrão |
#### Formato do Número
O número deve seguir o formato internacional sem símbolos:
- ✅ Correto: `5511999999999` (Brasil: 55 + DDD: 11 + Número: 999999999)
- ❌ Incorreto: `+55 (11) 99999-9999`
- ❌ Incorreto: `11 99999-9999`
#### Exemplos de Números por País
```env
# Brasil
WHATSAPP_NUMBER=5511999999999
# Argentina
WHATSAPP_NUMBER=5491199999999
# Estados Unidos
WHATSAPP_NUMBER=15551234567
# Portugal
WHATSAPP_NUMBER=351999999999
A mensagem pode incluir:
- Emojis:
👋 😊 📞
- Quebras de linha: Use
\n
no .env - Caracteres especiais: Serão automaticamente codificados
# Exemplo com quebra de linha
WHATSAPP_MESSAGE=Olá! 👋\n\nGostaria de falar com vocês sobre o Mapas Culturais.\n\nObrigado!
- Desktop: Abre WhatsApp Web (
web.whatsapp.com
) - Mobile: Abre o aplicativo nativo do WhatsApp
- Tooltip: Exibido apenas em desktop (escondido em mobile)
- Navegação por teclado (Tab + Enter/Espaço)
- Atributos ARIA apropriados
- Contraste adequado seguindo WCAG
O plugin está preparado para integração com:
gtag('event', 'click', {
'event_category': 'WhatsApp',
'event_label': 'Floating Button'
});
dataLayer.push({
'event': 'whatsapp_click',
'event_category': 'engagement',
'event_action': 'click',
'event_label': 'whatsapp_floating_button'
});
plugins/WhatsAppFloating/
├── Plugin.php # Classe principal do plugin
├── README.md # Esta documentação
├── .env.example # Exemplo de configuração
├── assets/
│ ├── css/
│ │ └── whatsapp-floating.css # Estilos do botão
│ └── js/
│ └── whatsapp-floating.js # Funcionalidades JavaScript
├── layouts/
│ └── parts/
│ └── whatsapp-floating-button.php # Template do botão
├── translations/ # Arquivos de tradução
│ ├── README.md # Documentação das traduções
│ ├── whatsapp-floating.pot # Template de tradução
│ ├── pt_BR.po # Português (Brasil)
│ ├── es_ES.po # Espanhol (Espanha)
│ ├── es_AR.po # Espanhol (Argentina)
│ └── en_US.po # Inglês (Estados Unidos)
└── components/
└── whatsapp-floating/ # Componente (reservado para futuro)
Para personalizar o visual do botão, edite o arquivo assets/css/whatsapp-floating.css
:
/* Mudar cor do botão */
.whatsapp-floating__button {
background-color: #075e54; /* Verde mais escuro */
}
/* Mudar posição */
.whatsapp-floating {
bottom: 30px; /* Mais distante da borda */
left: 20px; /* Lado esquerdo ao invés do direito */
}
/* Mudar tamanho */
.whatsapp-floating__button {
width: 70px;
height: 70px;
}
Para alterar funcionalidades, edite assets/js/whatsapp-floating.js
:
// Exemplo: esconder botão durante scroll
function handleScrollBehavior() {
// Descomentar a chamada no final do arquivo
}
- Verifique se
WHATSAPP_ENABLED=true
- Confirme se
WHATSAPP_NUMBER
está configurado - Reinicie a aplicação após alterar as variáveis
- Verifique o console do navegador por erros JavaScript
- Confirme o formato do número (apenas dígitos com código do país)
- Teste o número em outro serviço WhatsApp
- Verifique se o navegador permite pop-ups
- Verifique o z-index do CSS (padrão: 9999)
- Analise conflitos de JavaScript no console
- Teste desabilitando outros plugins temporariamente
- Mapas Culturais: v6.0+
- PHP: 7.4+
- Navegadores: Chrome, Firefox, Safari, Edge (últimas 2 versões)
- Dispositivos: Desktop, Tablet, Mobile
Para contribuir com o plugin:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature
) - Commit suas mudanças (
git commit -am 'Adiciona nova feature'
) - Push para a branch (
git push origin feature/nova-feature
) - Abra um Pull Request
Este plugin é distribuído sob a licença do projeto Mapas Culturais.
Para suporte e dúvidas:
- Abra uma issue no repositório do projeto
- Consulte a documentação do Mapas Culturais
- Entre em contato com a equipe de desenvolvimento
Desenvolvido para Mapas Culturais 🗺️