Добавление своего поля в отправку письма mailalerts

Автор BBR, 04 июля 2020, 18:24:16

« назад - далее »

BBR

Всем привет, у меня в форме имеется свои 2 поля  phone1  и adres. 
При отправке письма они разумеется не отправляются так-как нет в письме их. 

При добавлении полей в форму приходят пустые строки, на пример "Номер телефона: "Пустая строка".

Изменения разумеется внес в файлах: 
New_order.html - добавил копию блока + вписал {phone1}.
New_order.txt - добавил Номер телефона: {phone1}.
onepagecheckoutps.php - добавил строку:
protected function sendConfirmationMail(Customer $customer, $password)
    {
        if (Configuration::get('PS_CUSTOMER_CREATION_EMAIL')) {
            Mail::Send(
                $this->context->language->id,
                'account',
                Mail::l('Welcome!'),
                array('{firstname}' => $customer->firstname,
                    '{lastname}'  => $customer->lastname,
                    '{email}'     => $customer->email,
                    '{phone1}'     => $customer->phone1,
                    '{passwd}'    => $password
                ),
                $customer->email,
                $customer->firstname.' '.$customer->lastname
            );
        }
    }


pw_emailalerts.php - Добавил 2 значения:
        $template_vars = array(
            '{firstname}' => $customer->firstname,
            '{lastname}' => $customer->lastname,
            '{email}' => $customer->email,
            '{phone1}' => $customer->phone1,

и тут:
// Filling-in vars for email
        $template_vars = array(
            '{firstname}' => $customer->firstname,
            '{lastname}' => $customer->lastname,
            '{email}' => $customer->email,
            '{phone1}' => $customer->phone1,



DarinSr

В модулях onepagecheckoutps и mailalerts разные контроллеры и разные переменные шаблонов.
Данные берутся из разных таблиц.
У вас как определены дополнительные поля?

PrestaMan

Переменная phone1 вряд ли из класса Customer, скорее всего из адреса.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

BBR

#3
Цитата: DarinSr от 04 июля 2020, 19:39:31
В модулях onepagecheckoutps и mailalerts разные контроллеры и разные переменные шаблонов.
Данные берутся из разных таблиц.
У вас как определены дополнительные поля?

У меня получается созданы поля помимо стандартных в модуле быстрого заказа. - https://prnt.sc/tbsx0b
Получается что после отправки заказа через модуль OnePage Checkout надо добавить 2 поля чтобы в письме приходили помимо стандартных которые красным выделены на скрине.

DarinSr

В какой таблице сохраняет эти поля? В ps_customer?

BBR

#5
Цитата: DarinSr от 04 июля 2020, 19:54:51
В какой таблице сохраняет эти поля? В ps_customer?

ps_opc_field   - https://prnt.sc/tbt6up

DarinSr

Чтобы использоывть эти поля в модуле ps_emailalerts их нужно инициализировать в ps_emailalerts.php
Это не "$customer->phone1", а класс модуля onepagecheckoutps.
Смотрите как в модуле onepagecheckoutps определяют переменные шабонов писем, подключаете класс onepagecheckoutps в модуле ps_emailalerts и переносите переменные письма.

BBR

Цитата: DarinSr от 04 июля 2020, 20:15:38
Чтобы использоывть эти поля в модуле ps_emailalerts их нужно инициализировать в ps_emailalerts.php
Это не "$customer->phone1", а класс модуля onepagecheckoutps.
Смотрите как в модуле onepagecheckoutps определяют переменные шабонов писем, подключаете класс onepagecheckoutps в модуле ps_emailalerts и переносите переменные письма.
Я даун в этом, не могли бы что именно сделать в ps_emailalerts.php ?   прикрепил оба модуля, напишите если не сложно какой кусок кода вставить куда.

PrestaMan

Можно методом getField класса FieldClass модуля onepagecheckoutps
FieldClass::getField($id_lang, $id_shop, $object, $name_field)
получить значение любого созданного поля и передать его в шаблон письма.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!