Ответить Новая тема Новый опрос 
 Как создать форму для отправки текста на почту?
gnargrimm
Новичок
Сообщений: 19
Регистрация: 28-04-2015


11-05-2015 20:41
Здраствуйте. На странице "quick-order" - оформления заказа требуется создать форму, которая отправит детали заказа по почту покупателю. Собственно саму форму встаил, реализовал проверку всех полей на javascript. Теперь нужно просто обработать текст в письмо и отправить на адресс покупателя.
Нашол в интернете простую отправку на почту, подкючил скрипт и при отправке он не работает. Я так понимаю преста блокирует...
Скажите пожалуйста как правильно интегрировать отправку в саму cms?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


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


12-05-2015 15:24
Текущий код:
Код:
<form class="form_check form_style" method="post" action="/store/form_processing.php">

в директории store, скорее всего, отсутствует файл form_processing.php
Это способ отправки не является верным!


Цитата:( gnargrimm @ 11-05-2015 21:41 Смотреть сообщение )
Скажите пожалуйста как правильно интегрировать отправку в саму cms?

1. Откройте файл /themes/тема/shopping-cart.tpl и добавьте подобный код:
Код:
<form method="post" action="">
    <p>
        <label for="name">Имя</label>
        <input type="text" id="name" name="name" />
    </p>
    <p class="rline">
        <label for="phone">Телефон</label>
        <input type="text" id="phone" name="phone" />
    </p>
    <p class="rline">
        <label for="mail">Эл.адрес</label>
        <input type="text" id="mail" name="mail" />
    </p>
    <p class="rline">
        <label for="comment">Комментарий</label>
        <textarea id="comment" name="comment" ></textarea>
    </p>

    <input type="hidden" name="minorder" value="1" />
    <button type="submit">Заказать!</button>
</form>


2. Откройте файл /controllers/front/OrderController.php после:
Код:
public function postProcess()
    {

добавьте подобный код:
Код:
if(Tools::isSubmit('minorder'))
{
    $products_list = '';
    foreach ($this->context->cart->getProducts() as $key => $product)
        $products_list .= $product['name'] . (isset($product['attributes']) ? ' - '.$product['attributes'] : '');

    $data = array(
        '{name}' => Tools::getValue('name'),
        '{phone}' => Tools::getValue('phone'),
        '{mail}' => Tools::getValue('mail'),
        '{comment}' => Tools::getValue('comment'),
        '{products}' => $products_list,
    );

    Mail::Send((int)$this->context->language->id, 'minorder', Mail::l('Min order'), $data, 'эл.адрес администратора', null, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')));

    unset($this->context->cart);
}


3. В директории /mails/*/ создайте файлы minorder.html и minorder.txt и добавьте необходимый текст с параметрами: {name}, {phone}, {mail}, {comment}, {products}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
gnargrimm
Новичок
Сообщений: 19
Регистрация: 28-04-2015


12-05-2015 22:38
Цитата:( Алекс @ 12-05-2015 10:24 Смотреть сообщение )

Файл method="post" action="/store/form_processing.php"> есть, н оя так понял сама преста блокирует его в целях безопасности. Спасибо большое вам! попробую сделать.
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


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


12-05-2015 22:48
Цитата:( gnargrimm @ 12-05-2015 23:38 Смотреть сообщение )
Файл /store/form_processing.php есть, н оя так понял сама преста блокирует его в целях безопасности.

Нет! PrestaShop ничего блокировать не может.
Если данный файл присутствует - удалите .htaccess и проверьте еще раз (возможно имеются правила перенаправлений)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
gnargrimm
Новичок
Сообщений: 19
Регистрация: 28-04-2015


17-05-2015 06:52
<form method="post" action=""> - тут какой скрипт должен обработать форму? Сделал все по вашей инструкции и после нажатия кнопки "отправить" просто перезагрузка и корзина не очищается, письмо не приходит...
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


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


17-05-2015 17:15
Цитата:( gnargrimm @ 17-05-2015 07:52 Смотреть сообщение )
<form method="post" action=""> - тут какой скрипт должен обработать форму?

Нет. Форма отправится на себя (на тек. контроллер).

Цитата:( gnargrimm @ 17-05-2015 07:52 Смотреть сообщение )
Сделал все по вашей инструкции и после нажатия кнопки "отправить" просто перезагрузка и корзина не очищается, письмо не приходит...

Цитата:( gnargrimm @ 11-05-2015 21:41 Смотреть сообщение )
На странице "quick-order"

Для "quick-order" необходимо код добавленный в OrderController.php переместить в OrderOpcController.php после:
Код:
parent::init();

или оставить код как есть, а в настройках переключить способ оформление заказа на стандартный в "5 шагов".
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
gnargrimm
Новичок
Сообщений: 19
Регистрация: 28-04-2015


17-05-2015 20:10
Спасибо! Работает!
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос