Перейти к содержанию
alone69li

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

Рекомендуемые сообщения

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

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

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

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

 

$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();

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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();

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
28 минут назад, AWARO сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для 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'));
}

 

Изменено пользователем Gaziz
  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное вам ребята спасибо, очень помогли!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 часов назад, Gaziz сказал:

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
28 минут назад, thentru сказал:

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

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

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

 

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

Кстати 

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

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.