Fórum OpenCart Brasil

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

#2384
Muitos usuários do OpenCart sentem falta de um recurso muito simples, porém essencial para uma boa integração com os seus clientes que é exibir uma mensagem quando o cliente logar na loja ou simplesmente visitá-la.

Vou apresentar duas maneiras de fazer isso:

Vamos a primeira:

1. Localize e edite o arquivo: \catalog\view\theme\SEUTEMA\template\common\header.tpl

2. Coloque o código onde deseje que a mensagem seja exibida:
Código: Selecionar todos
<?php if ($this->customer->isLogged()) { ?>
Olá <strong><span class="asda"><?php echo $this->customer->getFirstName(); ?> <?php echo $this->customer->getLastName(); ?></strong></span>. Boas Compras!
<?php } ?>
3. Salve o arquivo e teste sua loja.

A segunda solução para o mesmo recurso é um pouco maior mais muito simples.

Vamos a segunda:

1. Localize e edite o arquivo "catalog/controller/common/header.php".

2. Procure pela linha:
Código: Selecionar todos
$this->id   = 'header';
3. Adicione o seguinte código após a linha citada anteriormente:
Código: Selecionar todos
if (!$this->customer->isLogged()) {
       $this->data['text_greeting'] = $this->language->get('text_greeting');
    } else {
       $this->load->model('account/customer');
       $customer_info = $this->model_account_customer->getCustomer($this->customer->getId());
       $this->data['text_greeting'] = sprintf($this->language->get('text_logged'), $customer_info['firstname']);
    }
    $this->data['text_create'] = $this->language->get('text_create');
    $this->data['text_account'] = $this->language->get('text_account');
    $this->data['create'] = $this->url->http('account/create');
    $this->data['account'] = $this->url->http('account/account');
4. Salve o arquivo e feche o arquivo.

5. Localize e edite o arquivo "catalog/language/portugues/common/header.php".

6. Procure pela linha:
Código: Selecionar todos
?>
7. Adicione o seguinte código antes da linha citada anteriormente:
Código: Selecionar todos
$_['text_greeting'] = 'Olá, <strong>Visitante</strong>';
$_['text_logged']    = 'Olá, <strong>%s</strong>';
$_['text_create']    = 'Registro';
$_['text_account']  = 'Conta';
8. Salve e feche o arquivo.

9. Localize e edite o arquivo "catalog/view/theme/SEUTEMA/template/common/header.tpl".

10. Procure pela linha:
Código: Selecionar todos
<div class="div4">
11. Adicione o seguinte código antes da linha citada anteriormente:
Código: Selecionar todos
<div class="welcome">
      <?php echo $text_greeting; ?>
      <?php if (!$logged) { ?>
        [ <a href="<?php echo $login; ?>"><?php echo $text_login; ?></a> ] [ <a href="<?php echo $create; ?>"><?php echo $text_create; ?></a> ]
      <?php } else { ?>
        [ <a href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a> ] [ <a href="<?php echo $account; ?>"><?php echo $text_account; ?></a> ]
      <?php } ?>
    </div>
12. Salve e feche o arquivo.

13. Localize e edite o arquivo "catalog/view/theme/SEUTEMA/stylesheet/stylesheet.css".

14. Adicione o seguinte código:
Código: Selecionar todos
#header .welcome {
    clear: both;
    margin: 10px 0px 10px 0px;
    text-align: right;
}
15. Salve, feche o arquivo e teste sua loja.

Pronto! Duas soluções para o mesmo recurso.
#2483
Fiz tudo de acordo com o 2° Tutorial,
mas o meu servidor está me voltando
a seguinte mensagem de erro:
Fatal error: Call to a member function http() on a non-object in /opencart/catalog/controller/common/header.php on line 184
O que pode ser??
#2558
Complementando as soluções apresentadas pelo Manoel Vidal.
Uma terceira opção seria:
1 - Encontre e edite o arquivo: \catalog\view\theme\SEU TEMA\template\common\home.tpl
2 - Localize o seguinte código
Código: Selecionar todos
<h1><?php echo $heading_title; ?></h1>
3 - Substitua por:
Código: Selecionar todos
<h1>
    <?php if ($this->customer->isLogged()) { ?>
        OL&Aacute; <?php echo $this->customer->getFirstName(); ?> 
	<?php echo $this->customer->getLastName(); ?>. BOAS COMPRAS!
    <?php } else {?>
    <?php echo $heading_title; ?><?php } ?>
</h1>
4 - Salve e teste a loja;
#3726
Olá caros amigos do OpenCart Brasil!

Deixo meu post aqui relacionado ao tutorial acima, realizei todos os procedimentos em ambos os 3 modelos e todos eles funcionaram perfeitamente, sendo que no item 3 do 2.º passo tive o mesmo problema que o Mauricio, onde retornou o mesmo erro, fiz a remoção conforme ele mencionou e perfeito, funcionou 101%.
Aproveito para parabenizá-los pelo excelente trabalho que ambos estão realizando neste fórum e neste projeto. Se eu puder ajudar de alguma forma coloco-me a disposição desde já.
Atenciosamente,

EdelcioLennon
#13443
Olá!

Estou querendo utilizar isso em meu site mas não consigo fazer nenhum dos dois jeitos passados.

O primeiro diz pra colar onde eu quero que apareça a mensagem. Eu quero que apareça no topo do lado direito, onde mostra que estou logado, mas não sei onde colar no header.tpl. Como faço?

Já o segundo não existe a primeira linha sugerida no header.php.

Ajuda por favor. brigado!