Автор Тема: Как вставить отправку писем в модуль  (Прочитано 52 раз)

01 Март 2018, 09:24:54
  • Старожил
  • ****
  • Сообщений: 305
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день, есть модуль который переопределяет заказ в корзине, при регистрации нового клиента в корзине писем не отправляется, как вставить функцию отправки письма при регистрации клиента в корзине, оформление заказа не одностраничное?PS1.6.
01 Март 2018, 10:29:45
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22521
  • Репутация: +17130/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Mail::Send($id_lang, $template, $subject, $template_vars, $to,$to_name = null, $from = null, $from_name = null, $file_attachment = null, $mode_smtp = null,  $template_path = _PS_MAIL_DIR_, $die = false, $id_shop = null, $bcc = null, $reply_to = null)При регистрации или как-то действии вставить в код отправку сообщения.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
01 Март 2018, 15:26:28
Ответ #2
  • Старожил
  • ****
  • Сообщений: 305
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо,
if (!Configuration::get('PS_CUSTOMER_CREATION_EMAIL')) {
            return true;
        }

        return Mail::Send(
                        $this->context->language->id, 'account', Mail::l('Welcome!'), array(
                    '{firstname}' => $customer->firstname,
                    '{lastname}' => $customer->lastname,
                    '{email}' => $customer->email,
                    '{passwd}' => Tools::getValue('passwd')), $customer->email, $customer->firstname . ' ' . $customer->lastname
        );
Это вставила.
Только ещё вопрос, я на тестовом сайте процесс проверяю, соответственно создаю пользователя на один и тот-же e-mail, пароль  сделала автоматическую генерацию, так вот письмо  приходит с самым первым паролем , авторизация тоже с ним проходит, это не критично, но как сделать чтобы перезаписывался пароль?
01 Март 2018, 15:57:37
Ответ #3
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22521
  • Репутация: +17130/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
/* получить пароль пользователя*/
$context->cookie->passwd;
$customer->passwd;
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
02 Март 2018, 12:42:45
Ответ #4
  • Старожил
  • ****
  • Сообщений: 305
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо.
Возник ещё вопрос. У меня пароль генерируется автоматически и на локалке  нормально с пароль логин можно авторизироваться, а на сайте на хостинге не даёт, в чём может быть причина?
02 Март 2018, 13:28:30
Ответ #5
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22521
  • Репутация: +17130/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Конфигурация веб сервера отличается, установленные php пакеты, настройки безопасности.
Посмотрите phpinfo.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
02 Март 2018, 19:44:23
Ответ #6
  • Старожил
  • ****
  • Сообщений: 305
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А на что там обратить внимание, я в тупике как такое может быть?
02 Март 2018, 20:28:44
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 1150
  • Репутация: +15/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В функции автогенерации пароля нет каких то особых функций php, на всех хостингах работает скрипт
static public function passwdGen($length = 8)
{
$str = 'abcdefghijkmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
for ($i = 0, $passwd = ''; $i < $length; $i++)
$passwd .= self::substr($str, mt_rand(0, self::strlen($str) - 1), 1);
return $passwd;
}

Ошибки нужно посмотреть в логе. Может быть проблема не в самой функции создания пароля, а совсем в другом.
02 Март 2018, 22:25:42
Ответ #8
  • Старожил
  • ****
  • Сообщений: 305
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пароль генерируется в value каждый раз новый, но на почту приходит не понятно какой, у меня видимо реагирует на мой id  все пароли стали приходить 12345. Просто может в базе где-то проблема, файлы одинаковые ,а база всё-же отличается.Мне не доходит почему на локалке нормально , а на хостинге нет.Что может лог показать, ошибок то не выдаёт? Зацепиться не знаю за что, если бы на локалке хоть ошибку выдавало.
03 Март 2018, 23:18:39
Ответ #9
  • Старожил
  • ****
  • Сообщений: 305
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Причина была в автозаполнеии форм, это победила, проблема ушла. :)