確認画面を追加する
「Contact Form 7 add confirm」プラグインを追加
https://ja.wordpress.org/plugins/contact-form-7-add-confirm/
それぞれの画面時に表示されるクラスです。
入力画面クラス; .wpcf7c-elm-step1
確認画面クラス: .wpcf7c-elm-step2
完了画面クラス: .wpcf7c-elm-step3
<div class="wpcf7c-elm-step1 wpcf7c-elm-step2">
<table>
<tr>
<th>お名前[※]</th>
<td>[text* your-name]</td>
</tr>
<tr>
<th>内容</th>
<td>[textarea your-message]</td>
</tr>
</table>
</div>
<div class="wpcf7c-elm-step1">
[confirm "確認する"]
</div>
<div class="wpcf7c-elm-step2">
[back "修正する"]
[submit "送信する"]
</div>
<div class="wpcf7c-elm-step3">
<p>お問い合せありがとう!</p>
</div>
メールアドレスの再入力確認
<th>メールアドレス</th>
<td>[email*email]
確認のため、再入力してください。
[email*email_confirm]
</td>add_filter( 'wpcf7_validate_email', 'wpcf7_text_validation_filter_extend', 11, 2 );
add_filter( 'wpcf7_validate_email*', 'wpcf7_text_validation_filter_extend', 11, 2 );
function wpcf7_text_validation_filter_extend( $result, $tag ) {
$type = $tag['type'];
$name = $tag['name'];
$_POST[$name] = trim( strtr( (string) $_POST[$name], "\n", " " ) );
if ( 'email' == $type || 'email*' == $type ) {
if (preg_match('/(.*)_confirm$/', $name, $matches)){
$target_name = $matches[1];
if ($_POST[$name] != $_POST[$target_name]) {
if (method_exists($result, 'invalidate')) {
$result->invalidate( $tag,"確認用のメールアドレスが一致していません");
} else {
$result['valid'] = false;
$result['reason'][$name] = '確認用のメールアドレスが一致していません';
}
}
}
}
return $result;
}
メッセージボックスの配置を変更する
挿入したいところに [response] を入れる。
複数入れることも可能なので、入力フィールドの上下に設置することもできます。
完了画面を別ページにリダイレクト
完了ページを別途固定ページなどで作成します。
location.replace(‘/complete/’); の箇所にリンク先を設定してください。
add_action( 'wp_footer', 'mycustom_wp_footer' );
function mycustom_wp_footer() {
?>
<script type="text/javascript">
if($('.wpcf7').length){
var wpcf7Elm = document.querySelector( '.wpcf7' );
wpcf7Elm.addEventListener( 'wpcf7mailsent', function( event ) {
location.replace('/complete/');
}, false );
}
</script>
<?php
}



コメント