Клиент и контекст проекта
Заказчик — российский проект, которому потребовалось принимать платежи через платёжную систему ROBOKASSA напрямую с сайта на WordPress. Стандартные плагины ROBOKASSA из репозитория WordPress не подходили под сценарий клиента: они либо перегружены функциями, либо не позволяли создавать множество независимых кнопок с разными настройками. Нужно было собственное решение — гибкое, простое в управлении и заточенное под конкретные задачи проекта. Все работы по разработке плагина я выполнил лично. Обезличивание: домен сайта, название проекта, имя клиента и контактные данные в публичной версии кейса не приводятся. Я базируюсь в Москве и работаю с заказчиками из любого региона РФ, СНГ и за рубежом — в данном случае все работы были выполнены удалённо.
Задачи проекта
Нужно было решить несколько задач, которые не покрывались стандартными плагинами ROBOKASSA:
Задача 1. Принимать платежи через ROBOKASSA
Подключить платёжную систему ROBOKASSA — одну из самых популярных в России. Пользователь должен иметь возможность кликнуть по кнопке, перейти на страницу ROBOKASSA, оплатить товар или услугу картой и вернуться на сайт.
Задача 2. Создавать несколько независимых кнопок оплаты
Стандартные плагины часто позволяют только одну форму оплаты или требуют сложной настройки для каждой новой кнопки. Клиенту нужно было иметь возможность создавать неограниченное количество кнопок — каждая со своим назначением платежа, своей суммой и своим письмом клиенту.
Задача 3. Управлять кнопками без программиста
Контент-менеджер клиента должен иметь возможность самостоятельно создавать новые кнопки, изменять их настройки и вставлять на сайт — без привлечения разработчика. Это означает, что нужна полноценная административная часть с понятным интерфейсом.
Задача 4. Автоматическая отправка писем после оплаты
После успешной оплаты клиент должен автоматически получать email с информацией. Причём для разных кнопок — разные письма: для одной — инструкция по получению товара, для другой — ссылка на материалы, для третьей — благодарность и подтверждение записи. Стандартные плагины такой гибкости не дают.
Возможности разработанного плагина
Разработанный мной плагин «Кнопка оплаты» решает все задачи клиента. Ниже — основные возможности:
| Возможность плагина | Описание |
| Неограниченное количество кнопок | Плагин позволяет создавать любое количество кнопок оплаты с индивидуальными настройками под разные товары, услуги или сценарии. |
| Административная часть | Каждая кнопка настраивается через отдельный раздел в админке WordPress — без программирования, силами контент-менеджера. |
| Назначение платежа | Для каждой кнопки индивидуально задаётся назначение платежа — это название товара или услуги, которое увидит клиент при оплате и в чеке ROBOKASSA. |
| Сумма платежа | Для каждой кнопки индивидуально задаётся сумма платежа в рублях. При необходимости можно создавать разные кнопки под разные ценовые позиции. |
| Письмо клиенту при оплате | Для каждой кнопки настраивается индивидуальный шаблон письма, которое автоматически отправляется клиенту после успешной оплаты. В письме можно передавать инструкции, ссылки на материалы, благодарности — для каждой кнопки своё. |
| Вставка на сайт шорткодом | Каждая кнопка вставляется на любую страницу или запись сайта простым шорткодом вида [robokassa_button id=»N»]. Не требует программирования. |
Решение
Все работы я выполнил лично. Подход — модульный: плагин разбит на несколько независимых компонентов (админка, шорткод-обработчик, интеграция с ROBOKASSA, отправка писем), каждый из которых можно поддерживать и развивать отдельно.
Этап 1. Анализ API ROBOKASSA и проектирование архитектуры
- Изучена официальная документация ROBOKASSA: механизм генерации платёжной ссылки, параметры запроса (MerchantLogin, OutSum, Description, SignatureValue), callback-механизм для подтверждения оплаты.
- Спроектирована архитектура плагина: отдельный Custom Post Type для кнопок, метабокс с настройками в админке, шорткод-обработчик, обработчик webhook от ROBOKASSA, модуль отправки писем.
- Продумана безопасность: проверка подписи ROBOKASSA при подтверждении оплаты — чтобы исключить подделку запросов.
Этап 2. Разработка административной части
- Создан отдельный раздел в админке WordPress для управления кнопками оплаты.
- Реализован интерфейс создания новой кнопки с полями: назначение платежа, сумма, шаблон письма клиенту.
- Реализован список всех созданных кнопок с возможностью редактирования, удаления и копирования шорткода.
- Для каждой кнопки автоматически генерируется уникальный шорткод вида [robokassa_button id=»N»] — его сразу можно вставлять на сайт.
Этап 3. Реализация шорткод-обработчика
- Реализован обработчик шорткода: при вставке [robokassa_button id=»N»] на странице выводится кнопка с настройками указанной кнопки.
- Кнопка отрисовывается с учётом дизайна сайта — встроена в тему WordPress, а не торчит инородным элементом.
- При клике на кнопку пользователь перенаправляется на страницу оплаты ROBOKASSA с предзаполненными параметрами: назначение, сумма, идентификатор заказа.
- Реализована корректная обработка неудачных сценариев: если кнопка удалена или ID не существует, шорткод ничего не выводит — без ошибок на фронтенде.
Этап 4. Интеграция с ROBOKASSA API
- Реализована генерация платёжной ссылки с правильной подписью (SignatureValue) — без этого ROBOKASSA не принимает запрос.
- Настроен обработчик Result URL — webhook от ROBOKASSA, который приходит при успешной оплате.
- Настроен обработчик Success URL — страница, на которую пользователь возвращается после успешной оплаты.
- Настроен обработчик Fail URL — страница для случая, когда платёж не прошёл.
- Реализована проверка подписи в обработчике Result URL — чтобы исключить подделку уведомлений об оплате.
Этап 5. Автоматическая отправка писем клиенту
- Реализован модуль отправки писем: при подтверждении оплаты плагин автоматически отправляет письмо клиенту на email, указанный при оплате.
- Для каждой кнопки используется индивидуальный шаблон письма — тот, что задан в админке.
- В шаблон письма можно вставлять переменные: сумма, назначение платежа, дата — для персонализации.
- Реализована защита от двойной отправки: если ROBOKASSA пришлёт повторный webhook по одной и той же оплате, письмо не отправится дважды.
Этап 6. Тестирование и внедрение
- Проведено тестирование в тестовом режиме ROBOKASSA — без реальных платежей.
- Проверены все сценарии: успешная оплата, неуспешная оплата, повторный webhook, удалённая кнопка, неверный ID шорткода.
- Проверена отправка писем — они приходят корректно, с нужным шаблоном для каждой кнопки.
- После тестирования плагин переключён в боевой режим, ROBOKASSA — в рабочий режим.
- Контент-менеджеру клиента передана инструкция по созданию новых кнопок и вставке шорткодов.
Результаты
Плагин «Кнопка оплаты» разработан и внедрён в продакшен. Клиент получил собственное решение для приёма платежей через ROBOKASSA, заточенное под его сценарий — с возможностью создавать неограниченное количество кнопок с индивидуальными настройками. Контент-ме
неджер клиента управляет кнопками самостоятельно через админку WordPress, без привлечения разработчика.
| Показатель | Результат |
| Тип проекта | Кастомный плагин для WordPress |
| Платформа сайта | WordPress |
| Платёжная система | ROBOKASSA |
| Количество кнопок оплаты | неограниченно |
| Способ вставки на сайт | шорткод |
| Административная часть | да, с индивидуальными настройками для каждой кнопки |
| Поля настройки в админке | назначение платежа, сумма, письмо клиенту |
| Автоматизация писем | да, индивидуальный шаблон письма для каждой кнопки |
Дополнительно клиент получил: полностью собственное решение, не зависящее от сторонних плагинов из репозитория WordPress — никаких рисков, что автор плагина перестанет его поддерживать или изменит логику; гибкую систему шаблонов писем — под каждую кнопку можно настроить своё сообщение клиенту; корректную обработку всех сценариев ROBOKASSA — успешная оплата, неуспешная, повторные webhook-уведомления; защиту от подделки запросов через проверку подписи.
Отступление: когда нужны кастомные плагины для WordPress
Хочу сделать небольшое отступление — потому что многие владельцы WordPress-сайтов сначала пытаются решить задачу бесплатными плагинами из репозитория, и только столкнувшись с ограничениями, обращаются к разработчику. Когда имеет смысл сразу заказать кастомный плагин:
- Когда нужно нестандартное количество независимых сущностей — например, неограниченное число кнопок оплаты, форм заявок, калькуляторов. Стандартные плагины часто ограничены одной формой или требуют сложной настройки.
- Когда нужна индивидуальная логика писем или уведомлений — для разных сценариев разные шаблоны, с разными переменными.
- Когда нужна интеграция с внешним API, у которого нет готового плагина в репозитории — или готовый плагин не покрывает нужный сценарий.
- Когда важна производительность — бесплатные плагины часто перегружены функциями, которые вам не нужны, и создают лишнюю нагрузку.
- Когда важна долгосрочная поддержка — собственный плагин развивается под ваши задачи, а не под задачи тысяч абстрактных пользователей.
Если стандартные плагины не покрывают ваши задачи — обращайтесь. Я разрабатываю кастомные плагины под конкретные сценарии: платёжные системы, интеграции с CRM, формы заявок, калькуляторы, импорт-экспорт данных.
Технологический стек
WordPress PHP MySQL ROBOKASSA API Custom Post Type WordPress Shortcode API WordPress Meta Box API Webhook (Result URL) MD5 подпись (SignatureValue) wp_mail (отправка писем)

