Página 1 de 1

Comprar somente quando cliente estiver logado (Quase pronto)

Enviado: 07 Abr 2015, 10:32
por linaldo
Olá pessoal! Com meus conhecimentos básicos de PHP estou tentando programar uma pequena Extensão Ocmod para Opencart 2x, como o objetivo de que as opções de carrinho e os botões de compra só apareçam quando o cliente estiver logado. A primeira parte tudo bem, consigo desabilitar Listas de desejos, Carrinho de compras e Finalização de pedidos e até limito novos cadastros... porém não consigo fazer os testes de condições para ocultar os botões de compra nos links dos produtos.

A condição para teste não é carregada na página product.tpl assim como é carregada na header.tpl? A variável de condição está aparecendo como indefinida.

Agradeço a quem poderia me passar uma dica de como fazer este teste de condição. Ou até mesmo me indicar outro caminho se eu não estiver indo pelo certo. Inclusive já utilizei, com sucesso, um código similar nas versões 1.5x, onde os testes de condição de logado eram similares. Segue abaixo trecho do código atual:

Desabilitando a Lista de desejos para cliente não logado (OK):
Código: Selecionar todos
	
<file path="catalog/view/theme/*/template/common/header.tpl">
		<operation>
			<search><![CDATA[
        <li><a href="<?php echo $wishlist; ?>" id="wishlist-total" title="<?php echo $text_wishlist; ?>"><i class="fa fa-heart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_wishlist; ?></span></a></li>
			]]></search>
			<add position="replace"><![CDATA[
			            <?php if ($logged) { ?>	
        <li><a href="<?php echo $wishlist; ?>" id="wishlist-total" title="<?php echo $text_wishlist; ?>"><i class="fa fa-heart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_wishlist; ?></span></a></li>
           <?php } else { ?> <?php } ?>
			]]></add>
		</operation>
	
	</file>
O mesmo caminho não funciona para os botões de Comprar (ERRO):
Código: Selecionar todos
	<file path="catalog/view/theme/*/template/product/product.tpl">
		<operation>
			<search><![CDATA[
              <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button>
			]]></search>
			<add position="replace"><![CDATA[
			            <?php if ($logged) { ?>		
              <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button>
           <?php } else { ?> <?php } ?>
			]]></add>
		</operation>
		
	</file>

AVISO DO ERRO
Código: Selecionar todos
Notice: Undefined variable: logged in C:\EasyPHP\...\system\modification\catalog\view\theme\default\template\product\product.tpl

Re: Comprar somente quando cliente estiver logado (Quase pro

Enviado: 07 Abr 2015, 13:24
por veteranodf
Na admin da loja tem uma opção para logar para exibir preço já tentou utilizar?

Para corrigir esse erro Notice: Undefined variable: logged faça assim

Substitua <?php if ($logged) { ?> por <?php if (isset($logged)) { ?>

Para corrigir os outros deve postar o log de erro;

Re: Comprar somente quando cliente estiver logado (Quase pro

Enviado: 27 Mai 2015, 15:59
por Ezequias Martins
é um recurso interessante, mas permite o preço ser exibido? estou usando a versão 2.0.2.0 e o único problema quando seleciono uma vez desativar compra pra visitantes, eu não consigo mais exibir os preços, mesmo permitindo a compra para visitantes (usuários antes do cadastro). E a exibição dos preços é importante em qualquer um dos casos, ela deve ser omitida somente quando a loja estiver offline (em manutenção). Correto?

Ezequias Martins
27/maio'2015