Задача решалась связкой из четырёх сторонних плагинов: каждый закрывал часть требований, тянул лишний функционал и конфликтовал с соседними. После очередного обновления сайт переставал работать.
Что было сделано
- разобраны реальные сценарии и отброшено всё, чем не пользовались;
- написан один плагин с нужной логикой: свои типы записей, поля и роли;
- панель настроек с понятными формулировками вместо десятка разрозненных экранов;
- REST-эндпоинты для обмена с внешним сервисом;
- перенос накопленных данных из старых плагинов без потерь.
Технические решения
Автозагрузка по PSR-4, логика разнесена по сервисам, точки расширения вынесены в хуки. Плагин не трогает чужие таблицы и полностью удаляется штатными средствами, не оставляя мусора в базе.
Результат
Вместо четырёх расширений — одно. Обновления WordPress перестали ломать сайт, а новые требования добавляются правкой в одном месте.



