Дополнительное поле в форме заказа

Тема в разделе "Дизайн, оформление и шаблоны", создана пользователем Chronostyle, 19 окт 2015.

  1. Chronostyle

    Chronostyle Пользователь

    Сообщения:
    23
    Симпатии:
    0
    Подскажите как с помощью кода, добавить в форму заказа строку "Отчество".
     
  2. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    Дополнительные поля добавляются и без кода в админке. Изучите админку!!!
     
  3. Vlad

    Vlad Эксперт

    Сообщения:
    4.151
    Симпатии:
    1.004
    А что за форма заказа?
     
  4. Chronostyle

    Chronostyle Пользователь

    Сообщения:
    23
    Симпатии:
    0
    После того, как добавляется товар в корзину, переходим к оформлению заказа, там фамилия и имя, мне нужно еще добавить туда отчество.
     
  5. Chronostyle

    Chronostyle Пользователь

    Сообщения:
    23
    Симпатии:
    0
    Нет там такого.
     
  6. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    Нет настраиваемых полей? Ну тогда с помощью кода. Могу написать код за 100 руб.;)
     
  7. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    641
    лучше установите симплу. Там можно создать любые поля.
    Если делать кодом, затея не очень, тут и код добавить и вывод добавить. Можно конечно и настраиваемыми полями, но они еще пригодятся. Думаю сделать надо так. Добавить до поле, но приписывать его к фамилии. Тогда и кода меньше и данные без проблем выводятся.
     
  8. Chronostyle

    Chronostyle Пользователь

    Сообщения:
    23
    Симпатии:
    0
    Имеете ввиду чтобы одно поле именовалось "Фамилия, отчество"?
     
  9. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    641
    нет. Поле отдельное Отчество, а в базу будет записываться в поле Фамилия, но уже вместе с отчеством.
     
  10. Chronostyle

    Chronostyle Пользователь

    Сообщения:
    23
    Симпатии:
    0
    Ну и пусть, хороший вариант, мне главное знать отчество и чтобы это было обязательным полем, но как это реализовать?
     
  11. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    641
    Поле отчество при покупки без регистрации (тестировал на 2.0.1.1)

    в файле catalog\view\theme\default\template\checkout\guest.tpl

    найдем
    Код:
          <div class="form-group required">
            <label class="control-label" for="input-payment-lastname"><?php echo $entry_lastname; ?></label>
            <input type="text" name="lastname" value="<?php echo $lastname; ?>" placeholder="<?php echo $entry_lastname; ?>" id="input-payment-lastname" class="form-control" />
          </div>
    и после вставим
    Код:
           <div class="form-group required">
            <label class="control-label" for="input-payment-otch">Отчество</label>
            <input type="text" name="otch" value="<?php echo $otch; ?>" placeholder="Отчество" id="input-payment-otch" class="form-control" />
          </div>


    в файле catalog\controller\checkout\guest.php

    находим
    Код:
            if (isset($this->session->data['guest']['lastname'])) {
                $data['lastname'] = $this->session->data['guest']['lastname'];
            } else {
                $data['lastname'] = '';
            }
    а после вставим
    PHP:
            if (isset($this->session->data['guest']['otch'])) {
                
    $data['otch'] = $this->session->data['guest']['otch'];
            } else {
                
    $data['otch'] = '';
            }


    далее находим
    Код:
                if ((utf8_strlen(trim($this->request->post['lastname'])) < 1) || (utf8_strlen(trim($this->request->post['lastname'])) > 32)) {
                    $json['error']['lastname'] = $this->language->get('error_lastname');
                }
    и после вставим
    PHP:
                if ((utf8_strlen(trim($this->request->post['otch'])) < 1) || (utf8_strlen(trim($this->request->post['otch'])) > 32)) {
                    
    $json['error']['otch'] = $this->language->get('error_otch');
                }    


    далее находим
    Код:
                $this->session->data['guest']['lastname'] = $this->request->post['lastname'];
    и после вставим
    PHP:
    $this->session->data['guest']['otch'] = $this->request->post['otch']; 


    в файле catalog\controller\checkout\confirm.php

    находим
    Код:
    $order_data['lastname'] = $this->session->data['guest']['lastname'];
    и заменим его на
    Код:
    $order_data['lastname'] = $this->session->data['guest']['lastname'] . '  ' . $this->session->data['guest']['otch'];


    ну и в файле catalog\language\russian\checkout\checkout.php

    добавить
    PHP:
    $_['error_otch']                 = 'Отчество должно быть от 1 до 32 символов!';
     
    malriuz, BigSam, Vlad и ещё 1-му нравится это.
  12. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    Не понимаю. А зачем так, если есть Настраиваемые поля? Чем этот способ лучше Настраиваемого поля?
    image.jpg
     
    Последнее редактирование: 22 окт 2015
  13. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    641
    Куда данные из настраиваемого поля попадают? Правильно в отдельные поля. А я хочу эти данные еще и в счете и в заказе быстро видеть.
    Куда настраиваемые поля можно вставить? Правильно, только в определенное место, а я хочу например после факса одно поле, после имени другое.

    Тут дело даже не лучше или хуже, а в способе решения задачи. Если для выполнения задачи необходимо собрать просто данные, то поля подойдут, а если сделать манипуляции или еще что то, то нужен более тонкий подход.
     
    cotto3-3 и Chronostyle нравится это.
  14. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    Тогда надо решение в ФАК перенести, полезно для других будет.
     
  15. Chronostyle

    Chronostyle Пользователь

    Сообщения:
    23
    Симпатии:
    0
    Спасибо Вам большое, это именно то что мне нужно, буду делать.
     
  16. Mega

    Mega Пользователь

    Сообщения:
    40
    Симпатии:
    2
    Подскажите, а по какому пути в Opencart-2.1.0.2 найти страницу с настройками добавления настраиваемых полей?
     
  17. Vlad

    Vlad Эксперт

    Сообщения:
    4.151
    Симпатии:
    1.004
    Mega нравится это.
  18. metlt

    metlt Новичок

    Сообщения:
    1
    Симпатии:
    0
    Как отобразить Настраиваемое поле в распечатке "Показать счет" ?
     
  19. malriuz

    malriuz Пользователь

    Сообщения:
    31
    Симпатии:
    2
    Я сделал и у меня ничего не выдало. Я правда поставил не после фамилии, а перед. Может поможете решить, а то уже всё, что здесь видел не помогло. Может чего не правильно сделал((

     
  20. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    641
    может быть. Слепое применение инструкций не всегда приводит к положительному результату, так как нужно знать что делаете, хотя бы немного. Данная инструкция рабочая и конечно работает для стандартного шаблона и стандартного оформления.