Página 1 de 2

Ocultar preço

Enviado: 07 Ago 2012, 17:09
por idelhost
Olá, sou meio novato na área do opencart, então, eu estou com 1 cliente que quer o site para HERBALIFE e de acordo com as regras da HERBALIFE não e permitido mostrar os preço sem o usuario está registrado no site, eu vi a opção no painel de ocultar preço porem ela oculta tambem a descrição do painel e isso não e muito bom, então eu fiz o seguinte, coloquei esse script que vi no forum opencart eua:
Código: Selecionar todos
        <?php if (!$logged) { ?>
                  usuarios não logados vee
    <?php } else { ?>
aqui somente logado vee
<?php } ?>
Então, isso eu coloquei no arquivo product nele funciona corretamente, porem nos outros exemplo: category, special não funciona, alguem poderia me dar uma ajuda?

Re: Ocultar preço

Enviado: 07 Ago 2012, 23:31
por Manoel Vidal
Olá,

Vou dar o exemplo para o special.tpl (Produtos em Oferta) e para o manufacturer_info.tpl (Produtos por Fabricante) no tema default, ai você adapta para o resto, pois basicamente você tem que adicionar o código abaixo nos arquivos controller dos módulos ou páginas em que você deseja utilizar a função de esconder o preço, segue o código:
$this->data['logged'] = $this->customer->isLogged();

E nos arquivos tpl a condição que verifica se está ou não conectado:
<?php if (!$logged) { ?>
<div class="price"><a href="index.php?route=account/login">[Login]</a>&nbsp;<a href="index.php?route=account/create">[Cadastre-se]</a></div>
<?php } else { ?>
( Informações do preço que serão ocultados )
<?php } ?>


Na prática:

No arquivo /catalog/controller/module/special.php você adiciona o código abaixo:
$this->data['logged'] = $this->customer->isLogged();

- Depois de:
$this->load->model('tool/image');

- Salve o arquivo.

Agora no /catalog/view/theme/SEU_TEMA/template/module/special.tpl, procure o código:
<?php if ($product['price']) { ?>
<div class="price">
<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?>
<?php } else { ?>
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>
</div>
<?php } ?>


- E substitua por:
<?php if (!$logged) { ?>
<div class="price"><a href="index.php?route=account/login">[Login]</a>&nbsp;<a href="index.php?route=account/create">[Cadastre-se]</a></div>
<?php } else { ?>
<?php if ($product['price']) { ?>
<div class="price">
<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?>
<?php } else { ?>
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>
</div>
<?php } ?>
<?php } ?>


- Salve o arquivo e teste a alteração no módulo Produtos em oferta.

Para o Produtos por Fabricantes, no arquivo /catalog/controller/product/manufacture.php você adiciona o código abaixo:
$this->data['logged'] = $this->customer->isLogged();

- Depois de:
$this->load->model('tool/image');

- Salve o arquivo.

No /catalog/view/theme/SEU_TEMA/template/product/manufacturer_info.tpl, procure o código:
<?php if ($product['price']) { ?>
<div class="price">
<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?>
<?php } else { ?>
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>
<?php if ($product['tax']) { ?>
<br />
<span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
<?php } ?>
</div>
<?php } ?>


- E substitua por:
<?php if (!$logged) { ?>
<div class="price"><a href="index.php?route=account/login">[Login]</a>&nbsp;<a href="index.php?route=account/create">[Cadastre-se]</a></div>
<?php } else { ?>
<?php if ($product['price']) { ?>
<div class="price">
<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?>
<?php } else { ?>
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>
<?php if ($product['tax']) { ?>
<br />
<span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
<?php } ?>
</div>
<?php } ?>
<?php } ?>


- Salve o arquivo e teste a alteração na página de Produtos por Fabricante.

Lembrando que você não deve fazer alterações no tema default, conforme explico no artigo:
https://www.opencartbrasil.com.br/artigo ... ura-temas/

A lógica de funcionamento é essa e serve para qualquer outro módulo ou página em que você deseje ocultar preços, testado e funcionando. :)

Espero ter ajudado. :D

Re: Ocultar preço

Enviado: 08 Ago 2012, 13:32
por idelhost
Muito obrigado, e parabens pelo forum, vou tentar aqui já deixo minhas resposta.

Editando:
Eu editei o manu facture veja meu código como ficou:
Código: Selecionar todos
<?php 
class ControllerProductManufacturer extends Controller {  
	public function index() { 
		$this->language->load('product/manufacturer');
		
		$this->load->model('catalog/manufacturer');
		
		$this->load->model('tool/image');	
	    
		$this->data['logged'] = $this->customer->isLogged();	
Porem, no site ainda continua mostrando apenas [Login] [Cadastre-se] O valor que era para aparecer logado não aparece no arquivo manufacturer_info
Código: Selecionar todos
      <div class="description"><?php echo $product['description']; ?></div>
    <?php if (!$logged) { ?>
                <div class="">  <a href="index.php?route=account/login">[Login]</a>&nbsp;<a 

href="index.php?route=account/create">[Cadastre-se]</a></div>
    <?php } else { ?>
      <?php if ($product['']) { ?>
      <div class="">
        <?php if (!$product['special']) { ?>
        <?php echo $product['']; ?>
        <?php } else { ?>
        <span class="-old"><?php echo $product['']; ?></span> <span class="-new"><?php echo $product['special']; ?></span>
        <?php } ?>
        <?php if ($product['tax']) { ?>
        <br />
        <span class="-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
        <?php } ?>
      </div>
      <?php } ?>
Veja o site: http://herbago.com.br/ocart/index.php?r ... urer_id=10

Agradeço a ajuda otima tarde.

Re: Ocultar preço

Enviado: 08 Ago 2012, 17:45
por Manoel Vidal
Olá,

Está faltando um <?php } ?> no final do código acima, deveria ficar assim:
Código: Selecionar todos
          <div class="description"><?php echo $product['description']; ?></div>
        <?php if (!$logged) { ?>
            <div class="">  <a href="index.php?route=account/login">[Login]</a>&nbsp;<a href="index.php?route=account/create">[Cadastre-se]</a></div>
        <?php } else { ?>
          <?php if ($product['']) { ?>
          <div class="">
            <?php if (!$product['special']) { ?>
            <?php echo $product['']; ?>
            <?php } else { ?>
            <span class="-old"><?php echo $product['']; ?></span> <span class="-new"><?php echo $product['special']; ?></span>
            <?php } ?>
            <?php if ($product['tax']) { ?>
            <br />
            <span class="-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
            <?php } ?>
          </div>
          <?php } ?>
		<?php } ?>
Espero ter ajudado. :D

Re: Ocultar preço

Enviado: 08 Ago 2012, 17:47
por idelhost
Estou vendo aqui tem sim esse fechamento, apenas esqueci de copiar ele tambem.

Re: Ocultar preço

Enviado: 08 Ago 2012, 18:23
por Manoel Vidal
Muito estranho, era para funcionar normalmente, você editou o arquivo correto dentro da pasta do seu tema /catalog/view/theme/lite_green_152/ ?

Re: Ocultar preço

Enviado: 09 Ago 2012, 10:11
por gersonab
Algumas observações :

o código abaixo eu coloco no catalog\view\theme\default\template\product\manufacturer_info.tpl
Código: Selecionar todos
          <div class="description"><?php echo $product['description']; ?></div>
        <?php if (!$logged) { ?>
            <div class="">  <a href="index.php?route=account/login">[Login]</a>&nbsp;<a href="index.php?route=account/create">[Cadastre-se]</a></div>
        <?php } else { ?>
          <?php if ($product['']) { ?>
          <div class="">
            <?php if (!$product['special']) { ?>
            <?php echo $product['']; ?>
            <?php } else { ?>
            <span class="-old"><?php echo $product['']; ?></span> <span class="-new"><?php echo $product['special']; ?></span>
            <?php } ?>
            <?php if ($product['tax']) { ?>
            <br />
            <span class="-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
            <?php } ?>
          </div>
          <?php } ?>
      <?php } ?>
este abaixo seria no catalog\controller\module\special.php
Código: Selecionar todos
<?php 
class ControllerProductManufacturer extends Controller {  
   public function index() { 
      $this->language->load('product/manufacturer');
      
      $this->load->model('catalog/manufacturer');
      
      $this->load->model('tool/image');   
       
      $this->data['logged'] = $this->customer->isLogged();   
e este ?
Código: Selecionar todos
        <?php if (!$logged) { ?>
                  usuarios não logados vee
    <?php } else { ?>
aqui somente logado vee
<?php } ?>

Re: Ocultar preço

Enviado: 09 Ago 2012, 16:15
por Manoel Vidal
@gersonab Você montou um Frankenstein :), pois o manufacturer_info.tpl é para a exibição da página com os fabricantes e corresponde ao manufacturer.php, e o special.php é para o módulo de Produtos em Oferta e corresponde ao special.tpl.

Em resumo, no arquivo com a extensão .php você coloca o código:
$this->data['logged'] = $this->customer->isLogged();

E no arquivo com a extensão .tpl você coloca o código que faz a condição:

<?php if (!$logged) { ?>
usuarios não logados vee
<?php } else { ?>
aqui somente logado vee
<?php } ?>


Porém, como citei anteriormente, tem que ser nos arquivos que se correspondem na estrutura MVC do OpenCart.

Espero ter ajudado. :D

Re: Ocultar preço

Enviado: 10 Ago 2012, 00:00
por gersonab
Como disse em outro post, as vezes o problema fica entre a cadeira e o teclado ... :mrgreen: ... só que a cadeira ta com problema ...
na aba categoria sumiu o valor e não aparece a imagem que aparece na pag principal e do produto , fica tudo em branco ... como c não tivesse nada , só falta isso ...

Alias acho que tinha feito um mostro do lago nessss ... :roll:

Re: Ocultar preço

Enviado: 10 Ago 2012, 11:42
por Manoel Vidal
@idelhost @gersonab Atualizei o código e testei e agora está funcionando. :)