NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.

Remplir un champ de sélection - Formidable Form
Difficile

---- Cet article a été modifié : 27 octobre 2022

Temps de lecture : 2 minutes, 50 seconds - 269 mots

Nous allons dans ce tutoriel, remplir un champ de sélection dans Formidable Form. Formidable form est l’une des plus belles extensions concernant la création de formulaires.

Créer un formulaire et ajouter un champ de sélection.

Vous pouvez donc créer un formulaire, paramétrer vos réglages et ensuite l’ajouter dans votre page ou article WordPress.

Ensuite, vos configurations faites, vous pouvez ajouter les champs nécessaires pour votre formulaire. (À noter que certains champs ne sont disponibles qu’en version PRO)

Dans notre cas, nous allons ajouter un champ personnalisé de type sélection.

Ensuite en cliquant sur notre champ, on peut voir le ID du champ à droite. Cet ID va être l’objet important l’on va faire une requête pour afficher par exemple les  articles dans cette sélection.

Remplir dynamiquement le champ de sélection - Nos articles

Pour effectuer cette requête nous allons créer une fonction filtre frm_setup_new_fields_vars de Formidable Form.

Pour éditer les valeurs des résultats, nous ajoutons le filtre frm_setup_new_fields_vars

Dans notre fonction on récupère notre ID (72) de notre champ ou vont apparaitre nos résultats de notre requête, c’est-à-dire nos articles.

Comme nous pouvoir voir dans notre fonction, nous avons créé un label par défaut pour votre sélection. (Dans notre exemple c’est Sélectionnez une question)

label => « Sélectionnez une question »

Articles WordPress dans un champ sélection Formidable Form
add_filter('frm_setup_new_fields_vars', 'themespress_select_field_function', 20, 2);
add_filter('frm_setup_edit_fields_vars', 'themespress_select_field_function', 20, 2);

function themespress_select_field_function($values, $field){

	if($field->id == 72){
		$arrayPositions = array();
		$pushobj = array(
			value => "",
			label => "Sélectionnez une question"
		);
		array_push($arrayPositions, $pushobj);
		$positionQuery = new WP_Query( array( 'post_type' => 'questions', 'posts_per_page' => -1, 'orderby' => "menu_order", 'order' => "ASC") );
		if ( $positionQuery->have_posts() ) {
			while ( $positionQuery->have_posts() ) {
				$positionQuery->the_post();
				$pushobj = array(
					value => get_the_title(),
					label => get_the_title()
				);
				array_push($arrayPositions, $pushobj);
			}
			wp_reset_postdata();
		}

	   	$values['options'] = $arrayPositions;
	}
	return $values;
}

Finalement dans votre requête, vous pouvez adapter aux articles ou types d’articles que vous souhaitez afficher.

$positionQuery = new WP_Query( array( 'post_type' => 'questions', 'posts_per_page' => -1, 'orderby' => "menu_order", 'order' => "ASC") );

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>