###前提・実現したいこと
現状:「コメント投稿->元の画面に戻る」
理想:「コメント投稿->確認画面->元の画面に戻る」
というコメント内容確認画面を挟むフローに変更したい。
###試したこと
・他の方の参考例がないか?ググってみたが、よい例がみつからなかった。
###質問
どういうプログラムを作成すればよいか?まったくイメージが湧いていないので、まずは開発の糸口になるようなアドバイスをいただければ幸いです。
###追記
もともと下記のような処理でコメント欄から取得したdata1のデータをcommentmetaテーブルに記録するところまで成功しておりました。
php
1add_action( 'comment_post', 'save_comment_meta' ); 2function save_comment_meta( $comment_id ) { 3 4$data1 = isset($_POST['data1']) ? $_POST['data1'] : null; 5 6update_comment_meta( $comment_id, 'data1', $data1, true); 7 8return; 9}
この処理だとそのままDB記録し、完了後に元のコメント入力ページに戻るという動作になるのですが、DB記録をする前に確認画面を咬ませ、下記のような処理を実現したい。
①修正があれば「戻る」ボタンを押して元のコメント欄に戻ってコメント修正
②修正がなければ「登録」ボタンを押してDB登録
③登録完了後に元のコメント入力ページに戻る
想像するに、コメントformの内容を確認画面に渡す処理ができればいいのでー、、、っとここで閃き、formのPOSTデータがどう引き継がれるかを追っていったところwp-comments-post.phpというファイルで下記フィルターフックを発見しました。
$location = apply_filters( 'comment_post_redirect', $location, $comment );
このフィルターフックを使って、任意のページにリダイレクトさせることができたので、あとはPOSTデータを表示させ「戻る」「登録」の処理を追加すれば完了かと思います。
下記のサイトも参考にさせていただきました。
http://on-ze.com/archives/5262
回答1件
あなたの回答
tips
プレビュー