You can add custom input field to question submit form via action hook and validated data and save as you want.
/* * Display HTML inout field on form * Action hook: qa_question_submit_form * Arguments: none * */ function qa_question_submit_form_custom_field(){ $custom_field = isset($_POST['custom_field']) ? sanitize_text_field($_POST['custom_field']) : ""; ?> <div class="qa-form-field-wrap"> <div class="field-title"><?php esc_html_e('Custom field title','question-answer'); ?></div> <div class="field-input"> <input type="text" value="<?php echo $custom_field; ?>" name="custom_field"> <p class="field-details"><?php esc_html_e('Custom field details','question-answer'); ?> </p> </div> </div> <?php } add_action('qa_question_submit_form','qa_question_submit_form_custom_field', 60);
/* * Check input field data error handle * Filter hook: qa_question_submit_errors * Arguments: * $qa_error => WP_Error objects * $post_data => Form $_POST data variable * */ function qa_question_submit_errors_custom_field($qa_error, $post_data){ if(empty($post_data['custom_field'])){ $qa_error->add( 'custom_field', __( '<strong>ERROR</strong>: custom_field error message.', 'question-answer' ) ); } return $qa_error; } add_filter('qa_question_submit_errors','qa_question_submit_errors_custom_field', 90,2);
/* * Update/Save data to question based on post id * Action hook: qa_question_submitted * Arguments: * $question_ID => Submitted question post id. * $post_data => Form $_POST data variable. * */ function qa_question_submitted_custom_field($question_ID, $post_data){ $custom_field = isset($post_data['custom_field']) ? sanitize_text_field($post_data['custom_field']) : ""; update_post_meta($question_ID,'custom_field', $custom_field); } add_action('qa_question_submitted','qa_question_submitted_custom_field', 90, 2);