Facebook にシェア
[`evernote` not found]
LINEで送る

前回は、色々挑戦しましたが上手く確認メッセージが追加できませんでした。
Contact Form 7はメールの送信時にAJAXで色々手を加えていて、それに割り込んで機能を追加するにはまだ技術不足でした。
そこでいっそのこと、AJAX部分を削って、確認ダイアログを無理矢理追加しました。

*注意 WPの一部機能を削っているのでそれによって不具合がでる場合があります。
必ずバックアップをとって自己責任でお願いします。

まず現在使用しているテーマファイルのバックアップをとっておきます。
wordpressの管理画面から外観→テーマ→編集を選びます。
右のほうにヘッダー(header.php)というのがあるとおもうので、そこをクリックします。

テーマによってある場所は違いますが、<?php wp_head(); ?>というのが存在した場合削除します。
これは様々なユーザー関数等を読み込んでいるもので、Contact Formだけではなく他のプラグインでも利用している可能性が高いです。動作がおかしくなった場合戻してください。

削除した場所の下に以下の文を追加する。

<script type="text/javascript">
<!-- 

function check(){

	if(window.confirm('送信してよろしいですか?')){ // 確認ダイアログを表示

		return true; // 「OK」時は送信を実行

	}
	else{ // 「キャンセル」時の処理

		window.alert('キャンセルされました'); // 警告ダイアログを表示
		return false; // 送信を中止

	}

}

// -->
</script>

その後プラグイン→Contact Form 7から編集を選ぶ。
includes/classes.phpを開き、

$form .= ‘<form action=”‘ . $url . ‘” method=”post”‘ . $enctype . ‘>’ . “\n”;

とかかれているところを

$form .= ‘<form action=”‘ . $url . ‘” method=”post”‘ . $enctype . ‘onSubmit=”return check()”>’ . “\n”;

に変更する。
これで送信するときにメッセージが表示されます。

check

キャンセルを押すと、送信されずにOKを押すと送信されるのを確認してください。
また、AJAX部分を削ったのでエラー時赤や黄色や緑枠で囲まれた表示メッセージがでなくなっています。

これで改造は終了です。お疲れ様でした。