Он-то, может, технически все верно сделал, но оно не будет работать как надо в силу того, что бот не распознает поле, как нужное к заполнению, либо же палит его по характерным атрибутам (предсказуемый класс/Id, инлайновый display:none или другое, влияющее на отображение, не отмеченное поле как пользовательские данные - например, "name" или "email"). А может и вовсе поле добавляется на фронтенде яваскриптом - у обычного посетителя появится, у бота - возможно и нет.
Как проверить? Либо у другого программиста, либо попросив здесь и предоставив код. Либо же пусть на сервере логирует попытки спама в форму (хоть в текстовый файл) и потом представит, раз утверждает, что все работает - возможно, какая-то часть ботов обходит, а какая-то - блокируется