Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

отправка письма после заказа.

24.09.2013, 02:03
Гость
Гость

подскажите ка сделать отправку письма? у меня выдает: ошибка в компоненте
Код:
<?

$shop->SaveOrder($msgID);

while (ob_end_clean());

if ($isNaked) {
echo 'OK';
} else {
$EN = nc_Core::get_object()->sub_class->get_by_id($cc_settings['myorder_sub_id'], 'EnglishName');
$HU = nc_Core::get_object()->sub_class->get_by_id($cc_settings['myorder_sub_id'], 'Hidden_URL');
header("Location: {$HU}{$EN}_$msgID.html");
}

if (!$AUTH_USER_ID) {
$hash = md5((mt_rand(1, 1000) * mt_rand(1, 100) + mt_rand(1, 10000)) / mt_rand(1, 10));
$SQL = "update Message$classID set user_hash = '$hash' where Message_ID = " . $msgID;
$db->query($SQL);
$_SESSION['user_hash'] = $hash;
}

exit;
?>
24.09.2013, 18:24
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

С виду все правильно. Мне кажется, Вы привели не тот код, на который ругается, а какой-то другой.
И у вас здесь нет функции отправки письма.
SaveOrder, конечно, помимо всего прочего отправляет и письмо (админам + покупателю), но это ведь системная функция NetCat и должна работать без доработок.
24.09.2013, 19:53
Гость
Гость

почему она не работает? отправляет только менеджеру, а покупателю нет! где смотреть то?
24.09.2013, 21:35
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Проверьте, чтобы в поле "Email, с которого высылаются письма" в настройках магазина был указан правильный емайл.
Также посмотрите логи почтового сервиса на хостинге - возможно, письма все-таки уходят, но не принимаются удаленным сервером по какой-то причине.
13.03.2019, 22:35
Pilot
Тех-Альянс

Зарегистрирован:
2007-02-20
Сообщений: 44

В стандартном компоненте заготовке Заказ
в поле "Действие после добавления объекта"
Ориентировочно на строке 50 есть строка

Код:
$system_settings = $nc_core->get_settings('', 'auth');


После чего происходит отправка письма с регистрационными данными. Так вот, это письмо ни когда не уйдёт из-за отсутсвия $system_settings['SpamFromEmail']
Для того чтобы письмо ушло необходимо

Код:
$system_settings = $nc_core->get_settings('', 'auth');


Заменить на

Код:
$system_settings = $nc_core->get_settings('', 'system');


И письмо с авторизационными данными уйдёт.

Это починил. Далее... Зачем отправлять данное письмо если есть метод отправки письма с новым заказом и регистрационными данными? Опять таки, это письмо с новым заказом и регистрационными данными ни когда не уйдёт, потому далее есть вызов

Код:
$netshop->place_order($order,$reg_data);

строка 877 в файле netcat/modules/netshop/nc_netshop.class.php имеет второй аргумент $reg_data = array()

Для сохранения заказа и прочих плюх. Методом дебага удалось понять, что в данном вызове не хватает второго аргумента, а именно сам вызов должен быть таким:

Код:

$reg_data['user_id'] = $user_id;
$reg_data['password'] = $password;
$netshop->place_order($order,$reg_data);


И чудо! Письмо с новым заказом и регистрационными данными успешно уходит! Прошу проверить и дать обратную связь.

pilot
198 196 2019-03-13 22:35:26 13312
Описание проекта