Custom fields
Hi,
I have trouble adding a custom field to the Question and reply form.
I have successfully added (and modified) the field to the question form.
add_filter( 'buddypages_groups_get_is_admin', 'pluginizehelp_include_hidden_groups' );
/**
* Add custom fields to AnsPress question form.
*
* This hook will add two new fields in ask form.
*
* @param array $form Form arguments.
* @return void
*/
function my_custom_question_field( $form ) {
// Nickname question field.
$form['fields']['anonymous_name'] = array(
'label' => __( 'Name', 'anspress-question-answer' ),
'validate' => 'required,badwords',
'order' => 2,
'attr' => array(
'placeholder' => __( 'Kaldenavn' ),
),
);
// Age question field.
$form['fields']['age'] = array(
'type' => 'input',
'subtype' => 'number',
'attr' => array(
'placeholder' => __( 'Alder' ),
),
'label' => __( 'Your age', 'anspress-question-answer' ),
'validate' => 'required,badwords',
'order' => 2,
);
// editing question field.
$form['fields']['post_content'] = array(
'type' => 'textarea',
'label' => __( 'Description', 'anspress-question-answer' ),
'attr' => array(
'placeholder' => __( 'Spørgsmål' ),
),
'min_length' => ap_opt( 'minimum_question_length' ),
'validate' => 'required,min_string_length,badwords',
);
return $form;
}
add_filter( 'ap_question_form_fields', 'my_custom_question_field' );
But I cannot figure out how to save it.
- I am not sure where to expect it to be saved? Should it be saved to the wp_ap_qameta table to the “fields” column just like anonymous_field is? Or should i register an actual custom field? If so – how?
- How do I save it? I have tried the code bellow, but even with all the stuff commented out it is causing a 500 error to an AJAX call when submitting the question. It gets submitted but I am not redirected to the question page.
- I see no documentation on how to retrieve this custom field but it kind of depends on the answers to the previous 2 questions.
//----------- S A V I N G --------
function after_new_question($post_id, $post)
{
$form = anspress()->get_form( 'question_form' );
// Get all sanitized values.
$values = $form->get_values();
// Check nonce and is valid form.
/*
if ( ! $form->is_submitted() ) {
echo __( 'Holla, you trying to cheat!' );
return;
}*/
// update_post_meta( $post_id, 'age', $values['age']['value'] );
}
add_action('ap_processed_new_question', 'after_new_question', 0, 2 );
add_action('ap_processed_update_question', 'after_new_question', 0, 2 );I see this questin asked multiple times, but could’t work out the solution as some responses seem to be outdated or just pointing to this article https://anspress.io/resources/faq/anspress-form-and-validation-api/ that does not contain full solution.
sprunkiphase3game Answered question
A 500 error usually means a PHP issue. Possible causes in your original code:
$form->get_values(); may not work subway surfers as expected.
update_post_meta( $post_id, ‘age’, $values[‘age’][‘value’] ); may not be retrieving the value correctly.
Instead, directly use $_POST[‘age’], as shown in the fixed function.
bekeanloinse56 Answered question