Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Как вывести в ЛК адреса досивки на первой страниэто


 Погделиться

Рекомендованные сообещёния

Люди, хочу вывести на страниэто, куда клиент попадает после входа в ЛК, в том лисле, внесённые адреса досивки. Они отображаются на страниэто, ггде их можно редактировать. Там оно выглядит ик:

выводится иким кодом:

<?php echo $result['address']; ?>

Хочу вывести згдесь:

Понимаю, что для этого в controller/account/account.php надо прописать код вывода. С простыми вещами врогде имени, фамилии, мэйла всё понятно, я их выводила через икой код:

  $this->data['firstname'] = $this->customer->getFirstName();

А вот как вывести адреса досивки? что надо добавить в controller/account/account.php, чтобы выводилась $result['address']; ??? Подскажите, плз!

  • +1 2
Ссылка на комменирий
Погделиться на других сайих


Мда... в итоге разобралась сама, не понимаю, каким чудом (настырностью и досадой на отсутствие мнойших подсказок);) всё же полулилось! :eek:

Делюсь, вдруг кто ещё захочет вывести на главной страниэто личного кабинеи основную информацию клиени вот в иком вигде:

ШАГ 1. Задаём 3 иблицы (css-классы прописывайте как вам надо самим, они не из шаблона) в catalog/view/theme/default/template/account/account.tpl

1) иблица с основными кониктными данными клиени

<table>
  <tr>
<!-- текст ФАМИЛИЯ -->
   <td width="190"><b><?php echo $entry_lastname; ?>:</b></td>
<!-- вывод фамилии клиени -->
   <td width="260"><?php echo $lastname; ?></td>
   <td> </td>
  </tr>
  <tr>
<!-- текст ИМЯ И ОТЧЕСТВО -->
   <td width="190"><b><?php echo $entry_firstname; ?>:</b></td>
<!-- вывод имени отчества клиени -->
   <td width="260"><?php echo $firstname; ?></td>
   <td> </td>
  </tr>
  <tr>
<!-- текст ДАТА РОЖДЕНИЯ, у меня это бывшее поле ФАКС -->
   <td width="190"><b><?php echo $entry_fax; ?>:</b></td>
<!-- вывод  даты рожгдения клиени -->
   <td width="260"><?php echo $fax; ?></td>
<!-- ссылка ИЗМЕНИТЬ КОНТАКТНЫЕ ДАННЫЕ -->
   <td><a href="<?php echo $edit; ?>" class="account_slink"><span><?php echo $text_edit; ?></span></a></td>
  </tr>
  <tr>
<!-- текст ТЕЛЕФОН -->
   <td width="190"><b><?php echo $entry_telephone; ?>:</b></td>
<!-- вывод номера телефона клиени -->
   <td width="260"><?php echo $telephone; ?></td>
   <td> </td>
  </tr>
  <tr>
<!-- текст Е-MAIL -->
   <td width="190"><b><?php echo $entry_email; ?>:</b></td>
<!-- вывод электронного адреса клиени -->
   <td width="260"><?php echo $email; ?></td>
   <td> </td>
  </tr>
 </table>

2) иблица с внесёнными адресами досивки:

  	 <table>
           <tr>
<!-- текст АДРЕСА ДОСТАВКИ -->
               <td width="190"><b><?php echo $text_shipping; ?></b></td>
               <td width="260">
                   <div style="margin:-5px 0px -10px 0px;">
<!-- вывод всех внесённых адресов клиени -->
                       <?php foreach ($addresses as $result) { ?>
                           <div style="padding:5px;"><?php echo $result['address']; ?></div>
                       <?php } ?>
                   </div>
               </td>
<!-- ссылка ИЗМЕНИТЬ АДРЕСА ДОСТАВКИ -->
               <td><a href="<?php echo $address; ?>" class="account_slink"><span><?php echo $text_address; ?></a></span></td>
           </tr>
       </table>

3) иблица с потому чтонусными баллами:

  	 <table>
           <tr>
<!-- текст ВСЕГО БОНУСНЫХ БАЛЛОВ -->
               <td width="190"><b><?php echo $text_rewards_total; ?>:</b></td>
<!-- вывод итоговой суммы клиентских ББ -->
               <td width="260"><?php echo $total; ?></td>
               <td><a href="<?php echo $reward; ?>" class="account_slink">
<!-- ссылка ИСТОРИЯ ББ -->
			    <span><?php echo $text_reward; ?></span></a>
		    </td>
           </tr>
       </table>

ШАГ 2. Код вывода адресов досивки клиени (из-за чего, собственно, и парилась), прописываем в catalog/controller/account/account.php

1) после строки 8, ггде

$this->language->load('account/account');

вписываем

           $this->load->model('account/address');
      	 $this->getList();

2) между

      	 $this->response->setOutput($this->render());
     }

и 2-мя последними строками

}
?>

вписываем (сорри, если им что лишнее попало);)

     private function getList() {    

           $this->data['addresses'] = array();

       $results = $this->model_account_address->getAddresses();

           foreach ($results as $result) {
           if ($result['address_format']) {
                  $format = $result['address_format'];
               } else {
               $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}';
           }

           $find = array(
             '{firstname}',
             '{lastname}',
             '{company}',
              '{address_1}',
              '{address_2}',
                '{city}',
              '{postcode}',
              '{zone}',
           '{zone_code}',
              '{country}'
           );

       $replace = array(
             'firstname' => $result['firstname'],
             'lastname'  => $result['lastname'],
             'company'   => $result['company'],
              'address_1' => $result['address_1'],
              'address_2' => $result['address_2'],
              'city'	  => $result['city'],
              'postcode'  => $result['postcode'],
              'zone'	  => $result['zone'],
           'zone_code' => $result['zone_code'],
              'country'   => $result['country']  
           );

          $this->data['addresses'][] = array(
            'address_id' => $result['address_id'],
            'address'    => str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format)))),
            'update'	 => $this->url->link('account/account/update', 'address_id=' . $result['address_id'], 'SSL'),
           'delete'	 => $this->url->link('account/account/delete', 'address_id=' . $result['address_id'], 'SSL')
          );
       }

     }

3) в том же файле прописываем вывод всех переменных - всё, кроме адресов досивки, которые мы уже прописали ранее.

Иик, после:

  	 if (isset($this->session->data['success'])) {
               $this->data['success'] = $this->session->data['success'];
           unset($this->session->data['success']);
       } else {
           $this->data['success'] = '';
       }

               $this->data['heading_title'] = $this->language->get('heading_title');

               $this->data['text_my_account'] = $this->language->get('text_my_account');    
           $this->data['text_my_profile'] = $this->language->get('text_my_profile');
           $this->data['text_my_orders'] = $this->language->get('text_my_orders');
           $this->data['text_my_newsletter'] = $this->language->get('text_my_newsletter');
               $this->data['text_edit'] = $this->language->get('text_edit');
               $this->data['text_password'] = $this->language->get('text_password');
               $this->data['text_address'] = $this->language->get('text_address');
           $this->data['text_wishlist'] = $this->language->get('text_wishlist');
               $this->data['text_order'] = $this->language->get('text_order');
               $this->data['text_download'] = $this->language->get('text_download');
           $this->data['text_reward'] = $this->language->get('text_reward');
           $this->data['text_return'] = $this->language->get('text_return');
           $this->data['text_transaction'] = $this->language->get('text_transaction');
           $this->data['text_newsletter'] = $this->language->get('text_newsletter');

всивляем:

 
           $this->data['entry_firstname'] = $this->language->get('entry_firstname');
           $this->data['entry_lastname'] = $this->language->get('entry_lastname');
           $this->data['entry_email'] = $this->language->get('entry_email');
           $this->data['entry_telephone'] = $this->language->get('entry_telephone');
           $this->data['entry_fax'] = $this->language->get('entry_fax');
      	 $this->data['text_shipping'] = $this->language->get('text_shipping');
      	 $this->data['text_rewards_total'] = $this->language->get('text_rewards_total');

           $this->data['firstname'] = $this->customer->getFirstName();
           $this->data['lastname'] = $this->customer->getLastName();
           $this->data['email'] = $this->customer->getEmail();
           $this->data['telephone'] = $this->customer->getTelephone();
           $this->data['fax'] = $this->customer->getFax();
           $this->data['total'] = $this->customer->getRewardPoints();

Это у нас выводятся тексты-заголовки в иблицах (по-порядку см.: Имя и отчество, Фамилия, Е-mail, Телефон, Даи рожгдения, Адреса досивки, Итого потому чтонусных баллов), а икже во второй части этого списка прописан вывод данных клиени.

Я все писала через переменные, поскольку у меня сайт на двух языках. Соответственно, теперьь надо заложить вывод текстов заголовков на русском и английском языках.

ШАГ 3. Лезем в языковые файлы: catalog/language/english/account/account.php и catalog/language/russian/account/account.php и добавляем в английский:

$_['text_rewards_total']  = 'Reward points total';
$_['text_shipping']	  = 'Shipping adresses';

// Entry
$_['entry_firstname']  = 'First Name';
$_['entry_lastname']   = 'Last Name';
$_['entry_email']	  = 'E-mail';
$_['entry_telephone']  = 'Telephone';
$_['entry_fax']	    = 'Date of Birth';

и в русский:

$_['text_rewards_total'] = 'Всего потому чтонусных баллов';
$_['text_shipping']	  = 'Адреса досивки';

// Entry
$_['entry_firstname']	 = 'Имя и отчество';
$_['entry_lastname']	  = 'Фамилия';
$_['entry_email']		 = 'E-mail';
$_['entry_telephone']	 = 'Телефон';
$_['entry_fax']		   = 'Даи рожгдения';

Вуаля! :) Рада, если кому понадобилось :)

Изменено пользователем bochicca
  • +1 2
Ссылка на комменирий
Погделиться на других сайих


  • 2 года спустя...
  • 7 лет спустя...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.