Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[Решено] Email разным админам в зависимости от группы покупателя


 Share

Recommended Posts

Всем, кто не прошел мимо большая благодарность.

Помогите разобраться.

Задача: Нужно в зависимости от группы покупателя, слать письмо на разные емаилы админу.

Делаю так и ничего не выходит.

 

$customer_group_id = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE email = '" . $order_info['email'] . "'");

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/order.tpl')) {
$html = $template->fetch($this->config->get('config_template') . '/template/mail/order.tpl');
} else {
$html = $template->fetch('default/template/checkout/mail/order.tpl');
}

$mail = new Mail(); 
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->hostname = $this->config->get('config_smtp_host');
$mail->username = $this->config->get('config_smtp_username');
$mail->password = $this->config->get('config_smtp_password');
$mail->port = $this->config->get('config_smtp_port');
$mail->timeout = $this->config->get('config_smtp_timeout');

if ($customer_group_id == 5) {
 	$mail->setTo($this->config->get('config_fax'));
 }else{
 	$mail->setTo($this->config->get('config_email'));
 }
 
//$mail->setTo($this->config->get('config_email'));
$mail->setFrom($this->config->get('config_email'));
$mail->setSender($order_info['store_name']);
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($html);
$mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
$mail->addAttachment(DIR_IMAGE . $this->config->get('config_logo'));
$mail->send();

 

Link to comment
Share on other sites


29 минут назад, spectre сказал:

1 - запрос неправильный

2 - получить группу пользователя можно так $this->customer->getGroupId();

Правильно ли я понял, что достаточно заменить запрос?

//$customer_group_id = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE email = '" . $order_info['email'] . "'");
$customer_group_id = $this->customer->getGroupId();

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/order.tpl')) {
$html = $template->fetch($this->config->get('config_template') . '/template/mail/order.tpl');
} else {
$html = $template->fetch('default/template/checkout/mail/order.tpl');
}

$mail = new Mail(); 
$mail->protocol = $this->config->get('config_mail_protocol');
$mail->parameter = $this->config->get('config_mail_parameter');
$mail->hostname = $this->config->get('config_smtp_host');
$mail->username = $this->config->get('config_smtp_username');
$mail->password = $this->config->get('config_smtp_password');
$mail->port = $this->config->get('config_smtp_port');
$mail->timeout = $this->config->get('config_smtp_timeout');

if ($customer_group_id == 5) {
 	$mail->setTo($this->config->get('config_fax'));
 }else{
 	$mail->setTo($this->config->get('config_email'));
 }
 
//$mail->setTo($this->config->get('config_email'));
$mail->setFrom($this->config->get('config_email'));
$mail->setSender($order_info['store_name']);
$mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8'));
$mail->setHtml($html);
$mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
$mail->addAttachment(DIR_IMAGE . $this->config->get('config_logo'));
$mail->send();

 

Link to comment
Share on other sites


28 минут назад, AWARO сказал:

рассылка что ли?

Да нет, это просто надо заказы опта кидать на один отдел, а розницу на другой. Емайл разный у них.

Link to comment
Share on other sites


Для 2.3. В файле catalog/model/checkout/order.php:

после

// Admin Alert Mail
if (in_array('order', (array)$this->config->get('config_mail_alert'))) {

найдите

$mail->setTo($this->config->get('config_email'));

и поменяйте на

$customer_group_id = $this->customer->getGroupId();
if ($customer_group_id == 5) {
	$mail->setTo($this->config->get('config_fax'));
}else{
	$mail->setTo($this->config->get('config_email'));
}

 

Edited by Gaziz
  • +1 2
Link to comment
Share on other sites

11 часов назад, Gaziz сказал:

$customer_group_id = $this->customer->getGroupId();

при редактировании/добавлении заказа из админки это не будет работать

используйте $customer_info

Link to comment
Share on other sites


28 минут назад, thentru сказал:

при редактировании/добавлении заказа из админки это не будет работать

используйте $customer_info

Все верно, не подумал о редактировании и добавлении через админку.

 

1 час назад, spectre сказал:

Кстати 

Id группы пользователя есть в order_info

В order_info вроде только id покупателя.

  • +1 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.