В общем суть рецепта описана в названии темы. Поехали...
1. Для отправки сообщений я использовал сервис СМС-Услуги. Вам нужно на нем зарегистрироваться, после чего скачать php класс из раздела интеграция.
2. Далее переходим в папку
сайт\libraries
Создаем в ней например папку sms и перемещаем из скаченного архива 2 файла.
3. Далее перейдите в личный кабинет сервиса в раздел Настройки->Безопасность и API, и добавьте логин с паролем
4. Открываем файл конфигурации
сайт\libraries\sms\config.php
Вводим ваш логин и пароль который вы установили в 3 шаге.
5. Добавляем параметры для JBZoo
Открываем файл настроек приложения
сайт\media\zoo\applications\jbuniversal\config\basket.xml
В удобное для вас место вставляем код
<!-- SMS Notification system -->
<param name="@spacer" type="jbspacer" default="-= Настройка СМС уведомлений =-"/>
<param name="notificaction-sms" type="jbbool" default="1" label="Оповестить при создании заказа"
description=""/>
<param name="admin-phones" type="textarea" default="" label="Телефоны администраторов"
description="Вводите номера телефонов с новой строки"/>
<param name="element-userphone" type="jbelementlist" default="" label="Телефон пользователя"
description="" types="text"/>
<param name="element-username" type="jbelementlist" default="" label="Имя пользователя"
description="" types="text"/>
У меня он стоит после данной строки
<param name="email-user-layout-payment" type="jbemaillayoutlist" default="item.order.paymentemail"
label="JBZOO_CART_USER_EMAIL_LAYOUT_PAYMENT" description="JBZOO_CART_USER_EMAIL_LAYOUT_PAYMENT_DESC"/>
Теперь если мы в настройках приложения откроем вкладку корзина - то увидим наши, только что созданные параметры для СМС информирования.
У нас появились 4 параметра, с первым я думаю все понятно. Второй параметр - телефоны администраторов использует текстовое поле, т.к бывают случаи что смс должно приходить нескольким людям, поэтому с каждой новой строчки вы можете вписывать номер телефона - по аналогии с элементом jbcolor. В третьем параметре выбирайте поле из формы где пользователь вводит свой номер. Четвертый параметр - это имя пользователя, оно нужно для передачи в смс.
6. Делаем отправку сообщений.
Открываем файл
сайт\media\zoo\applications\jbuniversal\framework\events\jbevent.basket.php
После этого условия
if ((int)$appParams->get('notificaction-create', 1)) {
.....
}
Добавляем следующий код:
$totalPrice = $item->getElement('1af7e792-bcff-4a6c-9bdb-dd5023b0251a')->getTotalPrice();
if ((int)$appParams->get('global.jbzoo_cart_config.notificaction-sms', 1)) {
jimport('sms.transport');
$smsApi = new Transport();
$adminPhones = $app->jbstring->parseLines($appParams->get('global.jbzoo_cart_config.admin-phones'));
$userNameElementId = $appParams->get('global.jbzoo_cart_config.element-username');
$userPhoneElementId = $appParams->get('global.jbzoo_cart_config.element-userphone');
if ($adminPhones && $usernameElement = $item->getElement($userNameElementId)) {
$userNameData = $usernameElement->data();
if (isset($userNameData[0]['value']) && !empty($userNameData[0]['value'])) {
$adminMessage = 'Поступил новый заказ от ' . $userNameData[0]['value'] .
'. На сумму ' . $app->jbmoney->toFormat($totalPrice, $appParams->get('currency', 'RUB'));
$adminSend = $smsApi->send(array(
'text' => $adminMessage,
'source' => 'SellFlowers',
'use_alfasource' => 1
), $adminPhones);
$userPhoneData = $item->getElement($userPhoneElementId)->data();
if (isset($userPhoneData[0]['value']) && !empty($userPhoneData[0]['value'])) {
$userMessage = $userNameData[0]['value'] . ', заказ на сумму ' .
$app->jbmoney->toFormat($totalPrice, $appParams->get('currency', 'RUB')) . ' успешно оформлен.';
$userSend = $smsApi->send(array(
'text' => $userMessage,
'source' => 'SellFlowers',
'use_alfasource' => 1
), $userPhoneData[0]['value']);
}
}
}
}
Обратите внимание на строку
$totalPrice = $item->getElement('1af7e792-bcff-4a6c-9bdb-dd5023b0251a')->getTotalPrice();
Вам нужно заменить мой id элемента корзины на свой. т.е в типе материала Order смотрите какой id у этого элемента
Ну вот вроде и все, можете пробовать.
ВНИМАНИЕ!!!
- Будьте внимательны при замене файлов.
- Проверьте с начало на тестовом сайте а уже потом загружайте на рабочий сайт.
- Это решение(модификация) тестировалось на
Joomla: 3.3.1
JBZoo: 2.1.4 Pro
Zoo: 3.1.6, - Не забывайте - это решение(модификация) и при следующих обновлениях эти изменения могут пострадать.
- При появлении проблем Тех.Поддержка ответственности не несет.
Добавлено: 24.06.2014
Сообщение отредактировал Cheren-dow: 24 June 2014 - 15:34













