如何在OpenCart 3.0.2.0订单发票打印中添加客户邮箱与手机号
在OpenCart 3.0.2.0订单发票中添加客户邮箱和手机号的解决方案
嘿,我来帮你搞定OpenCart 3.0.2.0订单发票里加客户邮箱和手机号的事儿,亲测可行,分几步来操作:
1. 规范语言变量(可选但推荐)
先给界面文本加个统一的语言标签,方便后续维护:
打开catalog/language/zh-cn/mail/order.php(用英文界面就改en-gb目录下的对应文件),在合适位置添加两行:
$_['text_email'] = '邮箱地址:'; $_['text_telephone'] = '手机号码:';
2. 让控制器传递数据到模板
要确保发票页面能拿到客户的邮箱和手机号数据,得修改控制器:
打开catalog/controller/mail/order.php,找到public function invoice()方法,在已有的客户姓名赋值代码后面,加上:
$data['customer_email'] = $order_info['email']; $data['customer_telephone'] = $order_info['telephone'];
这样模板就能获取到这两个字段的数据了。
3. 修改模板显示内容
最后一步是把邮箱和手机号在发票上显示出来:
打开catalog/view/theme/default/template/mail/order_invoice.twig(注意:如果用了自定义主题,一定要替换成你的主题名称,不然改默认主题的文件不会生效),找到显示客户姓名的区块(大概是下面这样):
<p><strong>{{ text_customer }}</strong> {{ customer }}</p>
在这一行下面添加:
{% if customer_email %} <p><strong>{{ text_email }}</strong> {{ customer_email }}</p> {% endif %} {% if customer_telephone %} <p><strong>{{ text_telephone }}</strong> {{ customer_telephone }}</p> {% endif %}
这里加了if判断,避免客户没填手机号/邮箱时显示空标签。
额外提醒
- 修改文件前一定要备份原文件,万一操作错了能快速恢复;
- 如果你的主题有独立的订单发票模板,必须修改对应主题下的文件;
- 改完后可以测试生成一张发票,看看效果是否符合预期。
内容的提问来源于stack exchange,提问作者Navid
相关产品推荐
相关产品推荐

