Ссылка на платежную квитанцию в личном кабинете

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 2.9.6

Задача:

Реализация:

TPL-шаблонизатор

XSLT-шаблонизатор

В некоторых проектах, при просмотре списка совершенных покупок, возникает необходимость вывести ссылку на платежную квитанцию, если при оформлении заказа был выбран данный способ оплаты. Можно использовать так называемый личный кабинет:

http://ваш_сайт/emarket/personal/

для просмотра списка заказов.

В tpl шаблонах, данная системная страница использует шаблон:

tpls/emarket/default.tpl

в котором должен быть блок personal:

$FORMS['personal'] = <<<END
%emarket ordersList()%
END;

также, в этом же самом шаблоне необходимо прописать данные блоки если их еще нет:

$FORMS['orders_block'] = <<<END
<p>Список ваших заказов:</p>
<ul>
%items%
</ul>
END;

$FORMS['orders_block_empty'] = <<<END
<p>Заказов нет</p>
END;

$FORMS['orders_item'] = <<<END
<li>%name% (%id%) %custom receipt_link(%id%)%</li>
END;


После чего, в файл classes/modules/custom.php, после слов //TODO добавим дополнительный метод:

public function receipt_link($order_id){
		
      $objects = umiObjectsCollection::getInstance();
      $object_order = $objects->getObject($order_id);  
      $payment_id = $object_order->payment_id;
      $payment_type_id = $objects->getObject($payment_id)->getValue('payment_type_id');
      $class_name = $objects->getObject($payment_type_id)->getValue('class_name'); 
      if($class_name == 'receipt'){
        $customer_id = $object_order->customer_id;
        $customer_mail = $objects->getObject($customer_id)->getValue('email');  
        $date = $object_order->order_date;
        $getcode = sha1("{$customer_id}:{$customer_mail}:{$date}");
        $url = "/emarket/receipt/{$order_id}/{$getcode}/";
        return "<a href=\"{$url}\">Платежная квитанция</a>";
      }else{
        return "";
      }
    }

В итоге, при просмотре списка совершенный заказов на системной странице:

http://ваш_сайт/emarket/personal/

рядом с теми заказами, при формировании которых был выбран способ оплаты "Платежная квитанция", будет ссылка на просмотр квитанции.