2016-11-25 16 views
0

私はOC 2.0.1.1に苦労しています。管理者側には、ただ1つのRegion/Stateカラムが追加されています。私は顧客の都市のために自由なvqmodモジュールを見つけました。 Cityデータを使用して完全に動作しています。私は地域州のために修正しようとしましたが、それを作ることはできませんでした。 私の国では、都市以上の地域を使用しており、私はここで立ち往生しています。どんな助けも金になるでしょう。それはtplファイルにあなたは顧客ごとにゾーンを得ることができますOpencartの管理者に顧客地域/州の列を追加するには?

<?xml version="1.0" encoding="UTF-8"?> 
<modification> 
    <id><![CDATA[<font color="#000000"><b>Customer Cities in Admin</b></font>]]></id> 
    <version><![CDATA[1.0<br><b>OC:2.0.3.1</b>]]></version> 
    <vqmver><![CDATA[2.5.1]]></vqmver> 
    <author><![CDATA[<font color="#0C9603"><b>aljawaid</font><br><font color="#0C9603"><a href="mailto:[email protected]">[email protected]</a></font>]]></author> 
    <comment><![CDATA[ THIS FILE IS PROVIDED AS-IS WITHOUT ANY WARRANTY OR SUPPORT ]]></comment> 

    <!-- THIS EXTENSION WILL SHOW THE CUSTOMER'S SAVED CITIES IN THE CUSTOMER LIST - USEFUL IF ONLY DELIVERING TO ONE COUNTRY --> 
    <!-- THIS EXTENSION IS INSPIRED BY: http://www.opencart.com/index.php?route=extension/extension/info&extension_id=21191 --> 

<file name="admin/controller/sale/customer.php"> 

    <operation info="ADD TO CONTROLLER" error="log"> 
     <search position="before"><![CDATA[ 
     'ip'    => $result['ip'], 
     ]]></search> 
     <add><![CDATA[ 
     'city'  => $result['city'], 
     ]]></add> 
    </operation> 

</file> 

<file name="admin/model/sale/customer.php"> 

    <operation info="ADD TO MODEL" error="log"> 
     <search position="replace"><![CDATA[ 
      $sql = "SELECT *, CONCAT(c.firstname, ' ', c.lastname) AS name, cgd.name AS customer_group FROM " . DB_PREFIX . "customer c LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON (c.customer_group_id = cgd.customer_group_id) WHERE cgd.language_id = '" . (int)$this->config->get('config_language_id') . "'"; 
     ]]></search> 
     <add><![CDATA[ 
      $sql = "SELECT *, CONCAT(c.firstname, ' ', c.lastname) AS name, cgd.name AS customer_group , 
       (
        SELECT GROUP_CONCAT(ctty.city,'=',ctty.city) 
        FROM " . DB_PREFIX . "address addr 
        LEFT JOIN " . DB_PREFIX . "address ctty 
        ON (addr.city = ctty.city) 
        WHERE addr.customer_id = c.customer_id 
       ) as city 
        FROM " . DB_PREFIX . "customer c 
        LEFT JOIN " . DB_PREFIX . "customer_group_description cgd 
        ON (c.customer_group_id = cgd.customer_group_id) 
        WHERE cgd.language_id = '" . (int)$this->config->get('config_language_id') . "'"; 
     ]]></add> 
    </operation> 

</file> 

<file name="admin/view/template/sale/customer_list.tpl"> 
    <operation info="ADD COLUMN TITLE" error="log"> 
     <search position="before"><![CDATA[ 
      <td class="text-left"><?php if ($sort == 'customer_group') { ?> 
     ]]></search> 
     <add><![CDATA[ 
      <td style="font-weight:normal;" class="text-left">Location(s)</td> 
     ]]></add> 
    </operation> 

<!-- IF CUSTOMER HAS MULTIPLE LOCATIONS SAVED IN THEIR ADDRESS BOOK, THEN ALL CITIES WILL BE SHOWN --> 
<!-- IF CUSTOMER HAS NO ADDRESS THEN "NO ADDRESS" WILL BE SHOWN --> 
    <operation info="ADD SAVED CITY FOR EACH CUSTOMER" error="log"> 
     <search position="before"><![CDATA[ 
      <td class="text-left"><?php echo $customer['customer_group']; ?></td> 
     ]]></search> 
     <add><![CDATA[   
      <td style="text-align: left;"> 
      <?php 
       $get_city = explode(',',$customer['city']); 
       foreach($get_city as $i =>$key) { 
        //echo $i.' '.$key .'</br>'; 
        $separate = explode('=',$key); 
        $city_name = $separate[0]; 
      ?> 

       <span><?php if ($city_name) { ?> <i class="fa fa-map-marker" data-toggle="tooltip" data-placement="left" title="Saved in customer's address book"></i> 
       <?php } 
       else { ?><span style="font-style:italic; color:red;" data-toggle="tooltip" data-placement="right" title="This customer has not saved any addresses yet">No address</span> 
       <?php } ?> 
       <?php echo $city_name; ?></span><br>     
      <?php } ?> 
      </td>   
     ]]></add> 
    </operation> 
</file>  

</modification> 
+2

@Lajos訂正ありがとうございます。ありがとうございます。 – serkanbalta

+0

私は助けることができてうれしいです。 –

答えて

0

、その後echo

$zones = $this->db->query("SELECT zone_id FROM " . DB_PREFIX . "address WHERE customer_id = '" . $result['customer_id'] . "'"); 
$zone_info = array(); 
foreach($zones->rows as $zone){ 
    $zone_info[] = $this->model_localisation_zone->getZone($zone['zone_id'])['name']; 
} 
$data['customers'][] = array(
    'zone'  => $zone_info, 

私はvqmodファイルを作成しました。ここ は私が修正しようとしているものをvqmodモジュールであります:

<?xml version="1.0" encoding="UTF-8"?> 
<modification> 
    <id>Display customer zone in admin customer list</id> 
    <version>1</version> 
    <vqmver>2.x</vqmver> 
    <author>Mojtaba Sabeti</author> 

<file name="admin/controller/sale/customer.php"> 
    <operation error="log"> 
     <search position="after"><![CDATA[$results = $this->model_sale_customer->getCustomers($filter_data);]]></search> 
     <add><![CDATA[ 
     $this->load->model('localisation/zone'); 
     ]]></add> 
    </operation> 
    <operation error="log"> 
     <search position="replace"><![CDATA[$data['customers'][] = array(]]></search> 
     <add><![CDATA[ 
      $zones = $this->db->query("SELECT zone_id FROM " . DB_PREFIX . "address WHERE customer_id = '" . $result['customer_id'] . "'"); 
      $zone_info = array(); 
      foreach($zones->rows as $zone){ 
       $zone_info[] = $this->model_localisation_zone->getZone($zone['zone_id'])['name']; 
      } 
      $data['customers'][] = array(
       'zone'  => $zone_info, 
     ]]></add> 
    </operation> 
</file> 

<file name="admin/view/template/sale/customer_list.tpl"> 
    <operation error="log"> 
     <search position="before"><![CDATA[ 
      <td class="text-left"><?php if ($sort == 'customer_group') { ?> 
     ]]></search> 
     <add><![CDATA[ 
      <td style="font-weight:normal;" class="text-left">Zones</td> 
     ]]></add> 
    </operation> 

    <operation error="log"> 
     <search position="before"><![CDATA[ 
      <td class="text-left"><?php echo $customer['customer_group']; ?></td> 
     ]]></search> 
     <add><![CDATA[   
      <td style="text-align: left;"> 
      <?php 
       foreach($customer['zone'] as $zone){ 
        echo "<div>$zone</div>"; 
       } 
      ?> 
      </td> 
     ]]></add> 
    </operation> 
</file>  

</modification> 
+0

ありがとうございます。 – serkanbalta

+0

私の答えがあなたを助けたら、歓迎します、それを受け入れてください。 – DigitCart

+1

はい、完璧に動作します。ミロン回、兄弟ありがとう。 – serkanbalta

関連する問題