Перейти к содержанию
Форум поддержки пользователей VamShop

Как указать несколько получателей для копий писем с заказом?


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

День добрый.

Как указать несколько получателей для копий писем с заказом?

Этот вопрос я уже задавала и ответ даже был добавлен в FAQ

В Админке в опции получатель копий указываете адреса через запятую.
 Затем в /app/Controller/OrdersController.php правьте:
// Send to admin
if($config['SEND_EXTRA_EMAIL'] != '') {
 
// Set up mail
$this->Email->init();
$this->Email->From = $config['NEW_ORDER_FROM_EMAIL'];
$this->Email->FromName = __($config['NEW_ORDER_FROM_NAME'],true);
$this->Email->AddAddress($config['SEND_EXTRA_EMAIL']);
$this->Email->Subject = $subject;
 
// Email Body
$this->Email->Body = $body;
 
// Sending mail
$this->Email->send();
 
}
на что-то вроде:
// Send to admin
if($config['SEND_EXTRA_EMAIL'] != '') {
 
// Set up mail
$this->Email->init();
$this->Email->From = $config['NEW_ORDER_FROM_EMAIL'];
$this->Email->FromName = __($config['NEW_ORDER_FROM_NAME'],true);

$recipients = explode(',',$config['SEND_EXTRA_EMAIL']);
foreach($recipients as $key => $value)
{
$this->Email->AddAddress($value);
}

$this->Email->Subject = $subject;
 
// Email Body
$this->Email->Body = $body;
 
// Sending mail
$this->Email->send();
 
}

Но после последних обновлений, подправить файл OrdersController.php уже не получается.

Пожалуйста, подскажите как реализовать это на последней версии 2.38?

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

На сколько я понимаю, изменялась строка

$this->Email->AddAddress($config['SEND_EXTRA_EMAIL']);

Но в последней версии эта строка не активна

// Email Subject
        $subject = $email_template['EmailTemplateDescription']['subject'];
        $subject = $config['SITE_NAME'] . ' - ' . $subject;

        $body = $email_template['EmailTemplateDescription']['content'];
        $body = str_replace('{$name}', $_POST['bill_name'], $body);
        $fio = explode(" ", $_POST['bill_name']);                
        $body = str_replace('{$firstname}', isset($fio[0]) ? $fio[0] : $_POST['bill_name'], $body);
        $body = str_replace('{$lastname}', isset($fio[1]) ? $fio[1] : $_POST['bill_name'], $body);
        $body = str_replace('{$email}', $_POST['email'], $body);
        $body = str_replace('{$password}', $customer_password, $body);

        $this->Email->init();
        $this->Email->From = $config['NEW_ORDER_FROM_EMAIL'];
        $this->Email->FromName = __($config['NEW_ORDER_FROM_NAME'],true);

        // Send to customer
        $this->Email->AddAddress($order['Order']['email']);
        // Send to admin
        //$this->Email->AddCC($config['SEND_EXTRA_EMAIL']);
        $this->Email->Subject = $subject;

        // Email Body
        $this->Email->Body = $body;

        // Sending mail
        $this->Email->send();
        
        
        }    
        }   

Пробовала вставлять условие 

$recipients = explode(',',$config['SEND_EXTRA_EMAIL']);

foreach($recipients as $key => $value)

{

$this->Email->AddAddress($value);

}

после строки $this->Email->FromName = __($config['NEW_ORDER_FROM_NAME'],true);

Не помогает.

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

На сколько я понимаю, изменялась строка

$this->Email->AddAddress($config['SEND_EXTRA_EMAIL']);

Но в последней версии эта строка не активна

 

Пробовала вставлять условие 

после строки $this->Email->FromName = __($config['NEW_ORDER_FROM_NAME'],true);

Не помогает.

Смотрите ниже в файле, это не тот код Вы привели.

Начиная с 404 строки идёт нужный код, тот, что указан и faq.

Вы просто код из faq копируйте и ищите поиском по этому коду в файле /app/Controller/OrdersController.php

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

Через запутяю указали получателей копий писем в Админке - Настройки - Магазин?!

Должно работать, этот совет ведь проверялся на работающих магазинах.

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

Все еще раз проверила. Два адреса через запятую указала.

Не могу понять никак понять в чем дело. Письма не уходят ни на один из двух адресов.

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

А покупатель получает письмо?

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

 

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

Да, покупателю письма приходят.

А когда был оригинальный код, т.е. с одним получаетелм копии письма.

Админу приходило письмо или тоже не приходило!? Только покупателю приходило?!

Попробуйте в /app/Controller/OrdersController.php поменять:

				// Sending mail
				$this->Email->send();
			}
		
			// Send to admin
			if($config['SEND_EXTRA_EMAIL'] != '') {

на:

				// Sending mail
				$this->Email->send();
			}
            
            usleep(300000);
            		
			// Send to admin
			if($config['SEND_EXTRA_EMAIL'] != '') {

 

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

Когда был оригинальный код, т.е. с одним получателем копии письма приходили.

Изменение внесла, не помогло.

Изменено пользователем Losa
Ссылка на сообщение
Поделиться на другие сайты

Покажите свой исправленный файл /app/Controller/OrdersController.php и что у Вас указано в Админке - Настройки - Магазин - Настройка email - Получатель писем со страницы обратной связи

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

В Админке - Настройки - Магазин - Настройка email -

Отправлять копии писем с заказом на zakaz@globalhobby.ru,ravil@globalhobby.ru

 

OrdersController.php

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

Я тогда даже и не знаю, что сказать, вариант из faq точно рабочий, он ведь делался по вопросу пользователя, проверялся.

Может на хостинге какие-то ограничения на одномоментную отправку писем, т.е. клиенту письмо уходит, а следующее уже не отправляется из-за лимита какого-либо.

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

Ну раз всё работало и Вы в коде ничего не правили, логично предположить, что каие-то лимиты на стороне хостинга появились.

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