Почему Contact Form 7 перестает работать на статических сайтах
Вы экспортируете свой сайт WordPress в статический HTML. Ваша контактная форма перестает работать. В консоли вы видите ошибку 404.
Contact Form 7 требует PHP. Она использует REST API для обработки данных. В статических сайтах нет PHP. Нет PHP — значит, нет и REST API.
Некоторые винят CORS. Заголовок CORS не решит проблему отсутствия сервера. Вам нужен бэкенд для обработки отправки почты.
Если вы используете Simply Static Pro, проверьте права доступа к файлам. Ошибку вызывает отсутствие JS-файла. Выполните эту команду:
chmod 644 /var/www/html/wp-content/plugins/simply-static-pro/assets/ssp-form-webhook-public.js
Запустите экспорт снова.
Два способа это исправить:
- Оставьте WordPress на поддомене. Используйте его как API. Добавьте CORS-заголовки в ваш файл .htaccess.
- Используйте сервис статических форм. Попробуйте Formspree или Netlify Forms.
Как отладить:
- Перейдите по вашему URL WordPress, добавив в конце
/wp-json/. Если вы видите 404, ваш бэкенд не работает. - Откройте DevTools. Отправьте форму. Ищите ошибки 404 или CORS.
- Проверьте файл
forms.json. Убедитесь, что эндпоинт указывает на ваш домен WordPress.
Хватит бороться с симптомами. Исправьте архитектуру.