Au lieu de passer de longues minutes en back-office pour faire une liste déroulante à plusieurs dizaines d’éléments et aussi custom la value des champs, nous pouvons hook tout cela grâce à Gravity !
gform_pre_render
Dans mon cas de figure je demande de préremplir sur le formulaire à ID 6 son champ id 24 avec une fonction « get_list » qui retournera les valeurs souhaitées.
add_filter( 'gform_pre_render_6', 'populate_checkbox' );
add_filter( 'gform_pre_validation_6', 'populate_checkbox' );
add_filter( 'gform_pre_submission_filter_6', 'populate_checkbox' );
add_filter( 'gform_admin_pre_render_6', 'populate_checkbox' );
function populate_checkbox( $form ) {
foreach( $form['fields'] as &$field ) {
$field_id = 24;
if ( $field->id != $field_id ) {
continue;
}
$field->choices = get_list();
return$form;
}
}
Ensuite il faut créer la fonction qui envoie les valeurs et le tour est joué !
function get_list(){
return array(
array(
'value' => 'AD',
'text' => 'Andorre'
),
array(
'value' => 'AE',
'text' => 'Émirats Arabes Unis'
),
array(
'value' => 'AF',
'text' => 'Afghanistan'
),
array(
'value' => 'AG',
'text' => 'Antigua-et-Barbada'
),
array(
'value' => 'AI',
'text' => 'Anguilla'
),
array(
'value' => 'AL',
'text' => 'Albanie'
),
array(
'value' => 'AM',
'text' => 'Arménie'
)
);
}