В общем суть рецепта описана в названии темы. Поехали...
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
Edited by Cheren-dow, 24 June 2014 - 15:34.