2016-03-17 2 views
1

Я пытаюсь сделать изображения заказанных продуктов появляться в почте подтверждения заказа клиента посланной после проверки. Содержимое этого письма находится в файле order.tpl и содержит такие вещи, как $ product ['name'] для имени продукта, $ product ['model'] для модели продукта. Я не знаю, какая переменная/массив хранит образ продукта или как это реализовать.продукт Opencart изображение в подтверждении заказа электронная почта

+0

Электронная почта отправляется с 'model/checkout/order.php/addOrderHistory()'. Вам придется немного изменить его. –

+0

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

ответ

4

Да. Вы должны изменить функцию model/checkout/order/addOrderHistory(). Обратите внимание, что товары любого заказа выбираются из таблицы order_product. И он не содержит поля изображения. Для этого вам необходимо создать функциональность, которая извлекает изображение продукта из таблицы product, а затем обрабатывать это изображение для дальнейшего использования.

Например, создайте любую функцию в файле catalog/model/order. как ...

public function getProductImage($product_id){ 
    $query = $this->db->query("SELECT `image` FROM `".DB_PREFIX."product` WHERE product_id = '".(int)$product_id."'"); 

    if ($query->row) { 
     return $query->row['image']; 
    } else { 
     return false; 
    } 
} 

Вызов этого метода в foreach ($order_product_query->rows as $product) { цикле как

$product_image = $this->getProductImage($product['product_id']).

Затем в том же цикле изменить размер изображения, проверяя

$this->load->model('tool/image'); 

if ($product_image) { 
    $product_image = $this->model_tool_resize($product_image, width, height); 
} 

И в вашем массиве продукт просто добавить это,

$data['products'][] = array(
'image' => $product_image, 
..... 
); 

И в вашем .tpl проверки файла

if ($product['image']){ 
    your design to display image 
} 

Это оно.

+0

Я думал, что это должно сработать, я внес некоторые изменения на страницу order.php, вот ссылка pastebin: http://pastebin.com/gMDqpvsw, но я получаю внутреннюю ошибку сервера на странице проверки, возможно, я не сделал сделайте изменения в правильных местах, помогите изучить его, спасибо, редактирует из строки 538. – bodesam

1

Электронная почта отправляется с model/checkout/order.php/addOrderHistory(). Вам нужно будет добавить свое изображение в цикл продукта. Затем в файле .tpl вам нужно будет вставить новый столбец и отобразить изображение продукта внутри него.

+0

Спасибо, мы почти там. Является ли переменная образа продукта уже доступной, как она называется? – bodesam

+0

Вам нужно будет посмотреть, доступно ли это или нет. Если нет, вы можете сделать это вручную. –

0

переменная, которую вы ищете, является изображением используйте его, как показано ниже.

<?php echo $product['image']; ?> 

вы можете найти бесплатные расширения на сайте opencart.