MW WPFormの開発終了に伴い、フォームの再構築を余儀なくされている制作現場が増えています。
特に多いのが、Contact Form 7(以下CF7)に移行したものの、
- 完了ページへ遷移できない
- JavaScriptで無理やり対応している
- 有料アドオンに頼るしかない?
というケース。
ですが、実はCF7公式が紹介している方法で、無料かつ簡潔に完了ページ遷移が可能なんです。
結論:JavaScriptとfunctions.phpで完了ページ遷移はできる
公式ドキュメント(CF7公式リンク)では、次のようなJavaScriptイベントを使う方法が紹介されています。
document.addEventListener( 'wpcf7mailsent', function( event ) {
location.href = '/thanks/';
}, false );
ただし、footer.php
などに直書きするのではなく、WordPressのfunctions.php
に記述して管理するのがベストです。
実装手順(functions.phpで対応)
以下のコードを、子テーマのfunctions.php
ファイルに追記してください。
add_action( 'wp_footer', function() {
?>
<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
location.href = '/thanks/'; // 任意の完了ページURLに変更
}, false );
</script>
<?php
});
ポイント解説
wpcf7mailsent
:送信成功時に発火する公式イベントlocation.href = '/thanks/';
:送信後の遷移先wp_footer
:WordPressのフッター領域にスクリプトを挿入するフック
注意点
- JavaScriptが無効な環境では動作しません(稀)
- 完了ページ
/thanks/
は事前に作成しておく必要があります - 複数フォームがある場合は
event.detail.contactFormId
を条件に含めて制御できます
例:
if (event.detail.contactFormId == '123') {
location.href = '/thanks/';
}
補足:Contact Form 7 で完了ページを使うメリット
- GAやCVタグの設置が可能(完了ページでトラッキングしやすい)
- 送信後に安心感を与える導線が作れる
- 静的なthanks.htmlなどにも遷移できる
まとめ
MW WPForm終了後、CF7への移行は王道ですが「完了ページが出せない」と悩む必要はありません。
公式の方法を活用すれば、プラグイン不要・コードのみで対応可能です。
関連リンク
お困りの方へ
制作会社様や担当者の方で「実装が不安」「ついでにフォーム全体を整理したい」という方は、お気軽に[お問い合わせページ]からご相談ください。