wordpress

Contact form 7 で送信後サンクスページに飛ばす(googleスプレッドシートのプラグインのとき)

WordPress のメールフォームプラグイン Contact form 7で送信後にサンクスページに飛ばすには、

<script>
document.addEventListener( 'wpcf7mailsent', function( event ) {
  location = '/thanks';
}, false );
</script>

みたいな感じで、送信を検知してlocation飛ばすことができるけど、

Contact form 7の入力内容をgoogleスプレッドシートに自動入力させるナイスなプラグイン
CF7 Google Sheet Connector
を使用しているときは上記の方法ではまったく遷移しなくて嵌ったので、それを解決した時のメモ。

試行錯誤したけど、解決策は至ってシンプル。
head タグ内に以下の感じでスクリプトを書くだけ。

<script>
  url = location.href;
  if(url.match('wpcf7')){
    location.href = "/thanks";
  }
</script>

通常使用のContact form 7 メール送信時は、たぶんAjaxで処理して画面遷移無しで送信完了メッセージを出すけど、
CF7 Google Sheet Connector ではどうやら一旦ページ遷移してgoogleスプレッドシートでなんちゃらして元のページに戻ってくるようで。

なので、event listenerが効かない。

ただ、戻ってくるときにurl末尾に「wpcf7-xxxxxxxx」みたいなのがくっついてくるから、
JavaScriptでurlとってきて、「wpcf7 て文字列があったらリダイレクトしちゃうよ」ってするだけでOKでした。

-wordpress

Copyright© MDBloG , 2020 All Rights Reserved Powered by AFFINGER5.