Ответить Новая тема Новый опрос 
 Как добавить еще одно поле на странице заказа ?
dreamfactor
Новичок
Сообщений: 19
Регистрация: 02-06-2014


05-08-2014 15:44
в самом шаблоне я добавил, а где еще нужно теперь прописать чтобы значение этого поля приходило в письме администратору ? (mailalerts)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


05-08-2014 19:10
Цитата:( dreamfactor @ 05-08-2014 16:44 Смотреть сообщение )
в самом шаблоне я добавил, а где еще нужно теперь прописать чтобы значение этого поля приходило в письме администратору ? (mailalerts)

Выводить значения из шаблона в письма или код невозможно!
Опишите более подробно задачу.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
dreamfactor
Новичок
Сообщений: 19
Регистрация: 02-06-2014


05-08-2014 21:05
Цитата:( Алекс @ 05-08-2014 20:10 Смотреть сообщение )
Цитата:( dreamfactor @ 05-08-2014 16:44 Смотреть сообщение )
в самом шаблоне я добавил, а где еще нужно теперь прописать чтобы значение этого поля приходило в письме администратору ? (mailalerts)
Выводить значения из шаблона в письма или код невозможно!
Опишите более подробно задачу.


у меня стоит модуль onepagechekout, как можно добавить дополнительное поле (на подобии комментария к заказу) , и чтобы это приходило в письме администратору
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


06-08-2014 12:04
Модуля onepagechekout у меня нет.
Опишу как можно добавить необходимый функционал в стандартное оформление заказа.

1. В БД добавить таблицу:
Код:
CREATE TABLE `ps_test` (
  `id_cart` INT unsigned NOT NULL,
  `text` text,
  PRIMARY KEY (`id_cart`)
) DEFAULT CHARSET=utf8;


2. Открыть /controllers/front/OrderController.php и после:
Код:
$this->processAddress();

добавить:
Код:
Db::getInstance()->AutoExecute(_DB_PREFIX_.'test', array('id_cart' => (int)$this->context->cart->id, 'text' => Tools::getValue('text')), 'INSERT');


3.Открыть /themes/ваша-тема/order-address.tpl и добавить:
Код:
<div class="clearfix">
    <p class="txt">Текст:</p>
    <p class="textarea"><textarea name="text" rows="3" cols="60"></textarea></p></div>


4. Открыть /modules/mailalerts/mailalerts.php и после:
Код:
$template = 'new_order';
\
добавить:
Код:
$text = Db::getInstance()->getValue('SELECT `text` FROM `'._DB_PREFIX_.'test` WHERE `id_cart` = '.(int)$params['cart']->id);

после:
Код:
'{lastname}' => $customer->lastname,

добавить:
Код:
'{text}' => ($text ? $text : ''),


5. В шаблоне /modules/mailalerts/mails/исо-вашего-языка/new_order.html использовать:
Код:
{text}



Если в используемом модуле одна страница (ajax) - в отдельной таблице для сохранения поля и правках контроллеров prestashop нет необходимости.
Чтобы не вносить правки в файлы prestashop лучше весь этот код упаковать в отдельный модуль.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос