2017-05-19 4 views
0

나는 prestashop 1.6을 사용하고 있습니다. 폴더 클래스에서 나는 그렇게 PrestaShop 버전은 그들이 만드는 모든 구매 후 등록의 costumers에 주문 확인 메일을 보내지 않습니다 밖으로특정 그룹의 고객에게 구매 전자 메일을 보내려면 어떻게합니까? 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 
        //  ); 
        // } 

이 라인을 주석 Paymentmodule.php 파일을 수정했습니다. 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

예, 코드에이 줄을 추가해야합니다. 이 코드 사이에 기본 전자 메일 코드를 넣거나이 코드를 추가하고 선택한 다른 메일을 클라이언트에 보낼 수 있습니다. 그룹의 ID를 기억하는 것은 불가능하기 때문에 "그룹 2"를 사용했습니다. 예 : 그룹 "개인 클라이언트"가 있고 그 안에 10 명의 구성원이 있습니다. 따라서 그룹 2에이 문자열을 쓸 수 있으며 코드는 "개인 그룹"의 ID를 특정 클라이언트의 모든 그룹과 비교할 것이며 해당 클라이언트가 10 명의 구성원 인 경우 if 조건에 입력합니다 – Nimish

+0

문제가 해결되면 투표를하고이 답변을 승인 된 것으로 표시하십시오. 감사합니다 – Nimish

0

그래서 "그룹이"대신 나를 위해 "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을 대체 할 필요가 없습니다.코드를 그대로두고 그룹 2를 "Grossisti"로 바꿉니다. – Nimish

+0

새 코드로 파일을 업로드했으나 아무 것도 표시되지 않습니다. 메일은 grossisti 그룹의 클라이언트에게 전송되지 않습니다. 다음에 무엇을해야합니까? – lorepeter

+0

그런 다음 우편물에 문제가 있어야합니다. 내가 공유 한 코드가 올바른지, 텍스트를 인쇄하여 확인할 수 있습니다. – Nimish