订单确认电子邮件中的 Opencart 产品图片

Opencart product Image in order confirmation email

我正在尝试让订购产品的图片出现在客户结账后发送的订单确认邮件中。该电子邮件的内容位于 order.tpl 文件中,其中包含产品名称的 $product['name'] 和产品型号的 $product['model'] 等内容。我不知道什么 variable/array 持有产品图像或如何实现它。

正在从 model/checkout/order.php/addOrderHistory() 发送电子邮件。您必须在产品循环中添加图像。然后在 .tpl 文件中,您必须插入新列并在其中显示产品图片。

您要查找的变量是图像 使用它如下。

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

您可以在 opencart 网站上找到免费扩展。

是的。您必须修改 model/checkout/order/addOrderHistory() 功能。请注意,任何订单的产品都是从 order_product table 中提取的。而且它不包含任何图像字段。为此,您必须创建一个功能,从 product table 中获取产品图像,然后处理该图像以进行进一步处理。

例如,在 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
}

就是这样。