Introduction
Souhaitez-vous définir un montant minimum pour un champ de prix dans votre WPForms ? En utilisant un petit snippet PHP, vous pouvez facilement définir un montant minimum pour le champ de prix d'un article unique qui est défini par l'utilisateur. Dans ce tutoriel, nous allons vous guider à travers chaque étape pour y parvenir.
Création du formulaire
Tout d'abord, vous devez créer un formulaire et y ajouter un champ "Prix de l'article". Une fois le champ ajouté, assurez-vous que le type d'article est défini par l'utilisateur.
Si vous avez besoin d'aide pour configurer un formulaire avec le champ " élément unique", veuillez consulter cet article.
Ajout de la classe CSS
Ensuite, nous allons ajouter une classe CSS à ce champ afin qu'il déclenche la vérification par le snippet du montant minimum requis.
Pour ajouter un nom de classe CSS à un champ de formulaire, sélectionnez l'option Article unique et cliquez sur le bouton Avancé tab. À l'intérieur de l'onglet Classes CSS, entrez le set-minimum
et enregistrer le formulaire.
Ajout du snippet permettant de fixer un montant minimum
Dans cette dernière étape, vous devrez ajouter l'extrait à votre site. Si vous avez besoin d'aide pour ajouter des snippets à votre site, veuillez consulter ce tutoriel.
/** * Set a minimum amount price field. * * @link https://wpforms.com/developers/how-to-set-minimum-amount-for-a-price-field/ */ function wpf_set_minimum_amount_input( $field_id, $field_submit, $form_data ) { // This snippet will run for all forms $form_id = $form_data[ 'id' ]; // And it will run for all fields with the CSS class of set-minimum $fields = $form_data[ 'fields' ]; // Define your minimum amount here. $minimum_amount = 5; // Check if field has custom CSS class configured if ( !empty( $fields[ $field_id ][ 'css' ] ) ) { $classes = explode( ' ', $fields[$field_id][ 'css' ] ); if ( in_array( 'set-minimum', $classes ) ) { if ( $minimum_amount > (float) wpforms_sanitize_amount( $field_submit ) ) { wpforms()->process->errors[ $form_id ][ $field_id ] = __( 'Minimum amount is $' . $minimum_amount . '.', 'plugin-domain' ); return; } } } } add_action( 'wpforms_process_validate_payment-single', 'wpf_set_minimum_amount_input', 10, 3 );
Ce snippet s'exécutera automatiquement pour tous les formulaires, mais uniquement pour les champs dont le nom de classe CSS est set-minimum. Si le montant saisi n'atteint pas le minimum, il produira une erreur lorsque le formulaire sera soumis.
Et c'est tout ce dont vous avez besoin ! Vous souhaitez savoir comment masquer ce montant dans les notifications par e-mail ? Consultez notre tutoriel sur Comment masquer la valeur du prix de l'article dans les notifications par courriel.
FAQ
Q : Pourquoi cela ne fonctionne-t-il pas pour mon site ?
A : Si cette erreur n'empêche pas la soumission du formulaire, vérifiez à nouveau que vous avez saisi le nom de la classe CSS dans le bon champ.
Q : Comment fixer un montant maximum ?
A : Pour utiliser un extrait similaire afin de fixer un montant maximum, vous devez d'abord mettre à jour le fichier Classes CSS nom à set-maximum
de la même manière qu'à l'étape précédente.
Il suffit ensuite d'ajouter cet extrait à votre site.
/** * Set a maximum amount price field. * * @link https://wpforms.com/developers/how-to-set-minimum-amount-for-a-price-field/ */ function wpf_set_maximum_amount_input( $field_id, $field_submit, $form_data ) { // This snippet will run for all forms $form_id = $form_data[ 'id' ]; // And it will run for all fields with the CSS class of set-minimum $fields = $form_data[ 'fields' ]; // Define your minimum amount here. $maximum_amount = 5000; // Check if field has custom CSS class configured if ( !empty( $fields[ $field_id ][ 'css' ] ) ) { $classes = explode( ' ', $fields[ $field_id ][ 'css' ] ); if ( in_array( 'set-maximum', $classes ) ) { if ( $maximum_amount < (float) wpforms_sanitize_amount( $field_submit ) ) { wpforms()->process->errors[ $form_id ][ $field_id ] = __( 'Maximum amount is $' . $maximum_amount . '.', 'plugin-domain' ); return; } } } } add_action( 'wpforms_process_validate_payment-single', 'wpf_set_maximum_amount_input', 10, 3 );