Php 如何向特定组的客户发送购买电子邮件?普雷斯塔什酒店
我正在使用prestashop 1.6。 在文件夹类中,我修改了文件Paymentmodule.php,将这行注释掉Php 如何向特定组的客户发送购买电子邮件?普雷斯塔什酒店,php,prestashop-1.6,Php,Prestashop 1.6,我正在使用prestashop 1.6。 在文件夹类中,我修改了文件Paymentmodule.php,将这行注释掉 // if (Validate::isEmail($this->context->customer->email)) { // Mail::Send( // (int)$order->id_lang, //
// if (Validate::isEmail($this->context->customer->email)) {
// Mail::Send(
// (int)$order->id_lang,
// 'order_conf',
// Mail::l('Order confirmation', (int)$order->id_lang),
// $data,
// $this->context->customer->email,
// $this->context->customer->firstname.' '.$this->context->customer->lastname,
// null,
// null,
// $file_attachement,
// null, _PS_MAIL_DIR_, false, (int)$order->id_shop
// );
// }
因此,prestashop不会在每次购买后向注册客户发送订单确认电子邮件。
有没有一种方法可以将这封名为order_conf的邮件发送给一组客户机?也许在paymentmodule.php中编写一些代码,或者使用一个模块
我正在寻找的是最简单的方式,发送确认邮件给客户的特定群体后,他们购买了一个产品。不需要是order_conf。
有什么想法吗?
谢谢你的时间
再见,条件1: 如果要向特定组的客户端发送邮件,而该特定组是要向其发送邮件的客户端的默认组
/** Here assuming you want to send mails to client of group "group 1" **/
$default_group = $this->context->customer->id_default_group;
$groups = Group::searchByName("group 1");
if($default_group == $groups['id_group']) {
// Send mail code
}
/** Here assuming you want to send mails to client of group "group 2" no matter what is default group of client. **/
$groups=$this->context->customer->getGroups();
$mail_group=Group::searchByName("group 2");
foreach ($groups as $key=>$group){
if($group=$mail_group['id_group']){
//send mail code
}
}
条件2:
如果要向特定组的客户端发送邮件,而该特定组不是要向其发送邮件的客户端的默认组
/** Here assuming you want to send mails to client of group "group 1" **/
$default_group = $this->context->customer->id_default_group;
$groups = Group::searchByName("group 1");
if($default_group == $groups['id_group']) {
// Send mail code
}
/** Here assuming you want to send mails to client of group "group 2" no matter what is default group of client. **/
$groups=$this->context->customer->getGroups();
$mail_group=Group::searchByName("group 2");
foreach ($groups as $key=>$group){
if($group=$mail_group['id_group']){
//send mail code
}
}
因此,在“第2组”中,我将该组的名称改为“Grossisti”,在“id_group”中,我将该组的id改为“6”(我在prestashop backoffice中找到了该组名称所在的同一行)。 因此,每次购买后,我都会通过这种方式向Grossisti组的所有人发送一封邮件。一切都对吗
$groups=$this->context->customer->getGroups();
$mail_group=Group::searchByName("Grossisti");
foreach ($groups as $key=>$group){
if($group=$mail_group['6']){
//send mail code
}
}
如果我想在邮件中发送一些文本,如“订单已下”,我该如何做
Ps:如果我需要注释而不是回答,很抱歉,但我需要代码的格式。您想向特定组的客户发送邮件。该组是否需要为该组中的所有客户设置默认值?您好,谢谢,我的情况是第二个。我是否必须将这些代码行添加到Paymentmodule.php?另外:“第二组”应该成为“我的组名”吗?“id_group”是否应该更改?是的,您必须在代码中添加这些行。您可以在此代码之间包含默认电子邮件代码,也可以添加此代码并向客户发送另一封您选择的模板邮件。我使用了“组2”,因为不可能记住组的id。例如:您有“私人客户”组,其中有10名成员。因此,您可以编写此字符串来代替组2,代码将“private group”的id与任何特定客户机的所有组进行比较,如果该客户机有10个成员,则它将进入if条件。如果它解决了您的问题,请进行投票,并将此答案标记为已批准。谢谢我给我的问题写了一个答案,问你一些问题,如果你读了,然后告诉我你认为那会很好,谢谢你不必替换id_组。保持代码不变,并用“Grossisti”替换第2组。我用新代码上传了文件,但什么都没有出现:邮件没有发送给Grossisti组的客户。下一步我该怎么办?那你的邮件代码一定有问题。我共享的代码是正确的,您可以在其中打印文本进行检查。我可以在paymentmodule.php中任意位置编写这些代码行,对吗?是的,但在任何函数中,否则它都会抛出错误。如果此代码有助于投票并将其标记为已接受。