Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#87794
Amigos sou "novo" no Opencart, recentemente montei uma loja após anos sem o utilizar, acredito que a última versão que tive contato foi 1.5xxx.

Ví que muita coisa mudou e mesmo antigamente nunca mexi no código dele.
Em minha loja senti a necessidade de colocar um botão do WhatsApp e não achei nenhuma extensão do jeito que eu queria então como já possuía um código que uso em outros projetos tentei configurar em minha loja e funcionou.

Neste Método o código identifica qual o tipo de dispositivo esta acessando e dependendo da requisição direciona para o WhatsApp Web ou App do WhatsApp.
Neste método usei a versão do opencart 3.0.3.3 Brasil 1.4.15

Podem existir soluções melhores mas estou deixando a dica que utilizei.

Para começar vá na pasta catalog/controller/commom e edite o arquivo footer.php da seguinte forma:

após a função index() (logo após o fechamento dela porém ainda dentro da classe ControllerCommonFooter ) adicione o seguinte código:
Código: Selecionar todos
public function WhatsApp(){
       
        // DO NOT EDIT BELOW
            $phone = '5521988888888'; // coloque o seu número do whatsapp no formato 55 DDD Número de telefone
            $message = 'Olá, gostaria de mais informações';
            
            $message = urlencode($message);
            $message = str_replace('+','%20',$message);
            $iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
            $android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
            $palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
            $berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
            $ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
            // check if is a mobile
            if ($iphone || $android || $palmpre || $ipod || $berry == true)
            {
            return 'whatsapp://send?phone='.$phone.'&text='.$message.'';
            }
            // all others
            else {
             return 'https://web.whatsapp.com/send?phone='.$phone.'&text='.$message.'';
            }
        }
e dentro deste mesmo arquivo localize a linha :
return $this->load->view('common/footer', $data);

que este dentro da função index e antes dela adicione o sequinte:
$data['whatsapp'] = $this->WhatsApp();

Salve e feche o arquivo.

Agora dentro da pasta do seu template, por exemplo catalog/view/theme/default/template/commom/

Localize o arquivo footer.twig e logo após o fechamento da tag </footer> adicione o cógido abaixo:
Código: Selecionar todos
<style>
      .wpp-footer-btn {
    position: fixed;
    display: none;
    color: #fff;
    width: 60px;
    height: 60px;
    text-align: center;
    line-height: 1;
    border-radius: 50%;
    right: 15px;
    bottom: 15px;
    transition: background 0.5s;
    z-index: 11;
   
}

</style>
      
   <a class="wpp-footer-btn" style="display: inline" target="_blank" href="{{ whatsapp }}">
      <img height="60px" class="img-responsive" src="image/wpp.png" />
  </a> 
E ao final dentro da pasta image na raiz coloque uma imagem em png com o nome wpp.png, pode colocar uma imagem de sua preferência.

Após tudo feito vá na administração de sua loja em Extensões > Modificações e clique no botão atualizar, um botão azul no canto superior direito.

Acho que é só isso, dúvidas por favor comentem.
Manoel Vidal gostou disso
#87926
Quando não aparece eu costumo atualizar também o cache do tema no Dashboard no lado superior direito clicando na engrenagem.
No navegador eu uso ctrl+F5 ou Command+R.

É importante também o caminho da imagem criada estar correto, para isso pode testar colocando um texto no lugar da imagem na view ou inspecionar elemento pela página para verificar se a imagem esta sendo carregada corretamente.
#88519
tenho uma dica pra galera, altere o encode para ut8_encode caso a aplicação esteja num servidor linux, assim os caracteres especiais (á, ó, ç, etc) vão manter o parâmetro do texto

aqui como publiquei o serviço no windows e depois no linux, percebi esse lance ai e consegui alterar mudando esse código
Código: Selecionar todos
$message = 'Olá, gostaria de mais informações';
            
            $message = utf8_encode($message);

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]