Jump to content
SAISSU

Carregar input com valor Email do cliente - MailAlerts

Recommended Posts

Boa noite,

estou personalizando o módulo mailalerts de acordo com a minha necessidade.
Alguém sabe qual a variável que contém o valor do "e-mail" do usuário que já efetuou o LOGIN?

segue o code abaixo:

<!-- MODULE MailAlerts -->
    <div id="form_mailalerts">
        <p class="form-group">
            <input name="customer_email" type="text" class="mailalerts_oos_email form-control" id="oos_customer_email" value="{l s='your@email.com' mod='mailalerts'}" />
        </p>
        <a href="#" title="{l s='Notify me when available' mod='mailalerts'}" id="mailalert_link" rel="nofollow">{l s='Notify me when available' mod='mailalerts'}</a>
    </div><!--form_mailalerts-->
 
 
Gostaria de carregar o input com o e-mail do cliente com o input DISABLE (no edit), CASO ESTEJA LOGADO NA CONTA DE CLIENTE.
value="{l s='your@email.com' mod='mailalerts'}"

Tentei variáveis como $smarty.post.email 
Não tive sucesso!

Agradeço a atenção de todos.
Obrigado.

Share this post


Link to post
Share on other sites

Por estes valores nao estarem escritos no banco de dados, vai ser difícil vc. carregar. Nome e endereco possuem um mapping no banco de dados, mas nao o conteúdo.Vc. vai ter que retrabalahar o módulo totalmente, abrindo um campo no banco de dados, passando para o controller e smarty este campo, para depois poder chamá-lo.

 

Se vc. for no banco de dados poderá verificar que a tablea ps_mailalert_customer_oos já foi preparada, mas as colunas lá ficam vazias (ainda). Provavelmente estao elaborando algo neste sentido, mas nao so desenvolvedora, portanto nao sei para que vao servir.

 

As tableas que Prestashop usa para mensagens (as mensagens que o cliente escreve através do contato de formulário) sao escritas nas tabelas ps_customer_message e ps_customer_message_sync_imap). Estas tabelas nao tem na a ver com o módulo mailalerts e sao escritas no seu back-office na aba clientes -> atendimento ao cliente. I mail_alerts na verdade somente lhe passa alertas de mail par o estado do core, mas nao mails que clientes lhe passam.

Share this post


Link to post
Share on other sites

Acredito que esta seja uma opção padrão do PrestaShop.

A menos que seu tema seja personalizado e não tenha esta função, quando o usuário está logado e o produto está esgotado, aparece apenas o botão para cadastrar o alerta, sem o input para o e-mail.

Share this post


Link to post
Share on other sites

Entendo, mas o que eu realmente preciso é se:

O usuário estiver LOGADO

então mostra o INPUT com o BUTTON.
O INPUT será mostrado como DISABLE e reebendo o valor do E-MAIL DO USUÁRIO.

 

Procuro o VALOR ou a VARIÁVEL que contenha o valor do E-MAIL do usuário na página do módulo mailAlerts.

Edited by SAISSU (see edit history)

Share this post


Link to post
Share on other sites

Vc. quer carregar o que no mail ? o conteúdo de um mail enviado, ou produto fora de estoque ? Especifique, popis nao entendi exatamento o quer carregar .

Share this post


Link to post
Share on other sites

No INPUT do e-mail, quero que carregue o valor do E-MAIL DO CLIENTE ao abrir a página do PRODUTO SEM ESTOQUE.

Preciso saber apenas qual é a variável que possui o valor do e-mail do cliente no módulo mailAlerts, se eu souber já consigo resolver a minha dúvida.
 

Edited by SAISSU (see edit history)

Share this post


Link to post
Share on other sites

O módulo não carrega o e-mail do cliente, pois não é necessário para registrar o alerta.

Mas vc pode localizar a função abaixo e editar, dessa forma:

public function hookActionProductOutOfStock($params){
if (!$this->_customer_qty || !Configuration::get('PS_STOCK_MANAGEMENT') || Product::isAvailableWhenOutOfStock($params['product']->out_of_stock))
return;


$context = Context::getContext();
$id_product = (int)$params['product']->id;
$id_product_attribute = 0;
$id_customer = (int)$context->customer->id;


if ((int)$context->customer->id <= 0)
{$customer = new Customer((int)$context->customer->id);
$this->context->smarty->assign(array(
'email' => 1,
'customer_email' => $customer->email,)
);
}
elseif (MailAlert::customerHasNotification($id_customer, $id_product, $id_product_attribute, (int)$context->shop->id))
return;
$this->context->smarty->assign(array(
'id_product' => $id_product,
'id_product_attribute' => $id_product_attribute
)
);
return $this->display(__FILE__, 'product.tpl');
}

Depois vc chama a variável $customer_email no template 'product.tpl'.

 

Boa sorte

Share this post


Link to post
Share on other sites

Segui a lógica mas não consegui imprimir o valor do e-mail do cliente dentro do campo INPUT.

Percebi que para alterar o fron-end do mailalerts tenho que trabalhar com o seguinte arquivo:

themes\default-bootstrap\modules\mailalerts\views\templates\hook\product.tpl

------

 

O código que tentei alterar de acordo com a sua lógica Daniel:
 

<!-- MODULE MailAlerts -->
    <div id="form_mailalerts">
        <p class="form-group">
            <input name="customer_email" type="text" class="mailalerts_oos_email form-control" id="oos_customer_email" value="{$customer_email}" />
        </p>
        <a href="#" title="{l s='Notify me when available' mod='mailalerts'}" id="mailalert_link" rel="nofollow">{l s='Notify me when available' mod='mailalerts'}</a>
    </div><!--form_mailalerts-->
 
O que está errado? Obrigado pela atenção!
 

Share this post


Link to post
Share on other sites

Daniel Valente!
Obrigado consegui resolver segue abaixo:
 

<p class="form-group">
            <input name="customer_email" type="text" class="mailalerts_oos_email form-control" id="oos_customer_email" disabled="disabled" value="{$cookie->email}" />
        </p>

Feliz Natal!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More