nikola_piter
Гуру форума
- Регистрация
- 27 Июн 2007
- Сообщения
- 221
- Реакции
- 95
Можно попробовать сделать это поле обязательным, забить туда email и сделать его скрытым.
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Согласен... Но возникает вопрос, а если заказчик таки хочет указать свой эмаил, как он это сделает, если поле скрыто?Можно попробовать сделать это поле обязательным, забить туда email и сделать его скрытым.
А если захочет в гостевом... Заказчики, они же такие - кто-то укажет телефон, а кто-то не захочет оставлять телефон, и захочет указать почтуЕсли это гостевой заказ, то он не захочет, а если регистрация, то пусть указывает.
Версия 2.0.3.1версия opencart какая?
Покопавшись в файлах движка, понял, что при формировании письма, opencart берет значение ячейки email из базы данных... Гди и что прописать чтоб письмо отправлялось при пустой ячейке, так и не нашел... Присвоение ячейке значения (какой то email ) по умолчанию - результатов не принесло.....Все правильно, письма формирует сам opencart. Варианта два... Либо копать модуль для генерации разных адресов и передаче данных движку, либо переписывать движок. За отправку отвечает catalog/model/checkout/order.php
Даже если в настройках самого магазина установлено оповещение о заказе администратору магазина по его email, opencart не будет отправлять письма если поле email не заполнено......Поправьте, если ошибаюсь, но в настройках самого магазина можно установить оповещение о заказе администратора магазина по его имейлу и не нужно танцев с бубном. У меня при гостевой регистрации поле с имейлом скрыто, но оповещения приходили исправно.
$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
$mail->smtp_username = $this->config->get('config_mail_smtp_username');
$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
$mail->smtp_port = $this->config->get('config_mail_smtp_port');
$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');
$mail->setTo($order_info['email']);
$mail->setFrom($this->config->get('config_email'));
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($html);
$mail->setText($text);
$mail->send();
if(isset($order_info['email']) && !empty($order_info['email'])){
$mail = new Mail();
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
$mail->smtp_username = $this->config->get('config_mail_smtp_username');
$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
$mail->smtp_port = $this->config->get('config_mail_smtp_port');
$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');
$mail->setTo($order_info['email']);
$mail->setFrom($this->config->get('config_email'));
$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($html);
$mail->setText($text);
$mail->send();
}
Столкнулся с проблемой оповещения администратора
Даже если в настройках самого магазина установлено оповещение о заказе администратору магазина по его email, opencart не будет отправлять письма если поле email не заполнено......
А вот чтоб поле email заполнялось автоматом, нужно (как писал уже выше) в каталоге catalog\controller\d_quickcheckout в файле payment_address.php строку
заменить на