Jump to content
покупайте без комиссии
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


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 post
Share on other sites

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

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

Link to post
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 post
Share on other sites

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

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

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

Link to post
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 post
Share on other sites

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

Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

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

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

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

 

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

Кстати 

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

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

  • +1 1
Link to post
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
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • 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.