Перенос поля для ввода комментария к заказу

Тема в разделе "Общие вопросы", создана пользователем DiMoss, 23 мар 2016.

  1. DiMoss

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

    Сообщения:
    862
    Симпатии:
    236
    Что то я не могу понять как мне сохранить введённый комментарий в заказе.

    Я убрал поле для комментария из методов доставки и оплаты, и перенёс его на последний шаг Подтверждение заказа.

    В контроллере confirm.php вот это...
    PHP:
    $order_data['comment'] = $this->session->data['comment'];
    В шаблоне...
    HTML:
    <textarea name="comment" rows="2" class="form-control">
    </textarea> 
    
    Как передать данные из textarea напрямую в $order_data['comment']?
     
  2. Vlad

    Vlad Эксперт

    Сообщения:
    4.130
    Симпатии:
    1.000
    в зависимости от метода оплаты и записывается комментарий. Обычно берется из сессии, которая записывается в предыдущих шагах
     
  3. DiMoss

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

    Сообщения:
    862
    Симпатии:
    236
    То что в контроллере confirm.php данные берутся из сессии я понял!
    Только вот не нашёл связи с методами оплаты. Комментарий ведь появляется раньше чем выбор метода оплаты - в шаге выбора способа доставки. В выборе метода оплаты выводится комментарий написанный в выборе доставки - из сессии.

    Я так понял что данные передаются с помощью ajax.

    В шаблоне chekout.tpl...
    PHP:
    $(document).delegate('#button-shipping-method''click', function() {
        $.
    ajax({
            
    url'index.php?route=checkout/shipping_method/save',
            
    type'post',
            
    data: $('#collapse-shipping-method input[type=\'radio\']:checked, #collapse-shipping-method textarea'),
            
    dataType'json',
            .....................
    В контроллере shipping_method.php...
    PHP:
    public function save() {
      ........................  
      if (!
    $json) {
       
    $this->session->data['shipping_method'] = $this->session->data['shipping_methods'][$shipping[0]]['quote'][$shipping[1]];           

       
    $this->session->data['comment'] = strip_tags($this->request->post['comment']);
      }
    }
    А в....
    PHP:
    public function index() {
      ..................  
      if (isset(
    $this->session->data['comment'])) {
        
    $data['comment'] = $this->session->data['comment'];
      } else {
        
    $data['comment'] = '';
      }
    }
    В payment_method.php картина такая же.

    Только теперь мне не надо сохранять это в сессии. Нужно отправить коммент в нужную переменную по нажатию кнопки подтверждения заказа.
    Надо передать данные в контроллер с помощью ajax?
     
  4. DiMoss

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

    Сообщения:
    862
    Симпатии:
    236
    Комментарий к заказу и комментарий оплаты - 2 разные переменные.....
    Снимок.JPG
     
  5. Vlad

    Vlad Эксперт

    Сообщения:
    4.130
    Симпатии:
    1.000
    какой способ оплаты выбирается?
     
  6. DiMoss

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

    Сообщения:
    862
    Симпатии:
    236
    Пробовал разные. В контроллере способа оплаты комментарий содержится в переменной $comment и складывается он из переменных перевода.
    PHP:
    $comment  $this->language->get('text_instruction') . "\n\n";
    $comment .= $this->config->get('bank_transfer_bank' $this->config->get('config_language_id')) . "\n\n";
    $comment .= $this->language->get('text_payment');
    Комментарий к заказу, которых вбивается покупателе в ручную в итоге оказывается в контроллере checkout/confirm.php в переменной
    PHP:
    $order_data['comment'] = $this->session->data['comment'];
    А мне надо чтобы работало что то типа этого
    PHP:
    $order_data['comment'] = strip_tags($this->request->post['comment']);