2015-12-08 1 views
0

Я пытаюсь добавить настраиваемое поле в свою историю заказов в Opencart 2.x Однако мое настраиваемое поле отправляет данные в неправильный столбец базы данных.Почему мой ввод идет в неправильный столбец базы данных в Opencart 2.x?

Я добавил «check_number» в качестве своего нового поля. Как-то «check_number» отправляет свои данные в столбец «уведомлять» в базе данных order_history. «уведомлять» отправляет свои данные в столбец «check_number». Смотрите фотографии ниже для справки: order_history table order_info.php

Почему данные переключаются? Я не могу найти ошибку в моем коде, который неправильно отправляет данные.

Это мой vqmod файл со всеми изменениями:

<file name="admin/model/sale/order.php"> 
    <operation error="skip"> 
     <search position="replace"><![CDATA[ 
     $query = $this->db->query("SELECT oh.date_added, os.name AS status, oh.comment, oh.notify FROM " . DB_PREFIX . "order_history oh LEFT JOIN " . DB_PREFIX . "order_status os ON oh.order_status_id = os.order_status_id WHERE oh.order_id = '" . (int)$order_id . "' AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY oh.date_added ASC LIMIT " . (int)$start . "," . (int)$limit); 
     ]]></search> 
     <add><![CDATA[ 
     $query = $this->db->query("SELECT oh.date_added, os.name AS status, oh.comment, oh.check_number, oh.notify FROM " . DB_PREFIX . "order_history oh LEFT JOIN " . DB_PREFIX . "order_status os ON oh.order_status_id = os.order_status_id WHERE oh.order_id = '" . (int)$order_id . "' AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY oh.date_added ASC LIMIT " . (int)$start . "," . (int)$limit); 
     ]]></add> 
    </operation> 
</file> 
<file name="admin/controller/sale/order.php"> 
    <operation error="skip"> 
     <search position="after"><![CDATA[ 
     $data['entry_notify'] = $this->language->get('entry_notify'); 
     ]]></search> 
     <add><![CDATA[ 
     $data['entry_check_number'] = $this->language->get('entry_check_number'); 
     ]]></add> 
    </operation> 
    <operation error="skip"> 
     <search position="after"><![CDATA[ 
     $data['column_notify'] = $this->language->get('column_notify'); 
     ]]></search> 
     <add><![CDATA[ 
     $data['column_check_number'] = $this->language->get('column_check_number'); 
     ]]></add> 
    </operation> 
    <operation error="skip"> 
     <search position="after"><![CDATA[ 
     'notify'  => $result['notify'] ? $this->language->get('text_yes') : $this->language->get('text_no'), 
     ]]></search> 
     <add><![CDATA[ 
     'check_number'  => $result['check_number'], 
     ]]></add> 
    </operation> 
</file> 
<file name="catalog/model/checkout/order.php"> 
    <operation error="skip"> 
    <search position="replace"><![CDATA[ 
     public function addOrderHistory($order_id, $order_status_id, $comment = '', $notify = false) { 
     ]]></search> 
     <add><![CDATA[ 
     public function addOrderHistory($order_id, $order_status_id, $comment = '', $notify = false, $check_number = '') { 
     ]]></add> 
    </operation> 
    <operation error="skip"> 
    <search position="replace"><![CDATA[ 
     $this->db->query("INSERT INTO " . DB_PREFIX . "order_history SET order_id = '" . (int)$order_id . "', order_status_id = '" . (int)$order_status_id . "', notify = '" . (int)$notify . "', comment = '" . $this->db->escape($comment) . "', date_added = NOW()"); 
     ]]></search> 
     <add><![CDATA[ 
     $this->db->query("INSERT INTO " . DB_PREFIX . "order_history SET order_id = '" . (int)$order_id . "', order_status_id = '" . (int)$order_status_id . "', notify = '" . (int)$notify . "', comment = '" . $this->db->escape($comment) . "', check_number = '" . $this->db->escape($check_number) . "', date_added = NOW()"); 
     ]]></add> 
    </operation>   
</file> 
<file name="catalog/controller/api/order.php"> 
    <operation error="skip"> 
    <search position="after"><![CDATA[ 
     'notify', 
     ]]></search> 
     <add><![CDATA[ 
     'check_number', 
     ]]></add> 
    </operation> 
    <operation error="skip"> 
    <search position="replace"><![CDATA[ 
     $this->model_checkout_order->addOrderHistory($order_id, $this->request->post['order_status_id'], $this->request->post['comment'], $this->request->post['notify']); 
     ]]></search> 
     <add><![CDATA[ 
     $this->model_checkout_order->addOrderHistory($order_id, $this->request->post['order_status_id'], $this->request->post['comment'], $this->request->post['check_number'], $this->request->post['notify']); 
     ]]></add> 
    </operation>   
</file> 
<file name="admin/language/english/sale/order.php"> 
    <operation error="skip"> 
    <search position="after"><![CDATA[ 
     $_['column_notify']   = 'Customer Notified'; 
     ]]></search> 
     <add><![CDATA[ 
     $_['column_check_number']  = 'Check Number'; 
     ]]></add> 
    </operation> 
    <operation error="skip"> 
    <search position="after"><![CDATA[ 
     $_['entry_notify']    = 'Notify Customer'; 
     ]]></search> 
     <add><![CDATA[ 
     $_['entry_check_number']  = 'Check Number'; 
     ]]></add> 
    </operation>   
</file> 
<file name="admin/view/template/sale/order_info.tpl"> 
    <operation error="skip"> 
    <search position="replace" offset="2"><![CDATA[ 
     <input type="checkbox" name="notify" value="1" id="input-notify" /> 
     ]]></search> 
     <add><![CDATA[ 
     <input type="checkbox" name="notify" value="1" id="input-notify" /> 
       </div> 
      </div> 
      <div class="form-group"> 
       <label class="col-sm-2 control-label" for="input-check_number"><?php echo $entry_check_number; ?></label> 
       <div class="col-sm-10"> 
       <textarea name="check_number" rows="1" id="input-check_number" class="form-control"></textarea> 
       </div> 
      </div> 
     ]]></add> 
    </operation> 
    <operation error="skip"> 
    <search position="replace"><![CDATA[ 
     data: 'order_status_id=' + encodeURIComponent($('select[name=\'order_status_id\']').val()) + '&notify=' + ($('input[name=\'notify\']').prop('checked') ? 1 : 0) + '&append=' + ($('input[name=\'append\']').prop('checked') ? 1 : 0) + '&comment=' + encodeURIComponent($('textarea[name=\'comment\']').val()), 
     ]]></search> 
     <add><![CDATA[ 
     data: 'order_status_id=' + encodeURIComponent($('select[name=\'order_status_id\']').val()) + '&notify=' + ($('input[name=\'notify\']').prop('checked') ? 1 : 0) + '&append=' + ($('input[name=\'append\']').prop('checked') ? 1 : 0) + '&check_number=' + encodeURIComponent($('textarea[name=\'check_number\']').val()) + '&comment=' + encodeURIComponent($('textarea[name=\'comment\']').val()), 
     ]]></add> 
    </operation> 
    <operation error="skip"> 
    <search position="after"><![CDATA[ 
     $('textarea[name=\'comment\']').val(''); 
     ]]></search> 
     <add><![CDATA[ 
     $('textarea[name=\'check_number\']').val(''); 
     ]]></add> 
    </operation>   
</file> 
<file name="admin/view/template/sale/order_history.tpl"> 
    <operation error="skip"> 
    <search position="after"><![CDATA[ 
     <td class="text-left"><?php echo $column_comment; ?></td> 
     ]]></search> 
     <add><![CDATA[ 
     <td class="text-left"><?php echo $column_check_number; ?></td> 
     ]]></add> 
    </operation> 
    <operation error="skip"> 
    <search position="after"><![CDATA[ 
     <td class="text-left"><?php echo $history['comment']; ?></td> 
     ]]></search> 
     <add><![CDATA[ 
     <td class="text-left"><?php echo $history['check_number']; ?></td> 
     ]]></add> 
    </operation> 
</file> 

ответ

1

Ответ нашел на OpenCart Форум:

$this->model_checkout_order->addOrderHistory($order_id, $this->request->post['order_status_id'], $this->request->post['comment'], $this->request->post['check_number'], $this->request->post['notify']); 

Проверить номер третьего параметра дано в то время как в методе уведомит является третьим и CheckNumber является четвёртый. К данному требованию следует обращаться:

$this->model_checkout_order->addOrderHistory($order_id, $this->request->post['order_status_id'], $this->request->post['comment'], $this->request->post['notify'], $this->request->post['check_number']); 

 Смежные вопросы

  • Нет связанных вопросов^_^