Fórum OpenCart Brasil

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

Suporte geral sobre problemas técnicos para OpenCart v2.x.
#77226
Bom dia,

Preciso obter o customer_id na header.tpl , estou fazendo desta forma :

No arquivo /catalog/controller/common/header.php coloquei assim :

$data['customer_id'] = $this->customer->getId();

No arquivo /catalog/view/theme/globethm/template/common/header.tpl coloquei desta forma :

<?php echo $customer_id ; ?>

E sempre apresenta que a variavel customer_id não foi definida.

Alguém pode me dar uma dica onde estou errando por favor.
#77229
Acontece de aparecer não definida pois o cliente não esta logado na loja, você deve fazer uma checagem para da o echo, da forma abaixo irá funcionar;

No controller
Código: Selecionar todos
$data['customer_id'] = !empty($this->customer->getId())?$this->customer->getId():'';
No tpl
Código: Selecionar todos
<?php if ($customer_id) {echo $customer_id;} ?>
#77230
Desenvolvi um xml que resolverá a questão:
Código: Selecionar todos
<modification>
   <name><![CDATA[<font color="#000"><b>Id Cliente</b></font>]]></name>
   <code>Manuella-Id Cliente</code>
    <version><![CDATA[<b>1.0</b>]]></version>
    <author><![CDATA[<font color="#CC0000"><b>Leandro R.P.P.O</font>]]></author>
    <link><![CDATA[http://www.swad.com.br]]></link>	
<file path="catalog/controller/common/header.php">
        <operation>
            <search><![CDATA[
            $data['cart'] = $this->load->controller('common/cart');
            ]]></search>
            <add position="after"><![CDATA[
           if ($this->customer->isLogged()) { 
           $data['customer_id'] = $this->customer->getId(); 
           }
            ]]></add>
        </operation>
</file>    
<file path="catalog/view/theme/*/template/common/header.tpl">   
<operation error="skip">
      <search><![CDATA[
         <div id="top-links" class="nav pull-right">    
      ]]></search>
      <add position="after" ofsset="1"><![CDATA[  
<?php if ($logged) { ?>
<?php echo $customer_id; ?>
<?php } ?>
      ]]></add>   
</operation>
</file> 
</modification>
Só copiar o conteúdo, colocar no bloco de notas ou outro editor de texto de sua preferência, logo após, salvar como: id_cliente.ocmod.xml.
Aí é só instalar normalmente como qualquer modificação.

É sempre bom realizar modificações através de xml, evita mexer diretamente nos arquivos, qualquer atualização, retorno de backup, etc, não perderá as alterações porque estará salvo o xml.
#77241
Leandro,

Instalei no Opencart , não deu nenhum erro, mas não teve nenhuma alteração no site, o quê preciso é colocar um botão no Header, apontando para um link , passando como parâmetro o customer_id :

<?php echo '<button type=' . '"button "' . ' onclick="' . "window.open('http://cortex-sc9.dyndns.org/cortex_pro ... d_usuario=" . $data['$customer_id'] . "'" . ' )"' . ">Acesso Parceiro!</button>" ; ?>

Temo como colocar isto no XML ?
#77244
mariobyte escreveu: 22 Fev 2018, 01:13 Coloquei da forma que o Veterano sugeriu e continua o mesmo erro :

Notice: Undefined variable: customer_id in
Se possível poste seu código atualizado no pastebin.com e depois poste o link aqui.

Se possível coloque antes do
Código: Selecionar todos
return $this->...
e após toda alteração acesse o painel de controle > extensions > modification e clique em refresh.
#77253
De nada, o script que coloquei na postagem testei antes. Está funcional.

Fico feliz que tenha dado certo, boa sorte.

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 […]