которые прикреплены к материалу через элемент download. Коробочный функционал отправляет файл на почту покупателя.
Сложность в том что файл отправляется специальным элементом для почты и этот элемент никак не влияет на информацию о заказе,
вернее его шаблон. С точки зрения приложения именно материал являет товаром, поэтому элемент выступает лишь посредником для привязки файла к письму из материала.
Для того чтобы пользователь мог скачать файл не только из письма но и через личный кабинет в заказе, можно вставить следующий код в шаблон заказа.
media\zoo\applications\jbuniversal\templates\uikit\renderer\clientarea_order\_default.php
По сути это повторит функции элемента "email/download".
- <?php
- $payment = $order->getPayment();
- if ($payment && $payment->getStatus()->getCode() == '<КОД_УСПЕШНОЙ_ОПЛАТЫ>') {
- foreach ($items as $key => $item) {
- $elements = $item['item']->getElementsByType('download');
- foreach($elements as $element) {
- $file = JString::trim($element->get('file'));
- $fullPath = JPath::clean(JPATH_ROOT . '/' . $file);
- if ($file && JFile::exists($fullPath)) {
- $url = $this->app->jbrouter->element($element->identifier, $item['item']->id, 'download');
- $name = JString::trim($item->item_name);
- $size = $this->app->filesystem->formatFilesize(filesize($fullPath));
- echo '<a href="' . $url . '">' . $name . '</a> (' . $size . ')';
- }
- }
- }
- } ?>
