arcano Posted June 4, 2015 Share Posted June 4, 2015 Hi, I have a problem with my PS v 1.6.0.14 When a user (not logged in) goes to Contact page the first time and tries to send a message to customer service, receives an error "An error ocurred while sending the message". The message is correctly sent to Customer Service but not to the user. If he clicks again at send, receives "Your message has been correctly sent to our team". The message is sent to the user but not to Customer Service. From that moment, sometimes works ok and sometimes not (I haven't figured out the pattern). I've seen that first time,in ContactController.php, it pass through if (empty($contact->email)) Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment); else { if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, $from, ($customer->id ? $customer->firstname.' '.$customer->lastname : ''), $file_attachment) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, $contact->email, $contact->name, $file_attachment)) $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } And the second Mail::Send fails, giving the error. The following times, it seems that $contact->email is empty and doesn't try to send the message to the user. Could anybody explain me the logic of this behaviour and put some light on this error? Thanks Link to comment Share on other sites More sharing options...
webmasterBS Posted July 20, 2015 Share Posted July 20, 2015 Hi, today I encountered the same problem. Did you manage to resolve this? I will write here if I stumble upon any solution... Kind regards Link to comment Share on other sites More sharing options...
Betah89 Posted August 25, 2015 Share Posted August 25, 2015 (edited) Hi. I changed the ContactController.php in " /controllers/front " From this (line 191 ~198): else { if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, $from, ($customer->id ? $customer->firstname.' '.$customer->lastname : ''), $file_attachment) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, $contact->email, $contact->name, $file_attachment)) $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } To this: else { if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, $from, ($customer->id ? $customer->firstname.' '.$customer->lastname : ''), $file_attachment) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, $contact->email, $contact->name, $file_attachment)); //$this->errors[] = Tools::displayError('An error occurred while sending the message.'); } I tested sending simple messages and messages with attachment, it's working for me. Regards! Edited August 25, 2015 by Betah89 (see edit history) 1 Link to comment Share on other sites More sharing options...
personalizados Posted August 25, 2015 Share Posted August 25, 2015 Thanks, I'll try !!! But I think that file in the cloud of prestashop not accessible, thanks for sharing, hug! Link to comment Share on other sites More sharing options...
ArtemPetrov Posted October 24, 2015 Share Posted October 24, 2015 (edited) This problem takes place becouse default sendmail configuration. Sendmail are trying to find local user for sending your contact form. If it can't discover local user for contact form email sender: ([email protected] -> no local user 'info') it log error "user unkown" in maillog and send massage to default local postmaster mail box. Usually it is root user on bsd machine. And returns error to prestashop php script. As a result we see "An error ocurred while sending the message". How to solve this problem: We have to prohibite for sendmail to send email locally. # cd /etc/mail# vim freebsd.mcAdd these two lines:define(`MAIL_HUB', `example.com.')dnldefine(`LOCAL_RELAY', `example.com.')dnlRight before:MAILER(local)MAILER(smtp)# make--- This is output --- cp freebsd.mc host.example.com.mc /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 host.example.com.mc > host.example.com.cf cp freebsd.submit.mc host.example.com.submit.mc /usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/ /usr/share/sendmail/cf/m4/cf.m4 host.example.com.submit.mc > host.example.com.submit.cf--- End of output ---# cp sendmail.cf sendmail.cf.bak# cp host.example.com.cf sendmail.cf# /etc/rc.d/sendmail restart That's all. Many thanks to estepix from http://serverfault.com Edited October 25, 2015 by ArtemPetrov (see edit history) Link to comment Share on other sites More sharing options...
DGRL Posted September 4, 2016 Share Posted September 4, 2016 (edited) For everyone who needs a good solution Change This ( for 1.6.1.6 ) if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $from) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $contact->email)) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } To this ( for 1.6.1.6 ) if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $from) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $contact->email)) {Mail::l('Your message has been correctly sent');} I tested this and works perfect Emails are indeed sent and recieved Regards DGRL Edited September 4, 2016 by DGRL (see edit history) Link to comment Share on other sites More sharing options...
bonsaiko Posted October 19, 2016 Share Posted October 19, 2016 The problem is that you have to replace controlers/front file, and when Prestashop updates, it will be lost. I tried to use override file instead but it didn't work... Any idea why ? Link to comment Share on other sites More sharing options...
lamsari Posted September 11, 2017 Share Posted September 11, 2017 I follow the step - using the latest prestashop 1.6.1.17 Still showing the error on contact form. Any suggestion? thanks. Link to comment Share on other sites More sharing options...
Scully Posted September 12, 2017 Share Posted September 12, 2017 PS 1.6.1.17 works without any problems with the default theme. I would guess you have a non-default theme installed .... Link to comment Share on other sites More sharing options...
Matt75 Posted September 13, 2017 Share Posted September 13, 2017 In 1.6.1.17 you need to update your theme https://github.com/PrestaShop/PrestaShop/pull/8168/files#diff-eae3981efc859f7a5581c7aef4b68cbd 1 5 Link to comment Share on other sites More sharing options...
ZMR Posted September 14, 2017 Share Posted September 14, 2017 In 1.6.1.17 you need to update your theme https://github.com/PrestaShop/PrestaShop/pull/8168/files#diff-eae3981efc859f7a5581c7aef4b68cbd Thanks! It worked like a charm Link to comment Share on other sites More sharing options...
DutchPresta Posted September 21, 2017 Share Posted September 21, 2017 In 1.6.1.17 you need to update your theme https://github.com/PrestaShop/PrestaShop/pull/8168/files#diff-eae3981efc859f7a5581c7aef4b68cbd This does the trick. Thanks helped me too. Link to comment Share on other sites More sharing options...
brookny Posted September 26, 2017 Share Posted September 26, 2017 It worked to me! Thanks! I have the latest PS installed 1.6.1.7 Link to comment Share on other sites More sharing options...
seanr22a Posted October 10, 2017 Share Posted October 10, 2017 This does the trick. Thanks helped me too. It seems obvious for you but .... I click the link and get to a github code page. I'm not familiar with github so please tell a newbie there I can download the fixed file ? Or should cut/paste code from that page ? if so how can i see what i need to cut and what to paste ? Link to comment Share on other sites More sharing options...
wampirek Posted October 17, 2017 Share Posted October 17, 2017 (edited) Hi Everybody, I've already replace both files ContactController.php and contact-form.tpl. Unfortunately it still doesn't work . I have no idea what I should do more to get this work! Do anybody have some idea why it is not working still? ContactController.php <?php /* * 2007-2016 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2016 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class ContactControllerCore extends FrontController { public $php_self = 'contact'; public $ssl = true; /** * Start forms process * @see FrontController::postProcess() */ public function postProcess() { if (Tools::isSubmit('submitMessage')) { $saveContactKey = $this->context->cookie->contactFormKey; $extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg'); $file_attachment = Tools::fileAttachment('fileUpload'); $message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags. $url = Tools::getValue('url'); if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) { $this->errors[] = Tools::displayError('Invalid email address.'); } elseif (!$message) { $this->errors[] = Tools::displayError('The message cannot be blank.'); } elseif (!Validate::isCleanHtml($message)) { $this->errors[] = Tools::displayError('Invalid message'); } elseif (!($id_contact = (int)Tools::getValue('id_contact')) || !(Validate::isLoadedObject($contact = new Contact($id_contact, $this->context->language->id)))) { $this->errors[] = Tools::displayError('Please select a subject from the list provided. '); } elseif (!empty($file_attachment['name']) && $file_attachment['error'] != 0) { $this->errors[] = Tools::displayError('An error occurred during the file-upload process.'); } elseif (!empty($file_attachment['name']) && !in_array(Tools::strtolower(substr($file_attachment['name'], -4)), $extension) && !in_array(Tools::strtolower(substr($file_attachment['name'], -5)), $extension)) { $this->errors[] = Tools::displayError('Bad file extension'); } elseif ($url === false || !empty($url) || $saveContactKey != (Tools::getValue('contactKey'))) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } else { $customer = $this->context->customer; if (!$customer->id) { $customer->getByEmail($from); } $id_order = (int)$this->getOrder(); if (!(( ($id_customer_thread = (int)Tools::getValue('id_customer_thread')) && (int)Db::getInstance()->getValue(' SELECT cm.id_customer_thread FROM '._DB_PREFIX_.'customer_thread cm WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->context->shop->id.' AND token = \''.pSQL(Tools::getValue('token')).'\'') ) || ( $id_customer_thread = CustomerThread::getIdCustomerThreadByEmailAndIdOrder($from, $id_order) ))) { $fields = Db::getInstance()->executeS(' SELECT cm.id_customer_thread, cm.id_contact, cm.id_customer, cm.id_order, cm.id_product, cm.email FROM '._DB_PREFIX_.'customer_thread cm WHERE email = \''.pSQL($from).'\' AND cm.id_shop = '.(int)$this->context->shop->id.' AND ('. ($customer->id ? 'id_customer = '.(int)$customer->id.' OR ' : '').' id_order = '.(int)$id_order.')'); $score = 0; foreach ($fields as $key => $row) { $tmp = 0; if ((int)$row['id_customer'] && $row['id_customer'] != $customer->id && $row['email'] != $from) { continue; } if ($row['id_order'] != 0 && $id_order != $row['id_order']) { continue; } if ($row['email'] == $from) { $tmp += 4; } if ($row['id_contact'] == $id_contact) { $tmp++; } if (Tools::getValue('id_product') != 0 && $row['id_product'] == Tools::getValue('id_product')) { $tmp += 2; } if ($tmp >= 5 && $tmp >= $score) { $score = $tmp; $id_customer_thread = $row['id_customer_thread']; } } } $old_message = Db::getInstance()->getValue(' SELECT cm.message FROM '._DB_PREFIX_.'customer_message cm LEFT JOIN '._DB_PREFIX_.'customer_thread cc on (cm.id_customer_thread = cc.id_customer_thread) WHERE cc.id_customer_thread = '.(int)$id_customer_thread.' AND cc.id_shop = '.(int)$this->context->shop->id.' ORDER BY cm.date_add DESC'); if ($old_message == $message) { $this->context->smarty->assign('alreadySent', 1); $contact->email = ''; $contact->customer_service = 0; } if ($contact->customer_service) { if ((int)$id_customer_thread) { $ct = new CustomerThread($id_customer_thread); $ct->status = 'open'; $ct->id_lang = (int)$this->context->language->id; $ct->id_contact = (int)$id_contact; $ct->id_order = (int)$id_order; if ($id_product = (int)Tools::getValue('id_product')) { $ct->id_product = $id_product; } $ct->update(); } else { $ct = new CustomerThread(); if (isset($customer->id)) { $ct->id_customer = (int)$customer->id; } $ct->id_shop = (int)$this->context->shop->id; $ct->id_order = (int)$id_order; if ($id_product = (int)Tools::getValue('id_product')) { $ct->id_product = $id_product; } $ct->id_contact = (int)$id_contact; $ct->id_lang = (int)$this->context->language->id; $ct->email = $from; $ct->status = 'open'; $ct->token = Tools::passwdGen(12); $ct->add(); } if ($ct->id) { $cm = new CustomerMessage(); $cm->id_customer_thread = $ct->id; $cm->message = $message; if (isset($file_attachment['rename']) && !empty($file_attachment['rename']) && rename($file_attachment['tmp_name'], _PS_UPLOAD_DIR_.basename($file_attachment['rename']))) { $cm->file_name = $file_attachment['rename']; @chmod(_PS_UPLOAD_DIR_.basename($file_attachment['rename']), 0664); } $cm->ip_address = (int)ip2long(Tools::getRemoteAddr()); $cm->user_agent = $_SERVER['HTTP_USER_AGENT']; if (!$cm->add()) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } else { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } if (!count($this->errors)) { $var_list = array( '{order_name}' => '-', '{attached_file}' => '-', '{message}' => Tools::nl2br(stripslashes($message)), '{email}' => $from, '{product_name}' => '', ); if (isset($file_attachment['name'])) { $var_list['{attached_file}'] = $file_attachment['name']; } $id_product = (int)Tools::getValue('id_product'); if (isset($ct) && Validate::isLoadedObject($ct) && $ct->id_order) { $order = new Order((int)$ct->id_order); $var_list['{order_name}'] = $order->getUniqReference(); $var_list['{id_order}'] = (int)$order->id; } if ($id_product) { $product = new Product((int)$id_product); if (Validate::isLoadedObject($product) && isset($product->name[Context::getContext()->language->id])) { $var_list['{product_name}'] = $product->name[Context::getContext()->language->id]; } } if (empty($contact->email)) { Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment); } else { if (!Mail::Send($this->context->language->id, 'contact', Mail::l('Message from contact form').' [no_sync]', $var_list, $contact->email, $contact->name, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $from) || !Mail::Send($this->context->language->id, 'contact_form', ((isset($ct) && Validate::isLoadedObject($ct)) ? sprintf(Mail::l('Your message has been correctly sent #ct%1$s #tc%2$s'), $ct->id, $ct->token) : Mail::l('Your message has been correctly sent')), $var_list, $from, null, null, null, $file_attachment, null, _PS_MAIL_DIR_, false, null, null, $contact->email)) { $this->errors[] = Tools::displayError('An error occurred while sending the message.'); } } } if (count($this->errors) > 1) { array_unique($this->errors); } elseif (!count($this->errors)) { $this->context->smarty->assign('confirmation', 1); } } } } public function setMedia() { parent::setMedia(); $this->addCSS(_THEME_CSS_DIR_.'contact-form.css'); $this->addJS(_THEME_JS_DIR_.'contact-form.js'); $this->addJS(_PS_JS_DIR_.'validate.js'); } /** * Assign template vars related to page content * @see FrontController::initContent() */ public function initContent() { parent::initContent(); $this->assignOrderList(); $email = Tools::safeOutput(Tools::getValue('from', ((isset($this->context->cookie) && isset($this->context->cookie->email) && Validate::isEmail($this->context->cookie->email)) ? $this->context->cookie->email : ''))); $this->context->smarty->assign(array( 'errors' => $this->errors, 'email' => $email, 'fileupload' => Configuration::get('PS_CUSTOMER_SERVICE_FILE_UPLOAD'), 'max_upload_size' => (int)Tools::getMaxUploadSize() )); if (($id_customer_thread = (int)Tools::getValue('id_customer_thread')) && $token = Tools::getValue('token')) { $customer_thread = Db::getInstance()->getRow(' SELECT cm.* FROM '._DB_PREFIX_.'customer_thread cm WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->context->shop->id.' AND token = \''.pSQL($token).'\' '); $order = new Order((int)$customer_thread['id_order']); if (Validate::isLoadedObject($order)) { $customer_thread['reference'] = $order->getUniqReference(); } $this->context->smarty->assign('customerThread', $customer_thread); } $contactKey = md5(uniqid(microtime(), true)); $this->context->cookie->__set('contactFormKey', $contactKey); $this->context->smarty->assign(array( 'contacts' => Contact::getContacts($this->context->language->id), 'message' => html_entity_decode(Tools::getValue('message')), 'contactKey' => $contactKey, )); $this->setTemplate(_PS_THEME_DIR_.'contact-form.tpl'); } /** * Assign template vars related to order list and product list ordered by the customer */ protected function assignOrderList() { if ($this->context->customer->isLogged()) { $this->context->smarty->assign('isLogged', 1); $products = array(); $result = Db::getInstance()->executeS(' SELECT id_order FROM '._DB_PREFIX_.'orders WHERE id_customer = '.(int)$this->context->customer->id.Shop::addSqlRestriction(Shop::SHARE_ORDER).' ORDER BY date_add'); $orders = array(); foreach ($result as $row) { $order = new Order($row['id_order']); $date = explode(' ', $order->date_add); $tmp = $order->getProducts(); foreach ($tmp as $key => $val) { $products[$row['id_order']][$val['product_id']] = array('value' => $val['product_id'], 'label' => $val['product_name']); } $orders[] = array('value' => $order->id, 'label' => $order->getUniqReference().' - '.Tools::displayDate($date[0], null) , 'selected' => (int)$this->getOrder() == $order->id); } $this->context->smarty->assign('orderList', $orders); $this->context->smarty->assign('orderedProductList', $products); } } protected function getOrder() { $id_order = false; if (!is_numeric($reference = Tools::getValue('id_order'))) { $reference = ltrim($reference, '#'); $orders = Order::getByReference($reference); if ($orders) { foreach ($orders as $order) { $id_order = (int)$order->id; break; } } } elseif (Order::getCartIdStatic((int)Tools::getValue('id_order'))) { $id_order = (int)Tools::getValue('id_order'); } return (int)$id_order; } } contact-form.tpl {* * 2007-2016 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2016 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} {capture name=path}{l s='Contact'}{/capture} <h1 class="page-heading bottom-indent"> {l s='Customer service'} - {if isset($customerThread) && $customerThread}{l s='Your reply'}{else}{l s='Contact us'}{/if} </h1> {if isset($confirmation)} <p class="alert alert-success">{l s='Your message has been successfully sent to our team.'}</p> <ul class="footer_links clearfix"> <li> <a class="btn btn-default button button-small" href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}"> <span> <i class="icon-chevron-left"></i>{l s='Home'} </span> </a> </li> </ul> {elseif isset($alreadySent)} <p class="alert alert-warning">{l s='Your message has already been sent.'}</p> <ul class="footer_links clearfix"> <li> <a class="btn btn-default button button-small" href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}"> <span> <i class="icon-chevron-left"></i>{l s='Home'} </span> </a> </li> </ul> {else} {include file="$tpl_dir./errors.tpl"} <form action="{$request_uri}" method="post" class="contact-form-box" enctype="multipart/form-data"> <fieldset> <h3 class="page-subheading">{l s='send a message'}</h3> <div class="clearfix"> <div class="col-xs-12 col-md-3"> <div class="form-group selector1"> <label for="id_contact">{l s='Subject Heading'}</label> {if isset($customerThread.id_contact) && $customerThread.id_contact && $contacts|count} {assign var=flag value=true} {foreach from=$contacts item=contact} {if $contact.id_contact == $customerThread.id_contact} <input type="text" class="form-control" id="contact_name" name="contact_name" value="{$contact.name|escape:'html':'UTF-8'}" readonly="readonly" /> <input type="hidden" name="id_contact" value="{$contact.id_contact|intval}" /> {$flag=false} {/if} {/foreach} {if $flag && isset($contacts.0.id_contact)} <input type="text" class="form-control" id="contact_name" name="contact_name" value="{$contacts.0.name|escape:'html':'UTF-8'}" readonly="readonly" /> <input type="hidden" name="id_contact" value="{$contacts.0.id_contact|intval}" /> {/if} </div> {else} <select id="id_contact" class="form-control" name="id_contact"> <option value="0">{l s='-- Choose --'}</option> {foreach from=$contacts item=contact} <option value="{$contact.id_contact|intval}"{if isset($smarty.request.id_contact) && $smarty.request.id_contact == $contact.id_contact} selected="selected"{/if}>{$contact.name|escape:'html':'UTF-8'}</option> {/foreach} </select> </div> <p id="desc_contact0" class="desc_contact{if isset($smarty.request.id_contact)} unvisible{/if}"> </p> {foreach from=$contacts item=contact} <p id="desc_contact{$contact.id_contact|intval}" class="desc_contact contact-title{if !isset($smarty.request.id_contact) || $smarty.request.id_contact|intval != $contact.id_contact|intval} unvisible{/if}"> <i class="icon-comment-alt"></i>{$contact.description|escape:'html':'UTF-8'} </p> {/foreach} {/if} <p class="form-group"> <label for="email">{l s='Email address'}</label> {if isset($customerThread.email)} <input class="form-control grey" type="text" id="email" name="from" value="{$customerThread.email|escape:'html':'UTF-8'}" readonly="readonly" /> {else} <input class="form-control grey validate" type="text" id="email" name="from" data-validate="isEmail" value="{$email|escape:'html':'UTF-8'}" /> {/if} </p> {if !$PS_CATALOG_MODE} {if (!isset($customerThread.id_order) || $customerThread.id_order > 0)} <div class="form-group selector1"> <label>{l s='Order reference'}</label> {if !isset($customerThread.id_order) && isset($is_logged) && $is_logged} <select name="id_order" class="form-control"> <option value="0">{l s='-- Choose --'}</option> {foreach from=$orderList item=order} <option value="{$order.value|intval}"{if $order.selected|intval} selected="selected"{/if}>{$order.label|escape:'html':'UTF-8'}</option> {/foreach} </select> {elseif !isset($customerThread.id_order) && empty($is_logged)} <input class="form-control grey" type="text" name="id_order" id="id_order" value="{if isset($customerThread.id_order) && $customerThread.id_order|intval > 0}{$customerThread.id_order|intval}{else}{if isset($smarty.post.id_order) && !empty($smarty.post.id_order)}{$smarty.post.id_order|escape:'html':'UTF-8'}{/if}{/if}" /> {elseif $customerThread.id_order|intval > 0} <input class="form-control grey" type="text" name="id_order" id="id_order" value="{if isset($customerThread.reference) && $customerThread.reference}{$customerThread.reference|escape:'html':'UTF-8'}{else}{$customerThread.id_order|intval}{/if}" readonly="readonly" /> {/if} </div> {/if} {if isset($is_logged) && $is_logged} <div class="form-group selector1"> <label class="unvisible">{l s='Product'}</label> {if !isset($customerThread.id_product)} {foreach from=$orderedProductList key=id_order item=products name=products} <select name="id_product" id="{$id_order}_order_products" class="unvisible product_select form-control"{if !$smarty.foreach.products.first} style="display:none;"{/if}{if !$smarty.foreach.products.first} disabled="disabled"{/if}> <option value="0">{l s='-- Choose --'}</option> {foreach from=$products item=product} <option value="{$product.value|intval}">{$product.label|escape:'html':'UTF-8'}</option> {/foreach} </select> {/foreach} {elseif $customerThread.id_product > 0} <input type="hidden" name="id_product" id="id_product" value="{$customerThread.id_product|intval}" readonly="readonly" /> {/if} </div> {/if} {/if} {if $fileupload == 1} <p class="form-group"> <label for="fileUpload">{l s='Attach File'}</label> <input type="hidden" name="MAX_FILE_SIZE" value="{if isset($max_upload_size) && $max_upload_size}{$max_upload_size|intval}{else}2000000{/if}" /> <input type="file" name="fileUpload" id="fileUpload" class="form-control" /> </p> {/if} </div> <div class="col-xs-12 col-md-9"> <div class="form-group"> <label for="message">{l s='Message'}</label> <textarea class="form-control" id="message" name="message">{if isset($message)}{$message|escape:'html':'UTF-8'|stripslashes}{/if}</textarea> </div> </div> </div> <div class="submit"> <input type="text" name="url" value="" class="hidden" /> <input type="hidden" name="contactKey" value="{$contactKey}" /> <button type="submit" name="submitMessage" id="submitMessage" class="button btn btn-default button-medium"><span>{l s='Send'}<i class="icon-chevron-right right"></i></span></button> </div> </fieldset> </form> {/if} {addJsDefL name='contact_fileDefaultHtml'}{l s='No file selected' js=1}{/addJsDefL} {addJsDefL name='contact_fileButtonHtml'}{l s='Choose File' js=1}{/addJsDefL} Edited October 17, 2017 by wampirek (see edit history) Link to comment Share on other sites More sharing options...
wampirek Posted October 17, 2017 Share Posted October 17, 2017 ok it's working, I had to clear my cache Link to comment Share on other sites More sharing options...
jacovinus Posted October 27, 2017 Share Posted October 27, 2017 https://github.com/PrestaShop/PrestaShop/pull/8168/files#diff-eae3981efc859f7a5581c7aef4b68cbd cleared my cache and worked perfectly! 10+ Link to comment Share on other sites More sharing options...
Peter Pastoor Posted October 28, 2017 Share Posted October 28, 2017 On 13-9-2017 at 11:48 AM, Matt75 said: In 1.6.1.17 you need to update your theme https://github.com/PrestaShop/PrestaShop/pull/8168/files#diff-eae3981efc859f7a5581c7aef4b68cbd It worked for me too! Thanks! Link to comment Share on other sites More sharing options...
nicolasblancom Posted November 15, 2017 Share Posted November 15, 2017 On 13/9/2017 at 11:48 AM, Matt75 said: In 1.6.1.17 you need to update your theme https://github.com/PrestaShop/PrestaShop/pull/8168/files#diff-eae3981efc859f7a5581c7aef4b68cbd It worked for me, I was using https://github.com/PrestaShop/community-theme-16 Prestashop community theme and was missing inputs in contact-form.tpl from that github link thanks Link to comment Share on other sites More sharing options...
Gomlers Posted January 25, 2018 Share Posted January 25, 2018 Can someone tell me how I can use the change from github. I don't understand what to change.. Link to comment Share on other sites More sharing options...
mbrodrigues Posted February 4, 2018 Share Posted February 4, 2018 Here is. Unzip and replace the contact-form.tpl file in your theme folder. contact-form.zip Link to comment Share on other sites More sharing options...
crsisti Posted February 25, 2018 Share Posted February 25, 2018 I don't understand what to change what to modify in https://github.com/PrestaShop/PrestaShop/pull/8168/files#diff-eae3981efc859f7a5581c7aef4b68cbd..Can anyoane please help me? Link to comment Share on other sites More sharing options...
sporenborg Posted March 19, 2018 Share Posted March 19, 2018 solved for this prob email form error sending email - Presta 1.6.1.17 https://www.prestashop.com/forums/topic/630126-email-problem-after-upgrade-to-16117/ Link to comment Share on other sites More sharing options...
ADUCOM Posted September 11, 2018 Share Posted September 11, 2018 i got same error on 1.7.3.4, can't send any emails any idea, why this issue is not solved in newer version? kindly ADursun Link to comment Share on other sites More sharing options...
nicoX Posted November 25, 2018 Share Posted November 25, 2018 (edited) What a joke, how can PrestaShop change something that is not being included in the updates? When I was on 1.6.1.11 it worked well, then I updated to 1.6.1.18 and it broke. I checked: controllers/front/ContactController.php And that change - wasn't deleted. Shouldn't it be when you update?? Then the other change is the one you need to do on your theme contact-form.tpl--adding those two lines. What a joke by PrestaShop. How can you know this, if it's not automatically updating your files when you do a minor upgrade? I mean how many now have a broken contact-form without even knowing it? Edited November 27, 2018 by nicoX (see edit history) Link to comment Share on other sites More sharing options...
nicoX Posted November 25, 2018 Share Posted November 25, 2018 (edited) On 2/4/2018 at 3:02 PM, mbrodrigues said: Here is. Unzip and replace the contact-form.tpl file in your theme folder. contact-form.zip It's not just this. You have to follow the github fix as well. I'm just surprised that the line in ContactController.php wasn't removed with an upgrade to 1.6.1.18 or even 1.6.1.22 which I have another site on. Then nobody should copy that zip file, because everyone have a custom contact us page, and that file will overwrite that page, and render the default PS page. If you can't update it yourself, get a dev to do it. Edited November 25, 2018 by nicoX (see edit history) Link to comment Share on other sites More sharing options...
soniceb Posted November 29, 2018 Share Posted November 29, 2018 It works fine, thank you! Link to comment Share on other sites More sharing options...
MariuszYerba Posted November 15, 2020 Share Posted November 15, 2020 On 9/13/2017 at 10:48 AM, Matt75 said: In 1.6.1.17 you need to update your theme https://github.com/PrestaShop/PrestaShop/pull/8168/files#diff-eae3981efc859f7a5581c7aef4b68cbd Thanks Matt75 it works for me too ! I tried everything before and didn't. Your way was so simple. Why I didn't try that before 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