SAISSU Posted December 22, 2014 Share Posted December 22, 2014 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='[email protected]' 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='[email protected]' mod='mailalerts'}"Tentei variáveis como $smarty.post.email Não tive sucesso!Agradeço a atenção de todos. Obrigado. Link to comment Share on other sites More sharing options...
selectshop.at Posted December 22, 2014 Share Posted December 22, 2014 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. Link to comment Share on other sites More sharing options...
Daniel - PrestaBR Posted December 22, 2014 Share Posted December 22, 2014 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. Link to comment Share on other sites More sharing options...
SAISSU Posted December 22, 2014 Author Share Posted December 22, 2014 (edited) Entendo, mas o que eu realmente preciso é se:O usuário estiver LOGADOentã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 December 22, 2014 by SAISSU (see edit history) Link to comment Share on other sites More sharing options...
selectshop.at Posted December 22, 2014 Share Posted December 22, 2014 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 . Link to comment Share on other sites More sharing options...
SAISSU Posted December 23, 2014 Author Share Posted December 23, 2014 (edited) 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 December 23, 2014 by SAISSU (see edit history) Link to comment Share on other sites More sharing options...
Daniel - PrestaBR Posted December 23, 2014 Share Posted December 23, 2014 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 Link to comment Share on other sites More sharing options...
SAISSU Posted December 23, 2014 Author Share Posted December 23, 2014 Obrigado Daniel, mas em qual arquivo está esse code? Link to comment Share on other sites More sharing options...
Daniel - PrestaBR Posted December 23, 2014 Share Posted December 23, 2014 No arquivo /modules/mailalerts/mailalerts.php O template está em /modules/mailalerts/views/templates/hook/product.tpl 1 Link to comment Share on other sites More sharing options...
SAISSU Posted December 23, 2014 Author Share Posted December 23, 2014 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! Link to comment Share on other sites More sharing options...
SAISSU Posted December 23, 2014 Author Share Posted December 23, 2014 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! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now