Ссылка на платежную квитанцию в личном кабинете
Актуально для версии 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/
рядом с теми заказами, при формировании которых был выбран способ оплаты "Платежная квитанция", будет ссылка на просмотр квитанции.