##問題
Contact Form 7で作ったフォームがあり、データをkintoneに送信することはできています。「フォーム入力」→「確認画面」→「完了画面」の流れの中で、「確認画面」の時点でもデータが送信されています。(なのでkintoneに同じデータが2つ入る)
使用プラグインは下記の通りです。
「Contact Form 7」
「Contact Form 7 add confirm」
「Form data to kintone」
##現状
https://cocojam.jp/wordpress/923
上記リンクと同じ問題です。
しかし、Contact Form 7のバージョンが5.1.9以下なら、確認ボタンを押す事でkintoneにデータが送信される現象は発生しません。
Contact Form 7のバージョンが5.2以上になると、確認ボタンでkintoneにデータが送信される現象が発生します。。。
上記リンクの内容で問題の解決はできましたが、、、できれば原因を知りたいです。
Contact Form 7のバージョン5.1.9と、Contact Form 7バージョン5.2の差分を見比べてみたのですが、全くわかりません。。。
もし「バージョン5.2のここが原因なんじゃないかな?」とわかる方がいたら、教えていただきたいです!
##追記(原因の箇所が分かった)
plugins/contact-form7/includes/submission.php
の一部のコードをバージョン5.1.9のものにすると、確認ボタンでkintoneにデータが送信される現象が発生しなくなりました!
なので、Contact Form 7バージョン5.2を有効化した上で下記のようにコードを編集すると、一応問題は解決されました。。
php
1private function setup_posted_data() { 2 3 // contact form 7 バージョン5.2 4 //こっちはコメントアウトする 5 $posted_data = array_filter( (array) $_POST, function( $key ) { 6 return '_' !== substr( $key, 0, 1 ); 7 }, ARRAY_FILTER_USE_KEY ); 8 $posted_data = wp_unslash( $posted_data ); 9 10 // contact form 7 バージョン5.1.9 11 // こっちを使うとなぜか正常に動く 12 $posted_data = (array) $_POST; 13 $posted_data = array_diff_key( $posted_data, array( '_wpnonce' => '' ) ); 14 15 $posted_data = $this->sanitize_posted_data( $posted_data ); 16 17 $tags = $this->contact_form->scan_form_tags();
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。