Что сообщил клиент
«На сайте не работает форма. Нужно починить. Судя по прайсу, это должно стоить около 2 000 ₽».
Что видно снаружи
- форма открывается;
- поля заполняются;
- при отправке появляется ошибка или ничего не происходит;
- остальные страницы на первый взгляд работают.
Что обнаружено при проверке
Сама форма и серверный обработчик исправны. Ошибку вызывает сторонний JavaScript, который ранее добавили для другого элемента страницы. Скрипт обращается к отсутствующему объекту и останавливает выполнение последующего кода. Из-за этого не только форма, но и часть функций темы работает нестабильно: на одних страницах не открывается меню, на других не срабатывают кнопки, а на мобильных устройствах проблема проявляется чаще.
Почему нельзя просто заменить форму
Замена формы скроет один симптом, но конфликтующий скрипт останется и продолжит ломать интерфейс. Пользователь может потеряться раньше формы: не открыть меню, не перейти к услуге или не нажать кнопку. Это уже не локальная настройка одного поля.
Фактический состав работ
- Создать резервную копию и безопасную среду проверки.
- Воспроизвести ошибку на затронутых страницах и устройствах.
- Найти источник подключения скрипта.
- Понять, какую функцию он должен выполнять.
- Удалить, ограничить или переписать конфликтующий код.
- Проверить связанные функции темы.
- Повторно проверить отправку формы и доставку заявки.
- Пройти основные кнопки, меню и интерактивные элементы.
- Проверить desktop и mobile.
- Убедиться, что в консоли нет новых критических ошибок.
Как меняется цена
Локальная правка одной настройки могла бы стоить около 2 000 ₽. Но подтверждённый объём включает исследование чужого кода, исправление общей причины и проверку нескольких сценариев. Поэтому комплексная работа может стоить около 10 000 ₽.
Что получает клиент до решения
До расширенных работ клиент получает объяснение причины, перечень обязательных действий, список явных исключений, итоговую цену и способ проверки. Без согласия стоимость не увеличивается. Клиент может отказаться, ограничить объём или перенести часть работ на следующий этап.