Как получать SMS в WordPress с помощью PHP-плагина

Автор: | 10.08.2026

В этом руководстве мы рассмотрим, как настроить получение SMS в WordPress с помощью PHP-плагина. После установки плагина вы сможете отвечать на SMS и обрабатывать двусторонние сообщения на своих сайтах WordPress.

— Готовая установка WordPress. Если она у вас ещё не настроена, ознакомьтесь с инструкцией по установке.

— Телефонный номер Twilio. Вы можете использовать существующий номер или приобрести новый в Twilio Console.

Когда вы отправляете SMS своим пользователям, есть вероятность, что некоторые из них ответят. При получении ответа сообщение поступает на ваш номер Twilio, и Twilio отправляет HTTP-запрос на URL сообщения, настроенный для этого номера. В ответ на этот запрос вы сообщаете Twilio, что делать, используя подмножество XML — TwiML, или просто подтверждаете получение.

В рамках этой статьи мы просто подтвердим получение, ответив пользователю стандартным текстом.

Встроенная функция WordPress REST API предоставляет конечные точки для типов данных WordPress, что позволяет разработчикам взаимодействовать с сайтами удалённо, отправляя и получая объекты JSON. Она также позволяет разработчикам добавлять новые конечные точки для своих нужд.

REST API WordPress позволяет нам создать маршрут/конечную точку, которую мы добавим в Twilio Console и которая будет служить вебхуком для входящих сообщений. Сначала нам нужно создать конечную точку, которую мы позже добавим в Twilio Console.

Перейдите в папку `wordpress_installation/wp-content/plugins` и создайте новую папку: `receivedx` (вы можете назвать эту папку как угодно).

— Создайте новый файл в только что созданной папке: `receivedx.php` (вы можете назвать этот файл как угодно).

Теперь добавьте этот код в созданный файл `wp-content/plugins/receivedx/receivedx.php` и сохраните изменения.

Здесь мы определяем информацию о нашем новом плагине, такую как `Plugin Name`, `Description`, `Author` и `Author URI`. Без этой информации WordPress проигнорирует наш плагин.

Далее активируйте наш новый плагин. Перейдите в панель администратора WordPress по адресу `wordpress_installation/wp-admin` и нажмите на ссылку «Плагины» в левой колонке. Нажмите на ссылку «Активировать» для нашего плагина под названием Receivedx.

Функция `register_receive_message_route()` вызывает встроенную функцию WordPress `register_rest_route()` для регистрации нашей пользовательской конечной точки.

Мы передаём три аргумента в `register_rest_route()`:

— `пространство имён`: `receivedx/v1` — это пространство имён, которое уникально идентифицирует наш базовый маршрут, чтобы он не конфликтовал с маршрутами других плагинов. Это как базовая конечная точка для всех маршрутов, которые мы создаём в нашем плагине.

— `маршрут, который мы хотим`: `/receive_sms` — это маршрут, который мы хотим использовать для указания на нашу конечную точку для получения SMS.

— `массив опций`:

— Он сообщает WordPress, какой метод можно использовать для доступа к нашей конечной точке. Здесь мы используем POST (`’methods’ => ‘POST’`). Также в массиве опций есть другой ключ: `callback` — он принимает нашу функцию конечной точки `trigger_receive_sms`. Мы создадим эту функцию позже.

Созданная нами конечная точка — это `receivedx/v1/receive_sms`. Она является результатом объединения первого параметра (`receivedx/v1`) и второго параметра (`receive_sms`), переданных функции `register_rest_route()`.

Теперь мы напишем функцию, на которую будет указывать созданный выше маршрут. Это функция, имя которой мы передали в качестве параметра callback выше.

Эта функция выполняется всякий раз, когда сообщение отправляется на наш номер Twilio, и Twilio делает POST-запрос на наш маршрут, который мы позже добавим в Twilio.

Что делает эта функция? Если кто-то отправит сообщение на наш номер Twilio, пользователь получит ответ: «Привет из WordPress».

Когда Twilio отправляет HTTP-запрос на наш маршрут, он ожидает HTTP-ответ в ответ. Этот HTTP-запрос, который Twilio отправляет на наш маршрут, включает параметры (`From`, `To`, `Body`). Ответ принимает форму TwiML — подмножества XML, используемого для передачи инструкций обратно в Twilio. Таким образом, мы начинаем наш ответ с установки заголовка `Content-Type` в `text/xml`.

Действительный TwiML содержит инструкции, вложенные в открывающие и закрывающие теги (даже если вы не хотите, чтобы Twilio что-то делал, всё равно следует отправить пустой ). В данном случае мы используем тег `` для ответа SMS. Здесь можно сделать много интересного. Подробнее о Twilio TwiML API можно прочитать в документации Twilio.

Теперь зарегистрируем функции, которые мы только что создали выше. Добавьте эту строку в ваш файл `wp-content/plugins/receivedx/receivedx.php`:

Функция `add_action` — это основная функция WordPress, которую мы используем, чтобы сообщить WordPress о только что созданной функции.

На данный момент у нас есть доступный маршрут:

`http://wordpress_installation/wp-json/receivedx/v1/receive_sms`

Ваш URL состоит следующим образом:

— http://wordpress_installation = URL установки WordPress

— wp-json = базовый URL API WordPress

— receivedx/v1 = базовый URL API нашего плагина

— receive_sms = указывает на конечную точку для получения SMS

Наша конечная точка, которую мы только что создали, доступна через метод POST. Если вы используете метод GET, вы получите ошибку 404.

Вашему маршруту необходим общедоступный URL, чтобы Twilio мог до него добраться. Для этого вы можете либо развернуть своё приложение WordPress на сервере, либо использовать инструмент вроде ngrok для создания туннеля к *localhost*.

Если вы используете Ngrok, ваш URL вебхука будет выглядеть примерно так: `http://8f65b745.ngrok.io/demo_wp_app/wp-json/receivedx/v1/receive_sms`. Обратите внимание, что этот URL меняется каждый раз при перезапуске `ngrok`.

Теперь войдите в Twilio Console, перейдите в раздел Phone Number и нажмите на `Manage Numbers`, чтобы настроить номер или купить новый. Если у вас уже есть номер, вы увидите список номеров — нажмите на номер, который хотите настроить. Прокрутите вниз до раздела Messaging.

Добавьте URL вашего вебхука в поле `A MESSAGE COMES IN`. Убедитесь, что выпадающие списки слева и справа от вставленного вебхука установлены на `Webhook` и `HTTP POST` соответственно, затем сохраните изменения.

Теперь, когда всё настроено, давайте проверим, работает ли написанный нами код. Возьмите свой телефон или попросите друга отправить SMS с любым текстом на настроенный вами номер. Если всё сработало, вы должны получить ответ: «Привет из WordPress».

Вот и всё! Мы только что научились использовать функцию WordPress REST API для настройки маршрутов и конечных точек. Мы также узнали, как получать SMS на своём сайте WordPress.

Теперь вы можете получать SMS на своём сайте WordPress. Если вы хотите отправлять SMS, обязательно ознакомьтесь с моей статьёй о том, как отправлять SMS с помощью WordPress. Отныне вас ограничивает только ваша фантазия; например, когда пользователь отправляет сообщение на ваш номер Twilio, вы можете пересылать сообщение на свой номер и продолжать общение оттуда.

Спасибо за чтение. Поделитесь своими мыслями.

Onwuka Gideon

Twitter @gideon_onwuka

Facebook devgideon