WordPress サイトで作成したカスタム フォームを取得して、送信後に「ありがとうございました」ページにリダイレクトすることができません。フォーム アクションは、最初にフォーム コンテンツを電子メールで送信する php 関数を呼び出します。メールは問題なく届きます。
私のフォームタグは次のように設定されています:
<form id="adoptApp" action="<?php formMailer(); ?>" method="post">
そして私の formMailer 関数には以下が含まれます:
if ( empty($_POST["applicantName"]) ) {
return;
}
$to = "foo@bar.org";
if ( empty( $_POST["preferredPup"] ) ) {
$subject = "Addoption Application";
} else {
$subject = "Addoption Application for " . $_POST["preferredPup"];
}
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: Foo <foo@bar.org>" . "\r\n";
$headers .= "Cc: " . $_POST["applicantEmail"] . "\r\n";
$application = adoptionApplicationEmail();
mail( $to, $subject, $application, $headers );
PHPメール機能の後、ページのリダイレクトに次の方法を使用しようとしました。それらはすべて、単にリロードするだけの空白のフォームになります。
// Method #1
$redirectURL = "http://www.bar.org/thanks/";
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=' . $redirectURL . '">';
// Method #2
wp_safe_redirect('http://www.bar.org/thanks/');
// Method #3
header("Location: http://www.bar.org/thanks/");
最後に、サンキュー ページのコードです (役に立つ場合に備えて)。
<?php /* Template Name: FormSubmitted_ThankYou */ ?>
<?php get_header(); ?>
<?php $myScripts = $_SERVER['DOCUMENT_ROOT'] . 'path/to/scripts.php' ;
include $myScripts;
?>
<p style="padding: 5px">
<b>Thank you!</b><br />You application has been submitted. We will review it as soon as possible.<br />
In the meantime if you have any questions you may email us at <a href="mailto:foo@bar.org">foo@bar.org</a>
</p>
<?php get_footer(); ?>
私の意図は、$_POST データの一部を使用してサンキュー ページをさらにカスタマイズすることですが、このリダイレクトの問題で行き詰まりました。