Comment définir le montant minimum d'un champ de prix

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.

créez un nouveau formulaire a, ajoutez un champ de prix d'article unique à votre formulaire et définissez le type d'article comme étant défini par l'utilisateur

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.

ajouter le nom de la classe css au champ de l'élément unique

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.

Il y a maintenant une erreur de montant minimum lorsque le formulaire est 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.

ajouter le nom de la classe css au champ de l'élément unique

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