2015-04-21 1 views
3

Как добавить дополнительные поля ввода в контактную форму OpenCart (по информации)? Специально я хочу добавить поле номера телефона в моей контактной форме, и я следил за a tutorial, но это не сработало для меня. Есть ли альтернатива?Как добавить поле для телефона в OpenCart 2.0.2.0 контактная форма

ответ

2

В OC 2.x по умолчанию для контактного шаблона доступен номер телефона. Я предполагаю, что вы обновили старую версию и сохранили свою старую тему?

Чтобы добавить номер телефона открыть: каталог/просмотр/тема/ваша тема/шаблон/информация/contact.tpl

И использовать следующие операции для добавления телефона информацию (которая будет исходить от телефона # присвоенного в настройках магазина).

Показать язык строка для «Telephone»:

<?php echo $text_telephone; ?> 

Показать номер телефона, с настройками:

<?php echo $telephone; ?> 
4

Я знаю, что это возможно, что вы уже решили эту проблему, но это для тех, которые все еще хотят добавить настраиваемое поле в контактную форму.

В OpenCart 2.0 по умолчанию Обратная связь страница (/index.php?route=information/contact) - Форма контакта имеет только 3 поля: Ваше имя, адрес электронной почты, и запрос

Для добавления пользовательских полей Контактный формуляр, вы можете

  1. купить extension (по состоянию на 5/9/2015, кажется, что я не могу найти то, что изменения непосредственно связаться с нами форма)
  2. Сделай сам: Для того, чтобы сделать это самостоятельно вы можете следовать за your tutorial link или следуйте инструкциям ниже

Чтобы добавить настраиваемое поле телефона в "Contact Form" в OpenCart 2.0, вам необходимо будет отредактировать 3 файла:

  1. \ каталог \ язык \ английский \ информация \ contact.php
  2. \ Каталог \ контроллер \ информация \ contact.php
  3. \ Каталог \ вид \ тема [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 файлов, просто загрузить на сервер и тестирования. Удачи!

0

Под Файл - \ Каталог \ контроллер \ информация \ 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'] = ''; 
} 
0
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'] 
       ); 
      } 
     }" 

, так что отредактируйте его и разъясните.