2017-05-19 65 views
0

我正在使用prestashop 1.6。 在文件夾類我修改的文件Paymentmodule.php註釋本線出如何將購買電子郵件發送給特定組的客戶? prestashop

// 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不,他們盡一切購買後發送到註冊的costumers的訂單確認電子郵件。 有沒有辦法將這個稱爲order_conf的郵件發送給一組客戶端?也許在paymentmodule.php中編寫一些代碼,或者使用模塊編寫代碼?

我正在尋找的是在購買產品後向特定組的客戶發送確認郵件的最簡單方法。不需要是order_conf。 任何想法? 感謝您的時間 再見

+0

您想要將郵件發送到特定組的客戶端。對於那些位於該組中的所有客戶,該組是否需要默認? – Nimish

回答

0

條件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 
} 

條件2

如果你想發郵件給特定羣體和特定羣體的客戶是不是要發送郵件人的客戶端的默認組。

/** 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 
    } 
} 
+0

嗨,謝謝, 我的狀況是第二。我是否必須將這些代碼行添加到Paymentmodule.php?另外:如果「組2」成爲「我的組名」?並且'id_group'是否改變? – lorepeter

+0

是的,你必須在你的代碼中添加這些行。您可以在此代碼之間附上默認的電子郵件代碼,或者您可以添加此代碼並將您所選模板的另一封郵件發送給客戶。我已經使用了「第2組」,因爲不可能記住組的標識。例如:你有組「私人客戶」,並有10個成員。所以你可以寫這個字符串代替組2,代碼將比較「私人組」和任何特定客戶端的所有組,如果該客戶端在10個成員中,那麼它將進入條件 – Nimish

+0

如果它解決了你的問題進行投票並將此答案標記爲已批准。謝謝 – Nimish

0

因此,在地方「組2」的我把組這對我來說是「Grossisti」和地方「id_group」我把它是「6」的組ID的名稱(我在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:對不起,如果我應該評論而不是回答,但我需要格式化的代碼。

+0

你不必替換id_group。將代碼保持原樣並用「Grossisti」代替第2組 – Nimish

+0

我用新代碼上傳了該文件,但沒有出現任何內容:郵件沒有發送到grossisti組的客戶端。接下來我應該做什麼? – lorepeter

+0

然後在你的郵件代碼中一定有一些問題。我分享的代碼是正確的,你可以通過打印文本來檢查。 – Nimish

相關問題