Я создал собственный сайт WordPress для фотографа с помощью Oxygen. Вместо того, чтобы полагаться на плагин, я создал свою собственную форму контакта, используя блок кода на странице контактов и свой собственный скрипт проверки, который я поместил в каталог root.
В верхней части блока кода страницы Я добавил:
<?php include 'form-validate.php';?>
Форма затем отправляется сама себе, используя:
method="post" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?>"
Все это работает отлично: проверка происходит, и сообщения об ошибках отображаются на странице формы встроенными. Контактная форма также отправляет электронное письмо без проблем.
Проблема, с которой я столкнулся, связана с перенаправлением на страницу результатов "спасибо". На нужной странице есть постоянная ссылка WordPress / thank-you /. Я пытаюсь перенаправить с помощью header () в конце скрипта (который прекрасно работает на всех моих жестко закодированных сайтах):
header( "Location: https://www.example.com/thank-you/" );
Метод header () вызывается сразу после отправки электронного письма. К сожалению, вместо перенаправления на страницу благодарности WordPress или Oxygen обновляет страницу контактов и добавляет вверху предупреждение, которое гласит:
Служба технической поддержки Oxygen создала тестовый сайт с песочницей, используя мою форму и скрипт проверки и показал мне, что он работает нормально для них. Понятия не имею, почему мой будет другим. Я читал о буферизации вывода, но не знаю точно, что мне нужно изменить в моих скриптах, чтобы эта работа работала.