
В OpenCart 3.0 по умолчанию на странице “Контакты” (/index.php?route=information/contact) – контактная форма имеет только 3 поля: ваше имя, адрес электронной почты и текст сообщения.
Чтобы добавить пользовательское поле “Телефон” в контактную форму OpenCart 3.0, вам нужно будет отредактировать 3 файла:
- \catalog\language\english\information\contact.php
- \catalog\controller\information\contact.php
- \catalog\view\theme[YourThemeName]\template\information\contact.tpl
1. Редактируем файл перевода: \catalog\language\english\information\contact.php
a. После строки:
$_['entry_email'] = 'E-Mail Address';
Добавляем код:
$_['entry_phone'] = 'Telephone';
b. После строки:
$_['error_email'] = 'E-Mail Address does not appear to be valid!';
Добавляем код:
$_['error_phone'] = 'Telephone is required!';
2. Редактируем файл контроллера: \catalog\controller\information\contact.php
a. После строки:
$data['entry_email'] = $this->language->get('entry_email');
Добавляем код:
$data['entry_phone'] = $this->language->get('entry_phone');
b. После кода:
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'] = ''; }
c. После кода:
if (!preg_match('/^[^\@]+@.*.[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'); }
d. Найти код
$mail->setText($this->request->post['enquiry']);
Заменить на код:
$mail->setText($this->request->post['enquiry'] . $mail->newline . 'Telephone: ' . $this->request->post['phone']);
3. Редактируем файл шаблона: \catalog\view\theme[YourThemeName]\template\information\contact.tpl
a. После кода:
<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>
В нестандартном шаблоне контактной формы все может быть немного по другому. Поэтому включаем мозг и делаем все по аналогии.