Зачем нужна интеграция WPForms с SMS-уведомлениями
WPForms — один из самых популярных плагинов для создания форм в WordPress. Часто возникает задача получать уведомления не только на почту, но и на мобильный телефон через SMS. Это особенно важно для срочных заявок, заказов или поддержки клиентов, когда нужно мгновенно реагировать. SMS уведомления позволяют повысить оперативность и не пропустить важное сообщение.
Преимущества SMS-уведомлений:
- Мгновенное получение информации;
- Высокая вероятность прочтения;
- Возможность автоматизировать обработку заявок;
- Независимость от интернета и почтовых фильтров.
В этой статье мы разберём, как связать WPForms с SMS-шлюзами, приведём примеры кода и рассмотрим популярные сервисы для отправки сообщений.
Выбор SMS-сервиса для интеграции с WPForms
Для отправки SMS существует множество провайдеров: Twilio, SMS.ru, Nexmo (Vonage), Clickatell и другие. Выбор зависит от региона, стоимости и функционала.
Рассмотрим на примере SMS.ru — популярного российского сервиса с простым API.
Чтобы начать работу:
- Зарегистрируйтесь на sms.ru;
- Пополните баланс;
- Получите API-ключ в личном кабинете;
- Проверьте отправку SMS через тестовый запрос.
Подключение отправки SMS к форме WPForms с помощью хука отправки
WPForms предоставляет удобный хук wpforms_process_complete, который срабатывает после успешной отправки формы. Мы можем использовать его, чтобы получить данные формы и отправить SMS.
Пример функции для отправки SMS через SMS.ru:
function wpformru_send_sms_notification($fields, $entry, $form_data) {
$api_key = 'ВАШ_API_КЛЮЧ_SMSRU';
$phone_field_id = 3; // ID поля с номером телефона в форме
if ( empty($fields[$phone_field_id]['value']) ) {
return; // Номер телефона не заполнен
}
$phone = $fields[$phone_field_id]['value'];
$message = 'Новая заявка с сайта: ' . $form_data['settings']['form_title'];
// Формируем URL для отправки
$url = 'https://sms.ru/sms/send?api_id=' . $api_key . '&to=' . urlencode($phone) . '&msg=' . urlencode($message) . '&json=1';
// Отправляем запрос
$response = wp_remote_get($url);
if (is_wp_error($response)) {
error_log('Ошибка отправки SMS: ' . $response->get_error_message());
} else {
$body = json_decode(wp_remote_retrieve_body($response), true);
if ($body['status'] != 'OK') {
error_log('SMS.ru ответ с ошибкой: ' . print_r($body, true));
}
}
}
add_action('wpforms_process_complete', 'wpformru_send_sms_notification', 10, 3);В этом коде мы используем ID поля с номером телефона, получаем его значение, формируем сообщение и отправляем запрос к API SMS.ru. При ошибках выводим сообщения в лог ошибок WordPress.
Как узнать ID поля в форме WPForms
В редакторе WPForms при выделении поля в правом блоке настроек отображается его ID. Его нужно указать в коде, чтобы правильно получить номер телефона.
Расширение функционала: отправка SMS нескольким получателям и динамическое тело сообщения
Часто требуется уведомлять не одного, а нескольких сотрудников или менеджеров. Для этого можно указать список номеров через запятую и отправлять SMS циклом.
function wpformru_send_sms_to_multiple($fields, $entry, $form_data) {
$api_key = 'ВАШ_API_КЛЮЧ_SMSRU';
$phone_field_id = 3;
if (empty($fields[$phone_field_id]['value'])) {
return;
}
$phone_client = $fields[$phone_field_id]['value'];
$manager_numbers = ['+79001234567', '+79007654321'];
$message = 'Новая заявка с сайта: ' . $form_data['settings']['form_title'] . ". Телефон клиента: " . $phone_client;
foreach ($manager_numbers as $phone) {
$url = 'https://sms.ru/sms/send?api_id=' . $api_key . '&to=' . urlencode($phone) . '&msg=' . urlencode($message) . '&json=1';
$response = wp_remote_get($url);
if (is_wp_error($response)) {
error_log('Ошибка отправки SMS менеджеру: ' . $response->get_error_message());
}
}
}
add_action('wpforms_process_complete', 'wpformru_send_sms_to_multiple', 10, 3);Также сообщение можно формировать динамически, включать данные из других полей, например имя, email, комментарий.
Обработка ошибок и логирование отправки SMS
Для стабильной работы важно отслеживать ошибки отправки. В WordPress для этого удобно использовать error_log. Можно расширить код, чтобы записывать лог в отдельный файл или базу данных для последующего анализа.
Например, для записи в файл:
function wpformru_log_sms_error($message) {
$log_file = WP_CONTENT_DIR . '/sms_errors.log';
$date = date('Y-m-d H:i:s');
file_put_contents($log_file, "[$date] $message\n", FILE_APPEND);
}<И вызывать эту функцию вместо error_log внутри обработчика.
Использование готовых плагинов для интеграции SMS и WPForms
Если писать код не хочется, можно использовать готовые решения. Например, есть плагин SMS Notifications for WPForms на wpshop.ru, который добавляет возможность отправлять SMS по событиям WPForms, с настройкой шаблонов и различных провайдеров.
Преимущества использования плагина:
- Простая настройка через админку;
- Поддержка нескольких SMS-сервисов;
- Гибкие шаблоны сообщений;
- Отслеживание статусов отправки.
Это может существенно сэкономить время и повысить надёжность.
Практические советы по работе с SMS-уведомлениями в WPForms
1. Валидируйте номера телефонов в форме, чтобы избежать ошибок отправки. Можно использовать маску ввода или регулярные выражения.
2. Не отправляйте слишком много SMS, чтобы не перегружать баланс и не раздражать сотрудников. Добавляйте фильтры по типу заявки.
3. Используйте отложенную отправку при необходимости — например, отправлять SMS только после проверки заявки.
4. Обязательно тестируйте интеграцию на разных формах и с разными номерами.
Заключение
Интеграция WPForms с SMS-уведомлениями — мощный инструмент для оперативного взаимодействия с клиентами и командой. С помощью простого кода на PHP и API популярных SMS-сервисов вы можете настроить отправку мгновенных сообщений прямо из форм WordPress. При необходимости используйте готовые плагины с расширенным функционалом.
Для удобства работы с SMS уведомлениями в WPForms рекомендуем ознакомиться с плагином SMS Notifications for WPForms на wpshop.ru.