2016-03-17 133 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網站上找到免費的擴展。

相關問題