Новосибирск +7(983)

По всем вопросам :

Телеграм : @radgura

K2 store Дорабатываем отправку писем покупателю - письмо о изменении статуса заказа

Заказать доработку
Joomla 3.x

Стоимость 300


@radgura.ru
Адриена Лежена
63089
Новосибирск
Адриена Лежена
+7(983)
3067856
Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

K2 store Дорабатываем отправку писем покупателю - письмо при изменении статуса заказа

Вы можете Заказать доработку 300руб. RUB

Компонент k2_Store в стандартной комплектации, при изменении статуса заказа, отправляет один и тот же шаблон покупателю(полный текст заказа- товар, оплата, контакты и тд.)

Появилась необходимость отправлять покупателю письмо с информацией о смене статуса заказа, без подробного отчета о покупке.

Для корректировки этого процесса необходимо внести изменения в файл

/components/com_k2store/helpers/orders.php

Необходимо продублировать функцию "public static function sendUserEmail", но с новыми параметрами, назовем ее "sendUserEmailNotyfy"

public static function sendUserEmailNotyfy($user_id, $order_id, $payment_status, $order_status, $order_state_id)
{
$mainframe =JFactory::getApplication();
jimport('joomla.filesystem.file');
// grab config settings for sender name and email
$config = JFactory::getConfig();
$k2store_params = JComponentHelper::getParams('com_k2store');
$k2params = JComponentHelper::getParams('com_k2');
if(version_compare(JVERSION, '3.0', 'ge')) {
$mailfrom = $k2store_params->get('emails_defaultemail', $config->get('mailfrom'));
$fromname = $k2store_params->get('emails_defaultname', $config->get('fromname'));
} else {
$mailfrom = $k2store_params->get('emails_defaultname', $config->getValue('config.mailfrom'));
$fromname = $k2store_params->get('emails_defaultname', $config->getValue('config.fromname'));
}
$sitename = $k2store_params->get( 'sitename', $mainframe->getCfg('sitename') );
$siteurl = $k2store_params->get( 'siteurl', JURI::root() );
//now get the order table's id based on order id
$id = self::_getOrderKey($order_id);
//inventory
//TODO::move this function to the plugin.
require_once (JPATH_ADMINISTRATOR.'/components/com_k2store/library/inventory.php');
K2StoreInventory::setInventory($id, $order_state_id);
//now get the receipient
$recipient = self::_getRecipient($order_id);
if($user_id && empty($recipient->billing_first_name)) {
$recipient->name = JFactory::getUser($user_id)->name;
} else {
$recipient->name = $recipient->billing_first_name.' '.$recipient->billing_last_name;
}
$mailer =JFactory::getMailer();
$mode = 1;
$subject = 'Статус вашего заказа был изменен на : '.JText::_($order_status);
$tags = array(
'[ORDER_ID]' => $id
);
foreach ($tags as $key => $value)
{
$subject = str_replace($key, $id, $subject);
}
$msg = '';
$msg .= 'Тело письма в формате HTML, формат можно взять из файла components/com_k2store_view/order/orderemail.php';
$admin_emails = trim($k2store_params->get('admin_email')) ;
$admin_emails = explode(',',$admin_emails ) ;
//send email
if ($recipient)
{
$mailer->addRecipient($recipient->user_email);
// $mailer->addCC( $config->get('admin_email'));
//$mailer->addCC( $admin_emails );
$mailer->setSubject( $subject );
$mailer->setBody($msg);
$mailer->IsHTML($mode);
$mailer->setSender(array( $mailfrom, $fromname ));
$mailer->send();
}
//Если не нужно отправлять дубликат администраторам, то удаляем этот пункт
if($admin_emails) {
$mailer =JFactory::getMailer();
$mailer->addRecipient($admin_emails);
$mailer->setSubject( $subject );
$mailer->setBody($msg);
$mailer->IsHTML($mode);
$mailer->setSender(array( $mailfrom, $fromname ));
$mailer->send();
}
return true;
}

 Следующий шаг - меняем вызов шаблона при смене статуса, редактируем файл

/administrator/components/com_k2store/controllers/orders.php

В функции function orderstatesave() меняем строку на: 

if(isset($notify_customer) && $notify_customer == 1) {
require_once(JPATH_SITE.'/components/com_k2store/helpers/orders.php');
K2StoreOrdersHelper::sendUserEmailNotyfy($order->user_id, $order->order_id, $order->transaction_status, $order->order_state, $order->order_state_id);

 

Комментарии (0)

Здесь ещё нет оставленных комментариев.

Оставьте свой комментарий

  1. Добавление комментария от гостя.
Вложения (0 / 3)
Share Your Location

Как с нами связаться

По всем вопросам пишите  

Телеграм: @radgura

OnLine заказ

Отправить сообщение

Нажимая на кнопку «Отправить сообщение», я соглашаюсь:
* с условиями публичной оферты
* обработку моих персональных данных


RAD компоненты

Please publish modules in offcanvas position.