Как запустить email- и SMS уведомления на Joomla с использованием API
В цифровом маркетинге коммуникация с клиентами играет ключевую роль в успехе бизнеса. Хотя email-уведомления остаются мощным инструментом, SMS приобретают все большее значение благодаря оперативности и высокому уровню прочтения. В этом руководстве сосредоточимся на интеграции email- и SMS-уведомлений в Joomla с использованием API Exolve и ряда других средств.
Для начала важно выстроить правильную стратегию:
1. Определить цели и сегменты рассылок.
2. Выбрать оптимальную периодичность.
3. Адаптировать контент под интересы аудитории.
4. Тестировать заголовки, призывы, визуал.
5. Непрерывно измерять эффективность и улучшать.
Грамотная работа с email способна принести бизнесу существенный прирост продаж и клиентов. Поэтому владельцу практически любого сайта на Joomla стоит внедрить этот канал.
Обзор расширений Joomla для email-уведомлений
В каталоге расширений Joomla есть немало компонентов для организации email-рассылок. Рассмотрим несколько наиболее популярных и функциональных вариантов.
AcyMailing
AcyMailing — известный компонент для email-маркетинга в экосистеме Joomla с обширным набором функций, удобным интерфейсом и поддержкой различных email-сервисов.
Основные возможности AcyMailing:
Управление неограниченным числом списков подписчиков.
Детальная сегментация базы по полям профилей.
Drag-and-drop редактор писем.
Адаптивные шаблоны и персонализация контента.
Отправка по расписанию и автореспондеры.
Аналитика открытий, кликов, отписок.
Интеграция с Joomla, K2, HikaShop, Virtuemart и др.
Есть бесплатная базовая версия с ограничениями по числу подписчиков.
jNews
jNews — другое мощное решение для email-маркетинга на Joomla.
Ключевые опции jNews:
Комфортное управление списками и группами контактов.
Визуальные редакторы писем (WYSIWYG и Drag & Drop).
Динамический контент и условия его отображения.
Продвинутая сегментация по поведению пользователей.
Цепочки писем, автореспондеры, автоматические рассылки.
Тесты A/B, отчеты, графики.
Синхронизация с Joomla, К2, Easysocial, Jomsocial и более 30 CMS/CRM.
jNews распространяется по подписке от 99 долларов в год для одного домена.
Acajoom
Acajoom — еще один заслуживающий внимания компонент рассылок для сайтов на Joomla. Он сочетает широкую функциональность с простотой использования.
Особенности Acajoom:
Работа с неограниченным количеством списков подписчиков.
Встроенные шаблоны писем и простой drag-and-drop редактор.
Персонализация контента по группам и интересам.
Гибкое расписание рассылок.
Сплит-тесты, аналитика, отчеты.
Совместимость с популярными расширениями Joomla.
Цена Acajoom стартует от 47 долларов для одного сайта. Есть 30-дневная гарантия возврата средств.
Также можно упомянуть такие расширения, как Mailster, Joomla-Mailings, Joomailer, Emclabs Newsletter и др. У каждого из них своя специфика и аудитория пользователей.
В целом, выбор компонента email рассылок зависит от масштаба проекта, бюджета и требуемых функций.
Далее мы сосредоточимся именно на работе с AcyMailing и разберем настройку рассылок на его примере.
Пошаговая инструкция по созданию рассылки в AcyMailing
Допустим, у нас есть работающий сайт на Joomla, и мы хотим запустить на нем email-маркетинг с помощью AcyMailing.
Рассмотрим последовательность необходимых действий.
Шаг 1. Установка компонента
Скачиваем актуальную версию AcyMailing с сайта разработчика.
В административной панели Joomla переходим в Расширения → Менеджер расширений.
Нажимаем кнопку «Загрузить файл пакета» и выбираем скачанный архив с AcyMailing. Компонент будет установлен автоматически.
Шаг 2. Общие настройки
Переходим в Компоненты → AcyMailing → Конфигурация.
Во вкладке «Основные» заполняем имя и email (для полей от кого и ответить). Эти данные будут использоваться по умолчанию при отправке писем.
Во вкладке «Почтовые серверы» указываем SMTP-сервер, порт, логин и пароль для отправки писем. Это могут быть SMTP данные от вашего почтового сервиса или подключенного стороннего, например SendGrid, Mailgun.
Шаг 3. Создание списка подписчиков
В меню AcyMailing выбираем Списки.
Нажимаем кнопку «Создать список».
Указываем Название списка, например «Основной список рассылки».
Вписываем тему письма подтверждения подписки.
Устанавливаем переключатель «Подтверждение подписки» в «Да».
Сохраняем список.
Шаг 4. Создание формы подписки
В меню AcyMailing идем в формы.
Нажимаем «Создать форму».
Выбираем нужный нам список в поле «Списки».
Выбираем поля подписчика, которые будут отображаться в форме, например имя и email.
Копируем сгенерированный код формы.
Шаг 5. Вставка формы на сайт
Создаем новый материал в Joomla .
Переключаемся на вкладку HTML редактора материала.
Вставляем скопированный код формы подписки внутрь тегов
.Публикуем материал и проверяем, что форма отображается и работает корректно.
Шаг 6. Подготовка шаблона письма
В меню AcyMailing заходим в рассылки.
Нажимаем «Создать рассылку».
Указываем тему письма.
Во вкладке «Контент» с помощью удобного drag-and-drop редактора создаем тело письма.
Используем персонализацию, например Здравствуйте, {имя подписчика}!
Добавляем призыв к действию и ссылки на сайт.
Тестируем отображение письма на разных устройствах во вкладке просмотра.
Шаг 7. Тестовая отправка
В созданной рассылке переходим на вкладку «Отправка».
В блоке «Тесты» вводим тестовый email и нажимаем «Отправить тест».
Проверяем доставку письма, корректность контента и ссылок.
Шаг 8. Запуск рассылки
В настройках рассылки во вкладке «Отправка» выбираем список получателей.
Указываем фильтры и сегментацию списка, если нужно.
Ставим галочку «Опубликовано».
Выбираем дату и время отправки рассылки.
Нажимаем «Сохранить и закрыть».
Таким образом, рассылка создана и запланирована. После фактической отправки подписчикам в интерфейсе AcyMailing можно будет отследить статистику открытий, кликов, отписок и т.д.
Данную последовательность действий можно повторять для создания новых рассылок на регулярной основе.
Персонализация и сегментация рассылок
Чтобы повысить эффективность email маркетинга, недостаточно просто отправлять рассылки всей базе подписчиков. Важно персонализировать контент писем и сегментировать аудиторию по различным признакам. Рассмотрим, как это можно реализовать на примере AcyMailing.
Персонализация
В редакторе AcyMailing есть теги персонализации вида {имя_поля}. Эти теги автоматически заменяются на соответствующие данные подписчика при отправке.
Например, у нас есть поля имя, фамилия, пол в профиле подписчика. Тогда в тексте письма можно использовать обращения:
Здравствуйте, {firstname}!
Уважаемый {firstname} {lastname},
Дорогая {firstname},
Шаблон AcyMailing поддерживает практически любые условные конструкции и циклы для реализации сложной персонализации.
Кроме того, фильтровать базу можно по активности подписчиков: открытиям, кликам, покупкам. Это поможет идентифицировать горячие и холодные сегменты, сделать им разные по контексту и интенсивности предложения.
Например, отправить серию реактивационных писем тем, кто давно не открывал рассылки, а наиболее активным подписчикам, лояльным клиентам можно сделать эксклюзивное предложение с глубокой скидкой:
Интеграция AcyMailing с другими компонентами Joomla
Еще одно важное преимущество AcyMailing: интеграция со множеством других расширений. Это позволяет связать разные данные о пользователях на сайте и использовать их для более эффективной работы с рассылками.
Рассмотрим несколько примеров.
Интеграция с Joomla
Из коробки AcyMailing умеет синхронизировать свою базу подписчиков со встроенными пользователями Joomla. Для этого нужно:
Зайти в Joomla в «Пользователи» → «Группы доступа».
Создать новую группу, например «Подписчики рассылки».
В меню AcyMailing перейти в «Подписчики» → «Синхронизация пользователей»
Выбрать «Joomla Groups» в качестве источника.
Отметить только что созданную группу «Подписчики рассылки».
Выбрать список рассылки, в который импортировать пользователей.
Нажать «Сохранить и продолжить».
Теперь при добавлении пользователя в соответствующую группу Joomla он будет автоматически попадать в базу подписчиков AcyMailing.
Интеграция с K2
K2 — популярный компонент для публикации контента в Joomla. При включенной интеграции AcyMailing сможет автоматически создавать рассылки из новых материалов K2 по заданным правилам.
Включаем интеграцию:
В AcyMailing идем в «Расширения» → «Подписки в Joomla».
Напротив строки K2 ставим галочку в колонке «Опубликовано».
Создаем правило автоматической рассылки:
В AcyMailing идем в «Рассылки» → «Создать рассылку».
Во вкладке «Генерация» устанавливаем переключатель «Сгенерировать рассылку из К2» в «Да».
Указываем категорию или конкретные материалы K2 для рассылки.
Выбираем шаблон для автоматического создания контента рассылки.
Настраиваем сегментацию и фильтры получателей.
Теперь при публикации нового материала K2 из указанной категории будет генерироваться рассылка в соответствии с шаблоном и автоматически отправляться подписчикам.
Интеграция с Hikashop и Virtuemart
Hikashop и Virtuemart — популярные расширения для организации онлайн-магазина на Joomla. Их интеграция с AcyMailing позволяет использовать информацию о заказах для более таргетированных рассылок.
Включение интеграции:
В административной панели Joomla идем в «Компоненты» → Hikashop/Virtuemart → «Настройки».
Переходим в раздел интеграций.
Напротив пункта AcyMailing ставим галочку «Включено».
При новом заказе в Hikashop или Virtuemart email покупателя будет автоматически добавляться в список подписчиков AcyMailing. Кроме того, данные о заказе и приобретенных товарах будут записаны в дополнительные поля.
Вот как может выглядеть код для генерации персональных рекомендаций на основе предыдущих заказов в Hikashop:
{foreach $previous_orders as $order}
{foreach $order->products as $product}
{$product->name}
{/foreach}
{/foreach}
Здесь мы получаем массив прошлых заказов пользователя из Hikashop, проходимся по товарам внутри каждого заказа и выводим их названия в письме.
Аналогичным образом можно интегрировать AcyMailing с множеством других компонентов Joomla: каталогами, формами, блогами, форумами. Информация об этих интеграциях, как правило, содержится в документации соответствующих расширений.
Рассмотрим далее, как реализовать отправку SMS на сайте под управлением Joomla
Выбор SMS-шлюза и его подключение в Joomla
Преимущества SMS уведомлений:
Высокая скорость доставки.
Гарантированное прочтение (93% сообщений открывается в течение 5 минут).
Личный и доверительный характер обращения.
Возможность достучаться до неактивных email подписчиков.
Охват аудитории, не пользующейся email.
Для отправки SMS с сайта требуется подключение к специальному сервису — SMS-шлюзу. Это платформа, которая обеспечивает обмен сообщениями между веб-приложением и мобильными сетями.
Существует множество шлюзов с разными условиями и возможностями. Некоторые популярные варианты:
Exolve
Mobizon
Infobip
Sms4b
SMSAero
При выборе сервиса ориентируйтесь на:
цены на отправку SMS в нужные вам страны
качество доставляемости
API для интеграции
техническую поддержку
отзывы других пользователей
Проанализировав эти факторы, регистрируемся в сервисе и пополняем баланс на первоначальную сумму. Далее реализуем фактическое подключение SMS-шлюза к Joomla. Есть два основных способа:
1. Через компонент интеграции
В каталоге расширений Joomla можно найти готовые компоненты для работы с популярными SMS шлюзами.
Устанавливаем компонент в Joomla, вводим API ключ из личного кабинета шлюза и начинаем отправлять SMS через интерфейс компонента, либо вызывая его функции в коде других расширений.
Плюсы подхода: простота интеграции, минимальные трудозатраты. Минусы: меньше гибкости, зависимость от стороннего кода.
2. Через прямые обращения к API
Каждый шлюз предоставляет HTTP API для отправки сообщений. Имея ключ доступа, мы можем напрямую отправлять запросы к API из PHP-кода Joomla и обрабатывать ответы.
Термины и определения
Прежде чем мы перейдем к практическим аспектам, давайте ознакомимся с основными терминами:
ESME (External Short Messaging Entity) — внешнее приложение, подключающееся к SMSC для отправки или получения SMS-сообщений.
PDU (Protocol Data Unit) — пакет данных протокола SMPP.
SMSC (Short Message Service Center) — центр обслуживания коротких сообщений.
TLV (Tag-Length-Value) — формат представления дополнительных данных в сообщениях.
UDH (User Data Header) — заголовок пользовательских данных в SMS-сообщении.
Подключение к Exolve через SMPP
1. Получите доступ к Личному кабинету разработчика Exolve.
2. Перейдите во вкладку «Приложения» в верхнем меню аккаунта.
3. Выберите нужное приложение.
4. Перейдите в «Сообщения» → «SMPP-аккаунт» в левом меню.
5. Запишите следующие параметры подключения: system_id (логин), password (пароль), адрес (smpp.exolve.ru) и порт (2775).
6. Настройте ваше ESME (приложение для отправки SMS) с этими параметрами.
7. Используйте SMPP-протокол версии 3.4 для подключения.
Отправка SMS через Exolve SMPP
1. Выберите тип подключения: receiver или transceiver.
2. При отправке SMS обязательно укажите параметр data_coding:
— Используйте GSM7 для латинского алфавита
— Используйте UCS2 для кириллицы
3. Для отправки через short_message:
— Установите текст в поле «short_message»
— Для составных сообщений используйте UDH
— Ограничение: 67 символов кириллицы или 153 символа латиницы на сегмент
4. Для отправки через payload:
— Установите текст в поле «payload»
— Не разделяйте на сегменты
— Оставьте поле «short_message» пустым
5. Отправляйте PDU enquire_link каждые 15 минут для поддержания соединения.
Создание рассылки через API Exolve
1. Подготовьте API-ключ вашего приложения Exolve.
2. Используйте точку подключения: POST https://api.exolve.ru/campaign/v1/Create
3. Установите заголовок Authorization: Bearer {ваш_API-ключ}
4. Подготовьте JSON с параметрами рассылки:
— name: название рассылки
— timezone: учёт часового пояса (true/false)
— Выберите канал рассылки (sms, voice_message или cascade)
5. Для SMS-рассылки укажите:
— alpha_name: имя отправителя
— text: текст сообщения
6. Для каскадной рассылки настройте последовательность каналов и условия перехода.
7. При необходимости настройте расписание рассылки.
8. Отправьте запрос и получите campaign_id в ответе.
Пример запроса для текстового SMS
{
"name": "test",
"timezone": true,
"sms": {
"props": {
"alpha_name": "shop",
"text": "Приходите к нам в магазин!"
}
}
}
Пример запроса для каскадной рассылки
{
"name": "Рассылка с расписанием",
"cascade": {
"elements": [
{
"sms": {
"props": {
"alpha_name": "shop",
"text": "Приходите к нам!"
}
},
"condition": "1"
},
{
"voice_message": {
"props": {
"voice_message_id": "353b86e0-a62c-47d4-9b94-8dba32c922fc",
"from": "79991112233"
}
}
}
]
},
"schedule": {
"days": {
"mon": {
"intervals": [
{
"from": {
"hours": 10,
"minutes": 0,
"seconds": 0,
"nanos": 0
},
"to": {
"hours": 15,
"minutes": 30,
"seconds": 0,
"nanos": 0
}
}
]
}
}
}
}
Оптимизация SMS-рассылок в Exolve
1. Используйте GSM7 кодировку для сообщений на латинице для экономии символов.
2. Для кириллицы используйте UCS2 кодировку.
3. При отправке составных сообщений через short_message, правильно формируйте UDH.
4. Для длинных сообщений используйте payload вместо short_message, чтобы избежать ручного разделения на сегменты.
5. Регулярно проверяйте соединение, отправляя enquire_link каждые 15 минут.
6. При создании каскадных рассылок, настраивайте условия перехода для оптимизации доставки.
7. Используйте расписание рассылок для отправки сообщений в оптимальное для получателей время.
Устранение неполадок при работе с Exolve
1. Используйте Wireshark для анализа SMPP-трафика при возникновении проблем.
2. При проблемах с API-запросами проверьте корректность API-ключа и формат JSON.
3. Если рассылка не создается, убедитесь, что:
— Альфа-имя для SMS принадлежит вашему приложению
— Номер телефона для голосовых SMS принадлежит вашему приложению
— ID голосового сообщения существует и принадлежит вашему приложению
4. При ошибках в параметрах проверьте:
— Длину альфа-имени (от 3 до 11 символов)
— Длину номера телефона (от 1 до 14 символов)
— Длину названия рассылки (от 3 до 40 символов)
5. Если рассылка не запускается в указанное время, проверьте, не создали ли вы её во время текущего интервала расписания.
Отправка простого SMS через SMPP
// Подключение к SMPP серверу Exolve
$smpp = new SMPP('smpp.exolve.ru', 2775, 'your_system_id', 'your_password', 'YOUR_SYSTEM_TYPE');
$smpp->bindTransceiver();
// Отправка SMS
$from = 'YOUR_ALPHA_NAME';
$to = '79991234567';
$message = 'Ваш заказ подтвержден';
$smpp->sendSMS($from, $to, $message, [
'data_coding' => SMPP::DATA_CODING_UCS2, // Для кириллицы
]);
$smpp->close();
Отправка составного SMS через SMPP
// Подключение к SMPP серверу Exolve
$smpp = new SMPP('smpp.exolve.ru', 2775, 'your_system_id', 'your_password', 'YOUR_SYSTEM_TYPE');
$smpp->bindTransceiver();
// Отправка составного SMS
$from = 'YOUR_ALPHA_NAME';
$to = '79991234567';
$message = 'Это длинное сообщение, которое будет разделено на несколько частей. Каждая часть будет отправлена отдельно, но благодаря UDH они будут собраны в одно сообщение на телефоне получателя.';
$parts = str_split($message, 67); // Разделяем на части по 67 символов для кириллицы
$total_parts = count($parts);
$reference_number = mt_rand(0, 255);
foreach ($parts as $i => $part) {
$udh = pack('cccccc', 5, 0, 3, $reference_number, $total_parts, $i + 1);
$smpp->sendSMS($from, $to, $udh . $part, [
'data_coding' => SMPP::DATA_CODING_UCS2,
'esm_class' => SMPP::ESM_CLASS_UDHI,
]);
}
$smpp->close();
Создание каскадной рассылки через API
$api_key = 'YOUR_API_KEY';
$url = 'https://api.exolve.ru/campaign/v1/Create';
$data = [
'name' => 'Каскадная рассылка',
'timezone' => true,
'cascade' => [
'elements' => [
[
'sms' => [
'props' => [
'alpha_name' => 'YourShop',
'text' => 'У нас новая акция! Посетите наш сайт для подробностей.'
],
'ttl' => '60s'
],
'condition' => '1' // Если SMS не доставлено
],
[
'voice_message' => [
'props' => [
'voice_message_id' => 'YOUR_VOICE_MESSAGE_ID',
'from' => '79991112233'
]
]
]
]
],
'schedule' => [
'days' => [
'mon' => [
'intervals' => [
[
'from' => ['hours' => 10, 'minutes' => 0, 'seconds' => 0, 'nanos' => 0],
'to' => ['hours' => 18, 'minutes' => 0, 'seconds' => 0, 'nanos' => 0]
]
]
],
'tue' => [
'intervals' => [
[
'from' => ['hours' => 10, 'minutes' => 0, 'seconds' => 0, 'nanos' => 0],
'to' => ['hours' => 18, 'minutes' => 0, 'seconds' => 0, 'nanos' => 0]
]
]
]
]
]
];
$headers = [
'Authorization: Bearer ' . $api_key,
'Content-Type: application/json'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo "Campaign ID: " . $result['campaign_id'];
Отправка SMS с использованием payload
// Подключение к SMPP серверу Exolve
$smpp = new SMPP('smpp.exolve.ru', 2775, 'your_system_id', 'your_password', 'YOUR_SYSTEM_TYPE');
$smpp->bindTransceiver();
// Отправка SMS с использованием payload
$from = 'YOUR_ALPHA_NAME';
$to = '79991234567';
$message = 'Это длинное сообщение, которое будет отправлено через payload. Оно может содержать больше символов, чем обычное SMS, и не требует ручного разделения на части.';
$smpp->sendSMS($from, $to, '', [
'data_coding' => SMPP::DATA_CODING_UCS2,
'message_payload' => $message,
]);
$smpp->close();
Эти примеры демонстрируют различные способы использования Exolve для отправки SMS и создания рассылок. Они охватывают такие аспекты, как отправка простых и составных сообщений через SMPP, создание каскадных рассылок через API и использование payload для отправки длинных сообщений.
Отправка SMS при создании заявки на сайте
Довольно распространенный кейс — отправлять SMS клиенту и менеджеру при поступлении новой заявки с сайта. Разберем реализацию на примере компонента Chronoforms.
Это мощный конструктор веб-форм для Joomla, который также умеет создавать опросы, анкеты с многоэтапным заполнением, условной логикой и так далее.
Допустим, у нас есть простая форма заказа обратного звонка со следующими полями:
Чтобы настроить отправку SMS после заполнения формы:
1. В админке переходим в «Компоненты» → Chronoforms → «Управление формами».
2. Открываем форму обратного звонка.
3. Во вкладке «События» добавляем новое событие «После отправки».
4. В качестве действия выбираем «Отправить СМС».
5. В поле «Номер телефона» указываем {phone} — так подставиться номер из поля «Телефон» формы.
6. В поле «Сообщение» пишем текст SMS, например:
Здравствуйте, {name}! Ваша заявка на обратный звонок принята. Мы перезвоним вам {call_time}. Спасибо за обращение!
7. Заполняем остальные настройки SMS по необходимости.
8. Сохраняем событие и тестируем отправку.
Чтобы отправить SMS менеджеру о новой заявке, нужно добавить еще одно событие «После отправки», но в поле номера телефона уже указать номер менеджера.
Подобная настройка актуальна не только для форм обратной связи, но и для заказов в интернет-магазине, бронирования услуг, регистраций на событие.
Дополнительные триггеры событий для SMS
Помимо заполнения веб-форм есть и другие события на сайте, при наступлении которых будет уместна отправка SMS.
Приведем несколько характерных примеров.
Добавление товара в корзину
Пусть у нас интернет-магазин электроники на Joomla + Virtuemart. Чтобы отправлять SMS при добавлении товара в корзину:
1. Устанавливаем плагин Joomla Plugin SMS Notification
2. В его настройках выбираем интересующий нас SMS-шлюз
3. Указываем событие OnCartAdd
4. В шаблоне SMS пишем:
В вашу корзину добавлен {product_name}. Цена {product_price}. Продолжить покупки: {url}
5. Сохраняем плагин и тестируем
Таким способом можно стимулировать пользователей завершать начатые покупки.
Напоминание о неоплаченном счете
Представим, что на сайте выставляются счета клиентам через компонент Joomla Invoices. Если клиент не оплачивает счет в течение 3 дней, имеет смысл отправить ему SMS напоминание.
1. В административной панели идем в компоненты, выбираем Joomla Invoices.
2. Создаем новый шаблон счета.
3. В редакторе шаблона добавляем код для отправки SMS:
$dueDate = $invoice->due_date;
$threeDaysAfter = date('Y-m-d', strtotime($dueDate . '+3 days'));
$today = date('Y-m-d');
if ($today >= $threeDaysAfter && $invoice->status = 'Unpaid') {
// отправляем SMS
$phoneNumber = $invoice->phone;
$message = "Здравствуйте! Напоминаем, что ваш счет №{$invoice->number} на сумму {$invoice->total} просрочен. Пожалуйста, оплатите его в течение 2 дней. Спасибо!";
sendSMS($phoneNumber, $message);
}
function sendSMS($to, $message) {
// реализация отправки SMS
}
4. Сохраняем шаблон счета
Код будет проверять дату выставления счета, и если прошло более 3 дней, а счет еще не оплачен — отправит SMS напоминание клиенту.
Истечение подписки на сайте
Нередки случаи, когда доступ к материалам или сервисам сайта предоставляется по платной подписке. Заранее уведомить клиента о скором завершении подписки будет правильным решением.
Допустим подписки на сайте реализованы через компонент Akeeba Subscriptions.
1. Находим файл /plugins/akeebasubs/plugins/smsreminder.php
2. В нем уже есть метод onSubscriptionExpiring для обработки истекающих подписок
3. Модифицируем этот метод под отправку SMS:
public function onSubscriptionExpiring($subscription)
{
if (!$subscription->enabled)
{
return;
}
$params = $subscription->getParams();
$daysBeforeExpiration = $params->get('days_before', 0);
if ($daysBeforeExpiration <= 0)
{
return;
}
$user = $subscription->getUser();
$expirationDate = new DateTime($subscription->getExpirationDate());
$today = new DateTime();
$today->setTime(0, 0, 0);
$interval = $today->diff($expirationDate);
if ($interval->days !== $daysBeforeExpiration)
{
return;
}
$message = "Здравствуйте, {$user->name}! Подписка на наш сервис истекает через {$daysBeforeExpiration} дней - {$expirationDate->format('d.m.Y')}. Продлите подписку на сайте, чтобы не потерять доступ к материалам!";
sendSMS($user->mobilePhone, $message);
}
Здесь мы проверяем разницу между сегодняшней датой и датой истечения подписки, и если она равна заданному числу дней в настройках — отправляем SMS пользователю с напоминанием продлить подписку.
Аналогично можно поступать с любыми другими событиями на сайте, требующими реакции — изменением статуса заказа, публикацией нового контента, активностью пользователя и т.д.
При грамотном использовании SMS-уведомления могут принести немалую пользу бизнесу и повысить удовлетворенность клиентов.
Заключение
Интеграция Exolve и других сервисов в вашу Joomla-систему открывает новые возможности для коммуникации с клиентами. Используя SMPP-протокол или API, вы можете создавать эффективные оповещения, которые дополнят ваши email-кампании.
Помните о важности соблюдения технических требований и оптимизации ваших рассылок. Регулярно анализируйте эффективность ваших SMS-кампаний, экспериментируйте с различными подходами и всегда учитывайте предпочтения клиентов.