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' ) ); }