Как добавить дополнительные поля ввода в контактную форму OpenCart (по информации)? Специально я хочу добавить поле номера телефона в моей контактной форме, и я следил за a tutorial, но это не сработало для меня. Есть ли альтернатива?Как добавить поле для телефона в OpenCart 2.0.2.0 контактная форма
ответ
В OC 2.x по умолчанию для контактного шаблона доступен номер телефона. Я предполагаю, что вы обновили старую версию и сохранили свою старую тему?
Чтобы добавить номер телефона открыть: каталог/просмотр/тема/ваша тема/шаблон/информация/contact.tpl
И использовать следующие операции для добавления телефона информацию (которая будет исходить от телефона # присвоенного в настройках магазина).
Показать язык строка для «Telephone»:
<?php echo $text_telephone; ?>
Показать номер телефона, с настройками:
<?php echo $telephone; ?>
Я знаю, что это возможно, что вы уже решили эту проблему, но это для тех, которые все еще хотят добавить настраиваемое поле в контактную форму.
В OpenCart 2.0 по умолчанию Обратная связь страница (/index.php?route=information/contact) - Форма контакта имеет только 3 поля: Ваше имя, адрес электронной почты, и запрос
Для добавления пользовательских полей Контактный формуляр, вы можете
- купить extension (по состоянию на 5/9/2015, кажется, что я не могу найти то, что изменения непосредственно связаться с нами форма)
- Сделай сам: Для того, чтобы сделать это самостоятельно вы можете следовать за your tutorial link или следуйте инструкциям ниже
Чтобы добавить настраиваемое поле телефона в "Contact Form" в OpenCart 2.0, вам необходимо будет отредактировать 3 файла:
- \ каталог \ язык \ английский \ информация \ contact.php
- \ Каталог \ контроллер \ информация \ contact.php
- \ Каталог \ вид \ тема [YourThemeName] \ шаблон \ информация \ contact.tpl
[YourThemeName] = Независимо от темы, которые вы выбрали для вашего магазина, по умолчанию «по умолчанию " (Вы можете проверить или установить его здесь:/Admin => Systems => Settings => Выберите ваш магазин и нажмите Edit => Сохранить вкладку => Макет по умолчанию)
1. Изменить языковой файл: \ catalog \ language \ english \ information \ contact.php
a. Под строкой:
$_['entry_email'] = 'E-Mail Address';
добавить код:
$_['entry_phone'] = 'Telephone';
б.Под строкой
$_['error_email'] = 'E-Mail Address does not appear to be valid!';
Добавьте код: файл управления
$_['error_phone'] = 'Telephone is required!';
2. Изменить: \ Каталог \ контроллер \ информация \ contact.php
а. Под кодом:
$data['entry_email'] = $this->language->get('entry_email');
добавить код:
$data['entry_phone'] = $this->language->get('entry_phone');
б. Под кодом
if (isset($this->error['email'])) {
$data['error_email'] = $this->error['email'];
} else {
$data['error_email'] = '';
}
Доп.код
if (isset($this->error['phone'])) {
$data['error_phone'] = $this->error['phone'];
} else {
$data['error_phone'] = '';
}
гр. Под кодом:
if (!preg_match('/^[^\@][email protected]*.[a-z]{2,15}$/i', $this->request->post['email'])) {
$this->error['email'] = $this->language->get('error_email');
}
добавить код:
if ((utf8_strlen($this->request->post['phone']) < 1)) {
$this->error['phone'] = $this->language->get('error_phone');
}
д. Как найти код
$mail->setText($this->request->post['enquiry']);
код UPDATE в
$mail->setText($this->request->post['enquiry'] . $mail->newline . 'Telephone: ' . $this->request->post['phone']);
3. Редактирование файла шаблона: \ каталог \ вид \ тема [YourThemeName] \ шаблон \ информация \ contact.tpl
а. Под строкой:
<div class="form-group required">
<label class="col-sm-2 control-label" for="input-email"><?php echo $entry_email; ?></label>
<div class="col-sm-10">
<input type="text" name="email" value="<?php echo $email; ?>" id="input-email" class="form-control" />
<?php if ($error_email) { ?>
<div class="text-danger"><?php echo $error_email; ?></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>
После обновления выше 3 файлов, просто загрузить на сервер и тестирования. Удачи!
Под Файл - \ Каталог \ контроллер \ информация \ contact.php: НОВЫЕ КОДЫ ДОБАВЛЕННЫЕ К FIX Undefined переменной: телефон
Под Код:
if (isset($this->request->post['email'])) {
$data['email'] = $this->request->post['email'];
} else {
$data['email'] = $this->customer->getEmail();
}
Добавить код:
if (isset($this->request->post['phone'])) {
$data['phone'] = $this->request->post['phone'];
} else {
$data['phone'] = '';
}
Thanks for every one...
Actually I faced the same problem but when I used these above mentioned codes in 3 different places I got another problem which shows "<b>Notice</b>: Undefined variable: phone in <b>/home/gwbpsuxl/public_html/catalog/view/theme/default/template/information/contact.tpl</b> on line <b>127</b>" this error in **Phone option**.
I used this code "if (isset($this->request->post['phone'])) {
$data['phone'] = $this->request->post['phone'];
} else {
$data['phone'] = $this->customer->getTelephone();
}" 2 times in **contact.php** file
1 is above from it and 2 is below this code "$data['locations'][] = array(
'location_id' => $location_info['location_id'],
'name' => $location_info['name'],
'address' => nl2br($location_info['address']),
'geocode' => $location_info['geocode'],
'telephone' => $location_info['telephone'],
'fax' => $location_info['fax'],
'image' => $image,
'open' => nl2br($location_info['open']),
'comment' => $location_info['comment']
);
}
}"
, так что отредактируйте его и разъясните.