最土团购系统下单后自动发送邮件

今天在猪八戒上,看到有人发布任务,要求二次开发最土团购系统,用户下单支付成功后,需要发送通知邮件,闲的没事,简单看了一下,感觉很好实现。在这里把基本思路说一下。

首先,编写邮件内容函数和模板。这个可以参考订阅邮件的发送,在/include/fuction/mailer.php这个文件里,照猫画虎,添加一个处理改邮件的函数。

function mail_order($city, $team, $partner, $order,$user){}

然后再新建一个模板,mail_order.html,具体表现形式,通过css控制即可。

函数和模板搞定,只需要调用函数,就可以将邮件发送出去了。

每一订单付款后,系统都会调用统一的一个方法,static public function BuyOne($order),这个方法在ZTeam.class这个类里,只需要在这个方法的最后调用mail_order即可在订单付款之后,将邮件发送出去。

补充:有朋友建议我再写详细一点,那我就把代码贴出来好了。

在/include/fuction/mailer.php最后面,添加如下代码

//订单付款后,发送邮件通知
function mail_order($team, $partner, $order)
{
	global $INI;
	$encoding = $INI['mail']['encoding'] ? $INI['mail']['encoding'] : 'UTF-8';
	$week = array('日','一','二','三','四','五','六');
	$today = date('Y年n月j日 星期') . $week[date('w')];
	$user = Table::Fetch('user',$order['user_id']);//获取用户信息,主要是为了得到Email
	/*获取优惠券*/
	$condition = array(
			'order_id' => $order['id'],
			);
	$coupons = DB::LimitQuery('coupon', array(
				'condition' => $condition,
				));
    /*end*/
	$vars = array(
		'today' => $today,
		'team' => $team,
		'city' => $city,
		'order' => $order,
		'partner' => $partner,
		'coupons'=>$coupons,
		'help_email' => $INI['mail']['helpemail'],
		'help_mobile' => $INI['mail']['helpphone'],
		'notice_email' => $INI['mail']['reply'],
	);
	$message = render('mail_order', $vars);
	$options = array(
		'contentType' => 'text/html',
		'encoding' => $encoding,
	);
	$from = $INI['mail']['from'];
	$to = $user['email'];
	$subject = '您在'.$INI['system']['sitename'].'的订单信息';

	if ($INI['mail']['mail']=='mail') {
		Mailer::SendMail($from, $to, $subject, $message, $options);
	} else {
		Mailer::SmtpMail($from, $to, $subject, $message, $options);
	}
}

然后在include/template/目录下,新建一个模板文件mail_order.html。这个文件里,大家需要自己修改一下css代码,以便显示风格,和自己的网站相匹配。我随便写了一下,比较难看,只是把内容订单内容列出来了。代码比较多,我放到附件里,大家自行下载。

mail_order

最后,在include/classes/ZTeam.class.php中找到static public function BuyOne这个函数,在ZCredit::Buy($order['user_id'], $order);这行代码后面添加:

$partner = Table::FetchForce(‘partner’, $team['partner_id']);

mail_order($team, $partner, $order) ;

这样,购买之后,就可以自动发送邮件通知了。

其实可以做进一步的升级,比如,用户下单之后,马上发一个通知邮件,付款成功之后,再发一个通知邮件。做一些设置,某个项目是否自动发送邮件,等等。

发表评论?

8 条评论。

    • 希望楼主用最新版写下代码,可以替换的,帮帮忙,谢谢。 :neutral: :oops:

  1. 要是你把详细的制作过程写出来就好了。针对我们不懂程序的新手,都能自己添加

  2. 具体操作能不能麻烦您写出来,

    • 基本流程都写出来了,其实只要你懂一点php的知识,就可以自己写出来了。下面我简单的写一下,希望可以帮到你。

  3. 朋友,太谢谢你了。如果方便的话,能留个qq吗?想跟您请教。我的qq1010321454

  4. 是否可以发个一封邮件内包含多个团购项目,类似美团等网站的订阅邮件
    最好还能导出.eml文件

    • 发多个团购项目,很容易实现,定制一个页面就可以了
      至于eml文件,对这个不太了解

发表评论