Почему 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.

Хватит бороться с симптомами. Исправьте архитектуру.

Источник: https://dev.to/rahul_sharma_15bd129bc69e/why-contact-form-7-breaks-on-static-sites-and-what-to-do-about-it-jg5