【问题标题】:Opencart: modifying email layoutsOpencart:修改电子邮件布局
【发布时间】:2016-02-22 17:26:33
【问题描述】:

我正在运行 Opencart 版本 2.0.1.1。我需要一种编辑注册订单更新电子邮件布局的方法。

我的意思是使用 HTML/CSS 控制整个布局,而不仅仅是编辑变量的文本定义。我知道这些位于:

分别是./catalog/language/english/mail/customer.php../order.php

我的主题带有一个自定义邮件,用于位于./catalog/view/theme/theme574/template/mail/order.tpl(见下文)的订单电子邮件模板。

我希望在用户注册时以及在我使用评论更新订单状态时获得这种级别的控制。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"       "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><?php echo $title; ?></title>
</head>
  <body style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #000000;">
    <div style="width: 680px;"><a href="<?php echo $store_url; ?>" title="<?php echo $store_name; ?>"><img src="<?php echo $logo; ?>" alt="<?php echo   $store_name; ?>" style="margin-bottom: 20px; border: none;" /></a>
      <p style="margin-top: 0px; margin-bottom: 20px;"><?php echo $text_greeting; ?></p>
        <?php if ($customer_id) { ?>
           <p style="margin-top: 0px; margin-bottom: 20px;"><?php echo $text_link; ?></p>
           <p style="margin-top: 0px; margin-bottom: 20px;"><a href="<?php echo $link; ?>"><?php echo $link; ?></a></p>
    ...
    ...
    ...

有人可以帮我吗?任何关于从哪里开始的提示将不胜感激。

谢谢。

【问题讨论】:

  • 我不确定我是否理解你的问题,你能澄清一下你对我们的期望吗?
  • 对于原始订单,.tpl 文件使用 HTML / CSS 生成“漂亮”的设计。例如postimg.org/image/ui5zaru3x。但是当用户注册或我发布订单更新时,它只是纯文本。我需要一种能够编辑这些电子邮件的 HTML/CSS 的方法。
  • 这些是客户的链接,向客户发送邮件的订单文件,您可以看到 Opencart 使用纯文本(不是任何 .tpl,就像您编辑一样)所以在添加您自己的 .tpl 后发送邮件,你可以解决这个问题,或者看在上帝的份上,Opencart 将添加任何逻辑和正确的方式来发送邮件:P 链接客户(github.com/opencart/opencart/blob/Branch_2.0.1.0/upload/catalog/…)订单(github.com/opencart/opencart/blob/Branch_2.0.1.0/upload/catalog/…

标签: php mysql email opencart opencart2.x


【解决方案1】:

我有同样的问题,但我使用 mailgun lib 发送邮件,我可以使用 html/css 模板 :)

如果您喜欢,请按照以下步骤操作: 1-下载mailgun库https://github.com/mailgun/mailgun-php

2-您必须编辑系统邮件系统或将您的功能添加到 opencart 系统: (我完全改变了邮件功能opencart) 我将此代码添加到 /system/library/mail.php 将 send() 重命名为 oldsend() 或任何你想要的

    //extracted mailgun lib address
    require 'mailgun/autoload.php';
    use Mailgun\Mailgun;

        public function send(){
        $mg = new Mailgun("mailgunkey goeshere");
        $domain = "your domain code";

        $mg->sendMessage($domain, array(
            'from'    => $this->from , 
            'to'      => $this->to , 
            'subject' => $this->subject , 
            'text'    => $this->text , 
            'html'    => $this->html
            ));
    }

以发送邮件为例:

     $data['text_discount'] = 'text';

        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/welcome.tpl')) {
            $html = $this->load->view($this->config->get('config_template') . '/template/mail/welcome.tpl', $data);
        } else {
            $html = $this->load->view('default/template/mail/welcome.tpl', $data);
        }
$mail->setTo($data['email']);
        $mail->setFrom($this->config->get('config_email'));
        $mail->setSender(html_entity_decode($this->config->get('config_name'),ENT_QUOTES, 'UTF-8'));
        $mail->setSubject($subject);
        $mail->setHtml($html);
        $mail->send();

这只是基本的例子:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多