Контакты
  • evgenylebedevv@gmail.com
  • +7 960 255 15 53
  • L.E.V.rus
 

Использование несколько почтовых ящиков, в зависимости от города доставки. OpenCart

Несколько почтовых ящиков на Opencart

Если например магазин работает в нескольких городах и вы хотите распределить заказы по разным менеджерам, то можно добавить при оформлении заказа в корзине дополнительный пункт меню “Выбор Города”, в зависимости от выбора, письма будут уходить в разные почтовые ящики:

Данное описание приведено на OpenCart Версии 1.5.6.4 с модулем доставки Simple v 4.5.16.

Порядок действий

В модуле доставки Simple создаем дополнительные поля для городов, выбираем вкладку “Поля“:

 

Создаем новое поле:

 

Вводим настройки:

 

Вторая закладка:

 

В адресе доставки добавляем созданные поля:

 

Выбираем в главном меню закладку “Страны“:

 

Выбираем “Изменить“:

 

Вводим значения для формирования писем-уведомлений:

 

В файле catalog/model/checkout/order.php после строк:

				$mail->port = $this->config->get('config_smtp_port');
				$mail->timeout = $this->config->get('config_smtp_timeout');
				$mail->setTo($order_info['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->send();
			}

 

Вставляем код для подгрузки значения города из базы:

// подгружаем из базы значение города, которое ввёл клиент. В данном случае магазин работает через модуль заказов Simple, поэтому названия столбцов баз могут отличаться.
			$shipping_city = $this->db->query("SELECT shipping_city_1 FROM ". DB_PREFIX . "order_simple_fields WHERE order_id = '" . (int)$order_id ."'");

 

Названия переменных можно увидеть в базе данных:

 

Сразу на ним вставляем код для переключения почты в зависимости от города:

			switch ($shipping_city->row['shipping_city_1']) {
				case 'Москва':
					$sendToMail = 'pervaya_pochta@yandex.ru';
					break;

				case 'Санкт-Петербург':
					$sendToMail= 'vtoraya_pochta@bk.ru';
					break;
				
				default:
					$sendToMail = $this->config->get('config_email');
					break;
			}

 

Дальше в блоке:

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

Добавляем:


				$mail->setTo($sendToMail); // устанавливаем нашу переменную
				//$mail->setTo($this->config->get('config_email')); Этот старый код можно закомментить

 

Enjoy!

Поделись, если оказалось полезно :)
Нет Комментариев

Написать комментарий