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, //

我正在使用prestashop 1.6。 在文件夹类中,我修改了文件Paymentmodule.php,将这行注释掉

//  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中任意位置编写这些代码行,对吗?是的,但在任何函数中,否则它都会抛出错误。如果此代码有助于投票并将其标记为已接受。