2016-10-04 12 views
8

opencartの管理者注文ページにカスタムフィールドを追加します。Opencart管理者の[注文情報]ページにカスタムフィールドを追加

  1. oc_order.order_id = oc_custom_table.order_idが、その後の管理順序リストにoc_custom_table.commentを表示する場合のような値を比較します。
  2. 管理注文情報ページに同じものを表示します。

すべてのすべてのクエリがあるadmin_model_order.phpページにカスタム関数を追加しました。

public function getCustomTable($order_id) { 
     $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "custom_table WHERE order_id = '" . (int)$order_id . "'"); 

     return $query->rows; 
    }

コントローラのページがかなり混雑しています。変数を追加する場所がわからないため、注文固有の情報が表示されます。言語で

、私はちょうど$ _text_custom_variable =「テスト」のような言語変数を定義する必要があります。右?テンプレートファイルの場合は、値を表示する場所を選択するだけです。

私はOpencart 2.0バージョンを使用しています。

[EDIT]:わかりましたので、私はそれのためのvqmodの1を参照してVQMODを書くことができましたが、それでもデータをプルアップすることはできません。私は、一次リスト内のデータを追加しようとしたエラーTrying to get property of non-object

を取得します。

<!--Template File --> 
<file name="admin/view/template/sale/order_list.tpl"> 
     <operation> 
      <search position="before"><![CDATA[ 
      <td class="text-left"><?php echo $order['date_added']; ?></td> 
      ]]></search> 
      <add><![CDATA[ 
      <td class="text-right"><?php echo 'CO'. $order['custom_orders'];?></td> 
      ]]></add> 
     </operation> 
     <operation> 
      <search position="before"><![CDATA[ 
      <td class="text-left"><?php if ($sort == 'o.date_added') { ?> 
      ]]></search> 
      <add><![CDATA[ 
      <td class="text-right">custom orders <i class="fa fa-shopping-cart"></i></td> 
      ]]></add> 
     </operation>   
    </file> 
<!--Model File --> 
    <file name="admin/model/sale/order.php"> 
     <operation> 
      <search position="before"><![CDATA[ 
      public function getTotalEmailsByProductsOrdered($products) { 
      ]]></search> 
      <add><![CDATA[ 
      public function getCustomOrderNumber($order_id) { 
      $custom_orders =''; 
      $query = $this->db->query("SELECT o.order_id, s.external_order_number, s.custom_order_number 
             FROM oc_order o 
             LEFT JOIN " . DB_PREFIX . "custom_orders s ON (s.external_order_number = o.order_id) 
             WHERE o.order_id = '" . (int)$order_id . "'"); 
       foreach ($query->rows as $row) { 

       $custom_orders += $this->custom_orders->$row['custom_orders']; 
       } 
       return $custom_orders; 
       } 


      ]]></add> 
     </operation>   
    </file> 
<!--Controller File --> 
    <file name="admin/controller/sale/order.php"> 
     <operation> 
      <search position="before"><![CDATA[ 
       'delete'  => $this->url->link('sale/order/delete', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL') 
      ]]></search> 
      <add><![CDATA[ 
       'custom_orders'  => $this->model_sale_order->getCustomOrderNumber($result['order_id']), 
      ]]></add> 
     </operation>   
    </file> 
+0

おそらく 'public function getCustomTable($ order_id)'が必要ないかもしれないので、 '/ admin/model/sale/order.php'を見てください。 Opencartモジュールの開発に精通していない場合は、開発者に連絡して** vQmod **(Opencartのコアファイルを変更しないでください)を求めてください。 – kanenas

+0

コアファイルを編集するのが快適でないため、私は実際にvqmodを作成します。私は別のクエリを実行しているので、私はその関数が必要だと思った。私はopencartストアでそのようなvqmodsを見つけることができませんでしたので、私はそれを試してみると思った。 –

+0

こんにちは私は完全なファイルを追加しました。まだデータがありません –

答えて

2

私はこれを自分で理解することができました。そして、これは私が理解したものです。私は間違っているかもしれないが、単純なコードが働いた。

私は、管理順セクションの変更をしていたし、変更がで行われている方法を把握することが重要である。モデルのセクションでは、良いと考えメソッドを使用して、クエリを追加したり、現在のクエリを編集します。コントローラーと同じです。 list-order_list(getList())またはorder_info(getInfo)セクションとして表示しようとしている場合。それは良い人には簡単かもしれませんが、私のために、これは私の最初のものなので、多くの時間がかかりました。

は以下VQMOD形式で作業コードです。

<modification> 
    <id><![CDATA[custom order list]]></id> 
    <version>1</version> 
    <vqmver>2.X</vqmver> 
    <author>customAuthor</author> 
    <file name="admin/language/english/sale/order.php"> 
     <operation> 
      <search position="after"><![CDATA[ 
      $_['text_order_id']       = 'Order ID:'; 
      ]]></search> 
      <add><![CDATA[ 
      $_['text_custom_order_number']       = 'custom:'; 
      ]]></add> 
     </operation> 
     <operation> 
      <search position="after"><![CDATA[ 
      $_['column_order_id']       = 'Order ID'; 
      ]]></search> 
      <add><![CDATA[ 
      $_['column_custom_order_number']       = 'custom <i class="fa fa-shopping-cart"></i>'; 
      ]]></add> 
     </operation> 

    </file> 
    <file name="admin/view/template/sale/order_list.tpl"> 

     <operation> 
      <search position="after"><![CDATA[ 
      <a href="<?php echo $sort_order; ?>"><?php echo $column_order_id; ?></a> 
      ]]></search> 
      <add><![CDATA[ 
      <!-- custom --> 
        <td class="text-left"> 
         <?php echo $column_custom_order_number; ?></a> 
        </td> 

      <!-- custom --> 
      ]]></add> 
     </operation> 
     <operation> 
      <search position="after"><![CDATA[ 
      <td class="text-right"><?php echo $order['order_id']; ?></td> 
      ]]></search> 
      <add><![CDATA[ 
      <td class="text-left"><?php if(!empty($order['cu_orders'])){echo "CU".$order['cu_orders'];} else{echo " ";} ?></td> 
      ]]></add> 
     </operation> 

    </file> 
    <file name="admin/view/template/sale/order_info.tpl"> 

     <operation> 
      <search position="after" offset="1"><![CDATA[ 
      <td>#<?php echo $order_id; ?></td> 
      ]]></search> 
      <add><![CDATA[ 
      <!-- Shopgate --> 
        <tr> 
         <td><?php echo $text_custom_order_number; ?></td> 
         <td><?php if (!empty($custom_order_number)) { ?> 
          <?php echo 'CU'.$custom_order_number; ?> 
          <?php } else { ?> 
          <?php echo " "; ?> 
          <?php } ?> 
         </td> 

        </tr> 

      <!-- Shopgate --> 
      ]]></add> 
     </operation>   
    </file> 
    <file name="admin/model/sale/order.php"> 
    <!-- getOrder() Modifications --> 
     <operation> 
      <search position="replace"><![CDATA[ 
      (SELECT CONCAT(c.firstname, ' ', c.lastname) FROM " . DB_PREFIX . "customer c WHERE c.customer_id = o.customer_id) AS customer 
      ]]></search> 
      <add><![CDATA[ 
      (SELECT CONCAT(c.firstname, ' ', c.lastname) FROM " . DB_PREFIX . "customer c WHERE c.customer_id = o.customer_id) AS customer, (SELECT s.custom_order_number FROM " . DB_PREFIX . "custom_orders s WHERE s.custom_order_number = o.order_id) AS custom_order_number 
      ]]></add> 
     </operation> 
     <operation> 
      <search position="after"><![CDATA[ 
      'order_id'    => $order_query->row['order_id'], 
      ]]></search> 
      <add><![CDATA[ 
      'custom_order_number'    => $order_query->row['custom_order_number'], 
      ]]></add> 
     </operation> 
     <!-- getOrderS() Modifications --> 
     <operation> 
      <search position="replace"><![CDATA[ 
      CONCAT(o.firstname, ' ', o.lastname) AS customer, 
      ]]></search> 
      <add><![CDATA[ 
      CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT s.custom_order_number FROM " . DB_PREFIX . "custom_orders s WHERE s.custom_order_number = o.order_id) AS custom_order_number, 
      ]]></add> 
     </operation> 

    </file> 
    <file name="admin/controller/sale/order.php"> 
    <!-- getList() Modifications --> 
     <operation> 
      <search position="after"><![CDATA[ 
       'order_id'  => $result['order_id'], 
      ]]></search> 
      <add><![CDATA[ 
       'cu_orders'  => $result['custom_order_number'], 
      ]]></add> 
     </operation> 
    <!-- getForm() Modifications --> 
     <operation> 
      <search position="after"><![CDATA[ 
       $data['store_id'] = $order_info['store_id']; 
      ]]></search> 
      <add><![CDATA[ 
       $data['custom_order_number'] = $order_info['custom_order_number']; 
      ]]></add> 
     </operation> 
     <!-- getInfo() Modifications --> 
     <operation> 
      <search position="after"><![CDATA[ 
       $data['text_order_id'] = $this->language->get('text_order_id'); 
      ]]></search> 
      <add><![CDATA[ 
       $data['text_custom_order_number'] = $this->language->get('text_custom_order_number'); 
      ]]></add> 
     </operation> 
     <operation> 
      <search position="after"><![CDATA[ 
       $data['store_name'] = $order_info['store_name']; 
      ]]></search> 
      <add><![CDATA[ 
       $data['custom_order_number'] = $order_info['custom_order_number']; 
      ]]></add> 
     </operation> 

    </file>   
</modification> 
関連する問題