需求说明:进入后台的Order列表,更新订单状态:Awaiting Pickup后,就会给客户发送一封希望他们能进行评论的邮件。在邮件中展示该订单下的所有产品,每个产品都有一个评论的跳转链接,点击后直接跳到产品页面,并定位到产品的评论表单,方便客户直接操作。

具体开发步骤:

第一步:修改config/config.php配置文件,这里是对Order的状态是否要发送邮件进行控制
$GLOBALS['ISC_CFG']['OrderStatusNotifications'] = '11,9,2,5,4';
改成:
$GLOBALS['ISC_CFG']['OrderStatusNotifications'] = '11,9,8,2,5,4';

第二步:修改lib/orders.php

查找:if (empty($GLOBALS['SNIPPETS']['CartItems'])) {
$emailTemplate->SetTemplate("order_status_email");
} else {
$emailTemplate->SetTemplate("order_status_downloads_email");
}
改为:
if (empty($GLOBALS['SNIPPETS']['CartItems'])) {

//arlinger info 2013-6-15
if ($status == 8) {

$query1 = "
SELECT *
FROM [|PREFIX|]order_products
WHERE orderorderid ='".$orderId."'";
$result1 = $GLOBALS['ISC_CLASS_DB']->Query($query1);

$GLOBALS['AllLi']="";  
while ($product_row1 = $GLOBALS['ISC_CLASS_DB']->Fetch($result1)) {
$GLOBALS['AllLi'].=" <li style='list-style:none;float:left;padding:15px 3% 5px 3%;width:88%;margin:10px 3% 0 3%;background:#f0f0f0;border:1px solid #e7e7e7;'><a style='color:#0074ff;text-decoration:none;font-family:Arial;' href='".prodLink(isc_html_escape($product_row1['ordprodname']))."'>".isc_html_escape($product_row1['ordprodname'])." </a>
<div style='float:left;width:100%;margin:15px 0;display:inline;'>
<a href='".prodLink(isc_html_escape($product_row1['ordprodname']))."?Reviews=ON' style='float:left;margin:0 5% 0 0;width:47%;padding:15px 0 0 0;border:1px solid #678ca8;background:#fff;height:35px;line-height:18px;text-align:center;text-decoration:none;color:#6e93af;font-size:13px;font-weight:600;'>Review this product</a>
<a  href='https://www.resellerratings.com/store/SecurityCamera2000' style='float:left;padding:15px 0 0 0;margin:0;width:47%;border:1px solid #678ca8;background:#fff;height:35px;line-height:18px;text-align:center;text-decoration:none;color:#6e93af;font-size:13px;font-weight:600;'>Feedback to Resellerratings</a></div>
</li> " ;

}

$GLOBALS['OrderReviewdHi'] = isc_html_escape($customer['custconfirstname']);
  
 $emailTemplate->SetTemplate("order_status_email_PL");
 
  
}else{
  $emailTemplate->SetTemplate("order_status_email");
}

第三步:添加了文件:/includes/classes/class.reviewpl.php和根目录下的:postreviewpl.php

/templates/__emails/下面添加了:order_status_email_PL.html,内容如下:

<html><body style="font-family: Arial; font-size: 12px;">
<div style="padding: 0 20px 0 20px;font-family:Tahoma;">       
<div style="color:#6b9dba;margin:10px 0 15px 0;text-align:center;font-size:14px;"><span style="color:#969696;font-weight:500;">Hi &nbsp;</span>%%GLOBAL_OrderReviewdHi%%<span style="color:#969696;font-size:500;">,</span></div>
<p  style="border-bottom: 1px dashed #d9d9d9;color:#656565;font-size:0.95em;margin:0 0 0 5%;padding:0 0 15px 0;line-height:20px;text-align:center;">how did this item meet your expectation? We would love your honest feedback on each of the items you purchased.</p>

<ul class="OrderItemList">
        %%GLOBAL_AllLi%%
        </ul>

</div>
</body>
</html>

PS:
1.邮件服务器会屏蔽js内容,没有查询到相关结果
2.没有验证码,产品评论不成功!?tab=ProductReviews
3.评论表单的功能修改PHP文件为:/includes/classes/class.reviewpl.php和根目录下的:postreviewpl.php

Bigcommerce: 给已完成购买的客户发送一封产品评论邮件,让客户直接进行产品评论的更多相关文章

  1. [Xcode 实际操作]八、网络与多线程-(7)使用MessageUI框架,创建并发送一封带有附件的邮件

    目录:[Swift]Xcode实际操作 本文将演示如何使用MessageUI框架,创建并发送一封带有附件的邮件. 使用邮件编辑视图控制器(MFMailComposeViewController)实现邮 ...

  2. ruby实现下订单后给客户发送手机序列号

    还有半个小时下班,写点今天做的功能,打发打发时间. 两个类,订单类和序列号类. 订单类 class GroupOrder include Mongoid::Document include Mongo ...

  3. vue 在已有的购买列表中(数据库返回的数据)修改商品数量

    连续加班一个月  连续通宵三天 到最后还是少了一个功能 心碎 简介:一个生成好的商品列表(数据库返回的数据) 首先拿到我们需要渲染的数组 在data中定义 我是在测试的时候 直接写了两条数据 下面开始 ...

  4. 从客户发送http请求到服务器返回http之间发生了什么

    由于我知识有限,可能会有模糊或者错误的地方,欢迎讨论与指正. 1.浏览器发出http请求 当用户访问一个url时,浏览器便会开始生成一个http请求. 首先获取http请求中所需要的参数,如url,c ...

  5. Spring发送基于freemarker模板的邮件

    在项目开发过程中,我们经常会遇到需要发送邮件的场景,比如:用户验证邮箱的时候,有活动通知或者提醒通知的时候……有些时候我们可能只需要发送一些简单文本内容即可,但是大多数情况下我们更希望邮件的内容是丰富 ...

  6. 直播的本质(创业者应该要从商业模式的右边开始思考,你为用户创造了什么价值?找客户并不难,但要想办法让客户不离不弃;PC端功能的丰富很重要,因为手机版通常只是一个迷你版)

    我想稍微给直播这件事浇点冷水. 的确,直播现在越来越火,YouTube凭着良好的基础建设平台前段时间也做起了直播,Facebook Live最近也加入了变脸.预定直播时间和双人录制的功能,更不用说国内 ...

  7. Powershell Mail module, 发送outbox 里的全部邮件(一个.csv文件代表一封邮件)

    把creating mail代码写到调用处,往outbox写入 mailxxx.csv文件,入面记录了邮件的主要内容 写入 #template $TMP = IMPORT-CSV "$($d ...

  8. Python模块探秘 Smtplib发送带有各种附件的邮件

    这两天对Python的邮件模块比较感兴趣,于是就查了查资料.同时在实际的编码过程中也遇到了各种各样的问题.下面我就来分享一下我与smtplib的故事. 前提条件 我的上一篇博文里面讲解了,发送邮件必须 ...

  9. Spring 发送内嵌图片的邮件 遇到的问题

    问题1:spring 发送带图片的html格式的邮件? 解决方法1:直接在发送内容里面添加 <img src="http://www.rgagnon.com/images/jht.gi ...

随机推荐

  1. 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH

    原文 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH 在项目中关于DataGrid的遇到过一些问题,其中是关于迁入CheckBox的双向 ...

  2. graph driver-device mapper-04libdevmapper基本操作

    // 创建thin pool // 调用路径:NewDeviceSet->initDevmapper->createPool 1.1 func createPool(poolName st ...

  3. [Java聊天室server]实战之二 监听类

    前言 学习不论什么一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的"多谋善断":本系列尽管涉及的是socket相关的知识,但学习之前,更 ...

  4. 前端project师,确定你的目标吧!无能的人才管他叫命运

    导语: 你为自己定过一个不靠谱的目标,是20年前的事了吧. 长大你想干什么?你的回答是什么?现在实现了吗? 如今,你每天都坐在同一个格子间的同一个电脑前,会不会感到每天都像是在复印,感到前途是模糊的, ...

  5. MSSQL、C# 、Winform、ASP.NET - 数据库备份与还原模块

    数据库备份还原类: using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  6. python学习教程(九)sqlalchemy框架的modern映射

    首先写一个modern.py文件, from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Col ...

  7. 【翻译】Sencha Ext JS 5公布

    原文:Announcing Sencha Ext JS 5 简单介绍 我代表Sencha和整个Ext JS团队,非常自豪的宣布,在今天,Sencha Ext JS 5公布了.Ext JS 5已经迈出了 ...

  8. Python Base64转码解码

    Python Base64 提供了好几种方法例如: encode, decode, encodestring, decodestring, b64encode, b64decode, standard ...

  9. Android 通过wifi调试程序【转】

    1.首先让android手机监听指定的端口: 这一步需要使用shell,因此手机上要有终端模拟器,不过网上很多,随便找个就行了,依次敲入下列几行: ? su//获取root权限 setprop ser ...

  10. haproxy redirect location和redirect prefix

    <pre name="code" class="html">redirect location <loc> [code <code ...