質問編集履歴

1

ほぼほぼ自己解決できたので追記

2016/11/08 13:12

投稿

tuckQ
tuckQ

スコア64

test CHANGED
File without changes
test CHANGED
@@ -19,3 +19,61 @@
19
19
  ###質問
20
20
 
21
21
  どういうプログラムを作成すればよいか?まったくイメージが湧いていないので、まずは開発の糸口になるようなアドバイスをいただければ幸いです。
22
+
23
+
24
+
25
+ ###追記
26
+
27
+ もともと下記のような処理でコメント欄から取得したdata1のデータをcommentmetaテーブルに記録するところまで成功しておりました。
28
+
29
+
30
+
31
+ ```php
32
+
33
+ add_action( 'comment_post', 'save_comment_meta' );
34
+
35
+ function save_comment_meta( $comment_id ) {
36
+
37
+
38
+
39
+ $data1 = isset($_POST['data1']) ? $_POST['data1'] : null;
40
+
41
+
42
+
43
+ update_comment_meta( $comment_id, 'data1', $data1, true);
44
+
45
+
46
+
47
+ return;
48
+
49
+ }
50
+
51
+ ```
52
+
53
+ この処理だとそのままDB記録し、完了後に元のコメント入力ページに戻るという動作になるのですが、DB記録をする前に確認画面を咬ませ、下記のような処理を実現したい。
54
+
55
+
56
+
57
+ ①修正があれば「戻る」ボタンを押して元のコメント欄に戻ってコメント修正
58
+
59
+ ②修正がなければ「登録」ボタンを押してDB登録
60
+
61
+ ③登録完了後に元のコメント入力ページに戻る
62
+
63
+
64
+
65
+ 想像するに、コメントformの内容を確認画面に渡す処理ができればいいのでー、、、っとここで閃き、formのPOSTデータがどう引き継がれるかを追っていったところwp-comments-post.phpというファイルで下記フィルターフックを発見しました。
66
+
67
+
68
+
69
+ $location = apply_filters( 'comment_post_redirect', $location, $comment );
70
+
71
+
72
+
73
+ このフィルターフックを使って、任意のページにリダイレクトさせることができたので、あとはPOSTデータを表示させ「戻る」「登録」の処理を追加すれば完了かと思います。
74
+
75
+
76
+
77
+ 下記のサイトも参考にさせていただきました。
78
+
79
+ http://on-ze.com/archives/5262