Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Как сделать чтоб в Заказе и в письме с сайта,
в e-mail что приходит на почту, в поле от кого был указан e-mail не магазина, а человека отправившего письмо с сайта или осуществившего закз?
Чтоб можно было нормально нажать, «ответить» и отправить письмо его отправителю...

Ссылка на сообщение
Поделиться на другие сайты

В корне сайта в файле Widget.class.php в самом низу есть функция function email($to, $subject, $message, $additional_headers='')
1. Вот эту самую переменную и надо задействовать $additional_headers=''
2. Задействуйте эту переменную в формировании заголовка письма.
Для этого после $headers .= "From: $from \r\n"; вставьте $headers .= $additional_headers;
3. Теперь осталось сформировать этот добавочный заголовок - идем в файл Cart.class.php и находим

// Письмо администратору
$message = $this->smarty->fetch('../../../admin/templates/email_order_admin.tpl');
$this->email($this->settings->admin_email, 'Заказ №'.$order->order_id, $message);

4. Вместо строки $this->email($this->settings->admin_email, 'Заказ №'.$order->order_id, $message);
пишем $this->email($this->settings->admin_email, 'Заказ №'.$order->order_id, $message, "Reply-To: ".$order->email." \r\n");

Вуаля! Работайте! Удачи!

Ссылка на сообщение
Поделиться на другие сайты

Нет не получилось, в результате этого, мне приходит письмо не от e-mail покупателя, а от e-mail хоста, на котором еще есть сайты...
где-то в твоем коде ошибка :(

Ссылка на сообщение
Поделиться на другие сайты

Сама функция отправка находится в скрипте Widget.calss.php
Письмо должно приходить с того адреса, который Вы указали в настройках.

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

Нашел у тебя в коде ошибку, в пункте 4

надо было не так:
$this->email($this->settings->admin_email, 'Заказ №'.$order->order_id, $message, "Reply-To: ".$order->email." \r\n");

А так:
$this->email($this->settings->admin_email, 'Заказ №'.$order->order_id, $message, 'Reply-To: '.$order->email.' \r\n');



но, теперь \r\n приходит вместе с адресом отправителя oanoff[a]gmail.com \r\n, при удалении \r\n из кода, все слетает :(
Если " \r\n" как должно по логике быть, тоже не срабатывает, не подставляет адрес отправителя :(

что делать?

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

А из базы взять email юзера уж никак не додумались?
Перед тем как письмо отправляется на email, в базе сохраняется
Имя Email и Сообщение пользователя, так что дерзайте.
В таблице feedback все это есть.

Ссылка на сообщение
Поделиться на другие сайты

Более развернутые ответы с конкретными примерами, здесь ценятся больше чем высказывания типа — А, я Википедия...

Ссылка на сообщение
Поделиться на другие сайты
  • 5 недель спустя...

Граждане, подскажите неучу. Бодяга такая: сделал все как написал mart все работает, но вместо одного приходят два письма. Одно от нас, а другое от заказчика. Где и как исправить? Только по подробней, а то я еще не силен в этом.
Помогите установить поиск по цене, а то на родной ветке молчат. Спасибо.

Ссылка на сообщение
Поделиться на другие сайты

да выложите ссылку архивчик с протестированным и рабочим вариантом. буду благодарен, а могу и Yandex.Денег подкинуть!

Ссылка на сообщение
Поделиться на другие сайты

netright! Вам нужны два эти файла? Если да, то выложу, но рабочего нет я его исправил - это и есть протестированный. А может я чего-то не догоняю. Поясните пожалуйста.

Ссылка на сообщение
Поделиться на другие сайты

Почему после установки кода письмо которое должно идти заказчику приходит админу, а не тому кто сделал заказ?
Из-за этого мы получаем два экземпляра.

Ссылка на сообщение
Поделиться на другие сайты

Выкладываю измененые куски кода:

1 Widget.class.php:

if(!empty($this->settings->notify_from_email))
$from = "$site_name <".$this->settings->notify_from_email.">";
else
$from = "$site_name <simpla@".$_SERVER['HTTP_HOST'].">";

$headers = "MIME-Version: 1.0\n" ;
$headers .= "Content-type: text/html; charset=utf-8; \r\n";
$headers .= "From: $from \r\n";$headers .= $additional_headers;

$subject = "=?utf-8?B?".base64_encode($subject)."?=";

2 Cart.class.php:

// Письмо администратору
$message = $this->smarty->fetch('../../../admin/templates/email_order_admin.tpl');
$this->email($this->settings->admin_email, 'Заказ №'.$order->order_id, $message, 'Reply-To: '.$order->email.' \r\n');

// Письмо пользователю
if(!empty($order->email))
{
$message = $this->smarty->fetch('email_order.tpl');
$this->email($this->settings->admin_email, 'Заказ №'.$order->order_id, $message);
}

@mail($to, $subject, $message, $headers);

Кстати, как сделать, чтобы письмо пользователю тоже отправлялось? А то он не получает ответного письма.
В письме админу эл.ящик пользователя в конце имеет окончание \r\n'
Как от этого избавиться?

Ссылка на сообщение
Поделиться на другие сайты

Чтобы письмо отправлялось пользователю, нужно эту часть кода

// Письмо пользователю
if(!empty($order->email))
{
$message = $this->smarty->fetch('email_order.tpl');
$this->email($this->settings->admin_email, 'Заказ №'.$order->order_id, $message);
}

записать так

// Письмо пользователю
if(!empty($order->email))
{
$message = $this->smarty->fetch('email_order.tpl');
$this->email($order->email, 'Заказ №'.$order->order_id, $message);
}

Ссылка на сообщение
Поделиться на другие сайты

Спасибо за подсказку, у меня на нескольких хостингах письмо с "левого" адреса не хотело отправляться, я решил что это стандартное ограничение на хостингах.
В следующей версии учту эту возможность

Ссылка на сообщение
Поделиться на другие сайты

Нашел ошибку, теперь все отображается как надо. netright ты не правильно прописал концовку, из-за этого выходила /r/n/ на конце. пропиши так и все будет нормально.

// Письмо администратору
$message = $this->smarty->fetch('../../../admin/templates/email_order_admin.tpl');
$this->email($this->settings->admin_email, 'Заказ №'.$order->order_id, $message, 'Reply-To: '.$order->email." \r\n");

Ссылка на сообщение
Поделиться на другие сайты

в таком случае мне подставляется адрес не отправителя а серверный postmaster@mysite.ru
так-что проблемма не решена :(

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...