Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Форма связи


Lifeamove

Recommended Posts

На странице "контакты" есть форма обратной связи:

3407cee55e4e3f2805ba28e71d87c507-prev.jp

После ввода:

  • Ваше имя
  • Е-майл - для связи
  • Сообщение

+Жмём "отправить"

На почту админу приходит письмо вида:

Тема: Имя

Текст письма: сообщение (с формы обратной связи)

Возникает вопрос!

Куда же пропал E-mail - для связи?!

То есть человек обратился с проблемой указал имя, свой емейл, текст... и ждёт ответа... а админ не знает куда отвечать...

+ Возможно ли в эту форму обратной связи добавить поле: телефон

Надіслати
Поділитися на інших сайтах


8 минут назад, Lifeamove сказал:

Куда же пропал E-mail - для связи?!

 

Он в графе "От".

 

9 минут назад, Lifeamove сказал:

Возможно ли в эту форму обратной связи добавить поле: телефон

 

Возможно.

  • +1 1
Надіслати
Поділитися на інших сайтах

@mazein Добрый вечер.

1 минуту назад, mazein сказал:

 

Он в графе "От".

В графе от: емейл админа и приходит на емейл админа

 

1 минуту назад, mazein сказал:

Возможно.

Как ?)

Надіслати
Поділитися на інших сайтах


2 минуты назад, Lifeamove сказал:

В графе от: емейл админа и приходит на емейл админа

 

По умолчанию письмо приходит от имени того, кто его написал, и обратный адрес берётся из формы.

Кто там у Вас напортачил, я не знаю.

 

4 минуты назад, Lifeamove сказал:

Как ?)

Аналогично другим полям. Попробуйте сделать, и задавайте конкретные вопросы.

  • +1 1
Надіслати
Поділитися на інших сайтах

47 минут назад, Lifeamove сказал:

Как ?)

Вот темка есть, но там старые версии. На работе где-то было решение для 2.1, завтра посмотрю.

 

 

  • +1 1
Надіслати
Поділитися на інших сайтах

Lifeamove, естественно там всё будет нормально. Смотреть надо /catalog/controller/information/contact.php

 

а именно функцию отправки письма:

			$mail = new Mail();
			$mail->protocol = $this->config->get('config_mail_protocol');
			$mail->parameter = $this->config->get('config_mail_parameter');
			$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
			$mail->smtp_username = $this->config->get('config_mail_smtp_username');
			$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
			$mail->smtp_port = $this->config->get('config_mail_smtp_port');
			$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

			$mail->setTo($this->config->get('config_email'));
			$mail->setFrom($this->request->post['email']);
			$mail->setSender(html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8'));
			$mail->setSubject(html_entity_decode(sprintf($this->language->get('email_subject'), $this->request->post['name']), ENT_QUOTES, 'UTF-8'));
			$mail->setText($this->request->post['enquiry']);
			$mail->send();

 

  • +1 1
Надіслати
Поділитися на інших сайтах

В 09.04.2017 в 21:55, ibond сказал:

Вот темка есть, но там старые версии. На работе где-то было решение для 2.1, завтра посмотрю.

Нашел, но то vqmod для версии 1.5. Добавляет поля Организация и Телефон.

<?xml version="1.0" encoding="UTF-8"?>
<modification>

    <id>Adding contact form fields organization and telephone.</id>
    <version>1.0</version>
    <author>ibond</author>

    <file name="catalog/controller/information/contact.php">
        <operation>
            <search position="replace">
                <![CDATA[$mail->setText(strip_tags(html_entity_decode($this->request->post['enquiry'], ENT_QUOTES, 'UTF-8')));]]></search>
            <add><![CDATA[
$mail_text =
"Организация: " . strip_tags(html_entity_decode($this->request->post['organization'], ENT_QUOTES, 'UTF-8')) . PHP_EOL .
"Телефон: " . strip_tags(html_entity_decode($this->request->post['phone'], ENT_QUOTES, 'UTF-8')) . PHP_EOL . PHP_EOL .
"Вопрос: " . strip_tags(html_entity_decode($this->request->post['enquiry'], ENT_QUOTES, 'UTF-8'));
$mail->setText($mail_text);
			]]></add>
        </operation>
        <operation>
            <search position="after">
                <![CDATA[$this->data['entry_name'] = $this->language->get('entry_name');]]></search>
            <add><![CDATA[
if (isset($this->request->post['organization'])) {
    $this->data['organization'] = $this->request->post['organization'];
} else {
    $this->data['organization'] = '';
}
$this->data['entry_organization'] = $this->language->get('entry_organization');
if (isset($this->error['organization'])) {
    $this->data['error_organization'] = $this->error['organization'];
} else {
    $this->data['error_organization'] = '';
}
if (isset($this->request->post['phone'])) {
    $this->data['phone'] = $this->request->post['phone'];
} else {
    $this->data['phone'] = '';
}
$this->data['entry_phone'] = $this->language->get('entry_phone');
if (isset($this->error['phone'])) {
    $this->data['error_phone'] = $this->error['phone'];
} else {
    $this->data['error_phone'] = '';
}
			]]></add>
        </operation>
        <operation>
            <search position="before">
                <![CDATA[if (!$this->ocstore->validate($this->request->post['email'])) {]]></search>
            <add><![CDATA[
if ((utf8_strlen($this->request->post['organization']) < 3) || (utf8_strlen($this->request->post['organization']) > 32)) {
    $this->error['organization'] = $this->language->get('error_organization');
}
if(!empty($this->request->post['phone'])){
    if(!preg_match("/^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/", $this->request->post['phone'])){
        $this->error['phone'] = $this->language->get('error_phone');
    }
}
			]]></add>
        </operation>
    </file>
    <file name="catalog/language/russian/information/contact.php">
        <operation>
            <search position="after">
                <![CDATA[$_['entry_name']     = 'Ваше имя:';]]></search>
            <add><![CDATA[
$_['entry_organization'] = 'Ваша организация:';
$_['error_organization'] = 'В организации должено быть от 3 до 32 символов !';
$_['entry_phone'] = 'Ваш телефон:';
$_['error_phone'] = 'Телефон должен быть от 7 до 12 цифр!';
			]]></add>
        </operation>
    </file>

    <file name="catalog/view/theme/*/template/information/contact.tpl">
        <operation>
            <search position="before" index="2">
                <![CDATA[<div class="form-group required">]]></search>
            <add><![CDATA[
<div class="form-group required">
    <label class="col-sm-2 control-label" for="input-organization"><?php echo $entry_organization; ?></label>
    <div class="col-sm-10">
        <input type="text" name="organization" value="<?php echo $organization; ?>" id="input-organization" class="form-control" />
        <?php if ($error_organization) { ?>
            <div class="text-danger"><?php echo $error_organization; ?></div>
        <?php } ?>
    </div>
</div>
<div class="form-group required">
    <label class="col-sm-2 control-label" for="input-phone"><?php echo $entry_phone; ?></label>
    <div class="col-sm-10">
        <input type="text" name="phone" value="<?php echo $phone; ?>" id="input-phone" class="form-control" />
        <?php if ($error_phone) { ?>
            <div class="text-danger"><?php echo $error_phone; ?></div>
        <?php } ?>
    </div>
</div>
			]]></add>
        </operation>
    </file>
</modification>

 

  • +1 1
Надіслати
Поділитися на інших сайтах

Проблема решена. У меня в файле  /catalog/controller/information/contact.php  был касяк, от куда он взялся неизвестно!

 

@mazein   Это ваш код?

			$mail = new Mail();
			$mail->protocol = $this->config->get('config_mail_protocol');
			$mail->parameter = $this->config->get('config_mail_parameter');
			$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
			$mail->smtp_username = $this->config->get('config_mail_smtp_username');
			$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
			$mail->smtp_port = $this->config->get('config_mail_smtp_port');
			$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

			$mail->setTo($this->config->get('config_email'));
			$mail->setFrom($this->request->post['email']);
			$mail->setSender(html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8'));
			$mail->setSubject(html_entity_decode(sprintf($this->language->get('email_subject'), $this->request->post['name']), ENT_QUOTES, 'UTF-8'));
			$mail->setText($this->request->post['enquiry']);
			$mail->send();

Ниже пишу свой и выделяю красным различия:

 

$mail = new Mail();
            $mail->protocol = $this->config->get('config_mail_protocol');
            $mail->parameter = $this->config->get('config_mail_parameter');
            $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
            $mail->smtp_username = $this->config->get('config_mail_smtp_username');
            $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
            $mail->smtp_port = $this->config->get('config_mail_smtp_port');
            $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

            

            $mail->setTo($this->config->get('config_email'));
            $mail->setFrom($this->config->get('config_email'));
            $mail->setReplyTo($this->request->post['email']);
            $mail->setSender(html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8'));
            $mail->setSubject(html_entity_decode(sprintf($this->language->get('email_subject'), $this->request->post['name']), ENT_QUOTES, 'UTF-8'));
            $mail->setText($this->request->post['enquiry']);
            $mail->send();

Надіслати
Поділитися на інших сайтах


Lifeamove, это не мой код, это код из оригинального файла  /catalog/controller/information/contact.php

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.