Доброго времени. Подскажите, как вывести пользовательские поля ("Настраиваемые поля" в зависимости от перевода, файл который за них отвечает sale/custom_field) в конечном счете который можно распечатать, то есть в файле invoice? Создал дополнительное поле при доставке и хочу его выводить в счете... Как это реализовать?
Верно... они же описаны в одном контроллере, все что нужно это просто вывести в нужном месте. Спасибо за наводку.
Не получается, вывожу таким образом: PHP: <?php foreach ($shipping_custom_fields as $custom_field) { ?><tr data-sort="<?php echo $custom_field['sort_order'] + 1; ?>"><b><?php echo $custom_field['name']; ?>:</b><b><?php echo $custom_field['value']; ?></b> </td> В логах выдает: Undefined variable: shipping_custom_fields... Не могу понять в какой области его нужно описать именно для sale/order/invoice
В файле order_info.tpl описан этот фрагмент.... Его контроллер order.php, и этот же контроллер, если я правильно все понял, привязан к order_invoice.tpl... В итоге я подумал, если контроллер order.php служит как для order_invoice.tpl так и для order_info.tpl, то почему же просто не вывести по аналогии нужные мне поля... Логично, но при такой конструкции что-то не так... Значит, в файле order.php есть часть которая отвечает именно за order_invoice.tpl, вот нужно найти эту часть и добавить в обработку shipping_custom_fields. Если я все правильно понял...
Да, все верно но это не беда invoice() Код: $data['orders'][] = array( 'payment_custom_field' => $order_info['payment_custom_field'], 'shipping_custom_field' => $order_info['shipping_custom_field'],
Всеравно не выводит... лог: 2016-12-21 22:08:07 - PHP Notice: Undefined variable: custom_field in admin/view/template/sale/order_invoice.tpl on line 60 2016-12-21 22:08:07 - PHP Notice: Undefined variable: custom_field in admin/view/template/sale/order_invoice.tpl on line 61 2016-12-21 22:08:07 - PHP Notice: Undefined variable: shipping_custom_fields in admin/view/template/sale/order_invoice.tpl on line 62 2016-12-21 22:08:07 - PHP Warning: Invalid argument supplied for foreach() in admin/view/template/sale/order_invoice.tpl on line 62
Весь код из invoice() не влазит. Покажу только фрагмент куда вставляю: PHP: foreach ($totals as $total) { $total_data[] = array( 'title' => $total['title'], 'text' => $this->currency->format($total['value'], $order_info['currency_code'], $order_info['currency_value']), ); } $data['orders'][] = array( 'order_id' => $order_id, 'invoice_no' => $invoice_no, 'date_added' => date($this->language->get('date_format_short'), strtotime($order_info['date_added'])), 'store_name' => $order_info['store_name'], 'store_url' => rtrim($order_info['store_url'], '/'), 'store_address' => nl2br($store_address), 'store_email' => $store_email, 'store_telephone' => $store_telephone, 'store_fax' => $store_fax, 'email' => $order_info['email'], 'telephone' => $order_info['telephone'], 'shipping_address' => $shipping_address, 'shipping_method' => $order_info['shipping_method'], 'payment_address' => $payment_address, 'payment_method' => $order_info['payment_method'], 'product' => $product_data, 'voucher' => $voucher_data, 'total' => $total_data, 'payment_custom_field' => $order_info['payment_custom_field'], 'shipping_custom_field' => $order_info['shipping_custom_field'], 'comment' => nl2br($order_info['comment']) ); } } $this->response->setOutput($this->load->view('sale/order_invoice.tpl', $data)); } Посмотрел, нету ни одного модификатора который затрагивает этот файл...
Внутри function info() есть такой фрагмент, строка у меня примерно 1087. Спойлер PHP: // Custom Fields $this->load->model('sale/custom_field'); $data['account_custom_fields'] = array(); $custom_fields = $this->model_sale_custom_field->getCustomFields(); foreach ($custom_fields as $custom_field) { if ($custom_field['location'] == 'account' && isset($order_info['custom_field'][$custom_field['custom_field_id']])) { if ($custom_field['type'] == 'select' || $custom_field['type'] == 'radio') { $custom_field_value_info = $this->model_sale_custom_field->getCustomFieldValue($order_info['custom_field'][$custom_field['custom_field_id']]); if ($custom_field_value_info) { $data['account_custom_fields'][] = array( 'name' => $custom_field['name'], 'value' => $custom_field_value_info['name'] ); } } if ($custom_field['type'] == 'checkbox' && is_array($order_info['custom_field'][$custom_field['custom_field_id']])) { foreach ($order_info['custom_field'][$custom_field['custom_field_id']] as $custom_field_value_id) { $custom_field_value_info = $this->model_sale_custom_field->getCustomFieldValue($custom_field_value_id); if ($custom_field_value_info) { $data['account_custom_fields'][] = array( 'name' => $custom_field['name'], 'value' => $custom_field_value_info['name'] ); } } } if ($custom_field['type'] == 'text' || $custom_field['type'] == 'textarea' || $custom_field['type'] == 'file' || $custom_field['type'] == 'date' || $custom_field['type'] == 'datetime' || $custom_field['type'] == 'time') { $data['account_custom_fields'][] = array( 'name' => $custom_field['name'], 'value' => $order_info['custom_field'][$custom_field['custom_field_id']] ); } if ($custom_field['type'] == 'file') { $upload_info = $this->model_tool_upload->getUploadByCode($order_info['custom_field'][$custom_field['custom_field_id']]); if ($upload_info) { $data['account_custom_fields'][] = array( 'name' => $custom_field['name'], 'value' => $upload_info['name'] ); } } } }
так вы ж неправильно готовите Код: <?php foreach ($order['shipping_custom_fields'] as $custom_field) { ?> <tr data-sort="<?php echo $custom_field['sort_order'] + 1; ?>"> <b><?php echo $custom_field['name']; ?>:</b> <b><?php echo $custom_field['value']; ?></b> </td>
Хм, не сильно ясна картина, я даже без проверки вывожу таким образом: <?php echo $custom_field['name']; ?> : <?php echo $custom_field['value']; ?> Но всеравно никакого значения не получаю на выходе кроме двоеточия