私の特定の問題に助けてくれる人がいることを願っています。Wordpress PHPフォーム - ページを去るときにデータが削除される
私は現在Wordpress内で 'lp_lesson'というカスタム投稿タイプに表示される質問/回答フォームに取り組んでいます。
私は正常にWordpressの管理者側にある質問フォームを作成しました。複数の質問フィールドを生成し、それをSQLデータベースに動的に保存することができます。 質問はpost_metaの配列として保存されます。
ウェブサイトのフロントエンドでは、特定のカスタム投稿タイプの場合、質問フィールドが表示され、各質問フィールドの下には、ユーザーがその特定の質問に対する回答を入力するためのテキストエリアがあります。 答えはuser_metaに配列として保存されます。
すべてのフォームが正常にデータベースに送信されます。
しかし
あなたが戻ると、フォームを送信してページを残した後、それはかつてそこに提出されたすべてのデータを削除します。
私はフォームの前にupdate_user_metaがあったと思われました。空のフォームデータを送信している可能性がありますが、フォームの後ろにupdate_user_metaを置いてみましたが、違いはありません。
下記の私の機能をご覧ください。
function activity_form_function() {
global $current_user;
$course = LP()->global['course'];
$item = LP()->global['course-item'];
$courseID = $course->ID;
$itemID = $item->ID;
$lp_lesson_activity = get_post_meta($item->ID, 'activities', true);
if (!empty($lp_lesson_activity[0])) {
?>
<div class="lp-lesson-activity">
<h4>Activity</h4>
<form name="lessonactivity" action="" method="POST">
<ul>
<?php
$c = 0;
foreach ($lp_lesson_activity as $activity) {
$activity_question_push = "AID" . $courseID . $itemID . $c++;
$assessment = $activity['assessment'];
$fieldname = 'activities_' . $itemID;
$activity_question_answer = $_POST['activities'];
update_user_meta($current_user->ID, $fieldname, $activity_question_answer);
$activity_question_answerGUD = get_user_meta($current_user->ID, $fieldname, true);
?>
<li class="lp-activity-question">
<span><?php echo $activity['title']; ?></span>
<div class="lp-activity-answer-container">
<input type="hidden" name="activities[<?php echo $activity_question_push; ?>][question]" value="">
<textarea placeholder="Enter answer here" name="activities[<?php echo $activity_question_push; ?>][answer]"><?php echo $activity_question_answerGUD[$activity_question_push]['answer']; ?></textarea>
<?php if ($assessment) { ?>
<span class="notice">This activity will be assessed and will contribute to your final grade. Please take your time.</span>
<?php } ?>
</div>
</li>
<?php } ?>
</ul>
<button type="submit">Save</button>
</form>
</div>
<?php }
}
更新:これはupdate_user_metaと関係があります。私は、完全にupdate_user_metaを削除すると、問題が発生しなくなり、ページから離れてページに戻り、データがデータベースに残ることを意味することがわかりました。しかし、update_user_metaを削除すると、フィールドは更新されません。だから私は正方形に戻っています。 – user3686263
私はまた、私の機能の全体を通常のポストタイプに移動しましたが、エラーは依然として発生します。 – user3686263