">
 

Substituir preço oculto por mensagem "Faça Login para ver"

Iniciado por joomlamz, Ontem às 23:49

Tópico anterior - Tópico seguinte

0 Membros e 1 Visitante estão a ver este tópico.

joomlamz

Olá Devs e Lojistas,

O OpenCart tem uma funcionalidade nativa muito útil em Sistema > Configurações > Opções > "Exibir preços com login".

Quando ativamos isto, os preços somem para visitantes. O problema é que o espaço fica vazio, e o cliente pode achar que é um erro do site.

Hoje vou partilhar um pequeno snippet de código (modificação em .twig) para mostrar uma mensagem amigável com um link para a página de login.

Onde editar: Vamos alterar o ficheiro do template do produto. Caminho: catalog/view/theme/default/template/product/product.twig (Nota: Se usa um tema personalizado, o caminho será na pasta do seu tema).

O Código:

Procure por um código semelhante a este (geralmente perto da linha 100):

{% if price %}
  <ul class="list-unstyled">
    {% if not special %}
    <li>
      <h2>{{ price }}</h2>
    </li>
    {% else %}
    ...

Vamos envolver este bloco com uma condição else. Se o preço não estiver disponível (porque o usuário não está logado), mostramos a mensagem.

Substitua o bloco inicial por:

{% if price %}
  <ul class="list-unstyled">
    {# ... código original do preço ... #}
  </ul>
{% else %}
  >   <div class="alert alert-info">
    <i class="fa fa-info-circle"></i>
    <a href="{{ login }}">Faça Login</a> ou <a href="{{ register }}">Registe-se</a> para ver o preço.
  </div>
{% endif %}

Explicação para Programadores:

A variável price retorna false no Controller quando a configuração de "Login para ver preços" está ativa.

O {% else %} captura essa condição.

As variáveis {{ login }} e {{ register }} já estão disponíveis globalmente na maioria dos controllers do OpenCart, permitindo criar os links dinamicamente.

Importante: Lembre-se sempre de ir ao Painel Admin e limpar a cache do SASS/Tema após editar ficheiros .twig, senão a alteração não aparece.
Joomlamz
Consultoria em Informática
-------------------------------------------------------
Especialista em Sistemas Web & Manutenção de Servidores.
A desenvolver o novo AplPortal com suporte a PHP 8.
Precisa de ajuda profissional? Contacte-me.