Résumé IA
Description
L'action wpforms_process_validate_number-slider déclenche la validation du champ Number Slider lors de la soumission du formulaire, avant que toute valeur de champ ne soit assainie.
| paramètre | type | description |
|---|---|---|
$field_id | string|int | ID du champ sous forme de chaîne numérique. |
$field_submit | mixed | Valeur du champ soumise (données brutes). La valeur du curseur telle que postée, avant que le champ ne la convertisse en float. |
$form_data | tableau | Données du formulaire. |
Plus d'informations
L'action se déclenche à l'intérieur de WPForms_Process::process(). Après l'exécution des hooks wpforms_process_before, la méthode parcourt chaque champ dans $form_data['fields'] et déclenche cette action une fois par champ avec la valeur brute de $_POST. Le fichier se trouve dans includes/, donc le hook se déclenche à la fois dans Lite et Pro. La classe de champ Number Slider est également incluse dans les deux (includes/fields/class-number-slider.php).
Ce hook est une instance de do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $form_data ). Le nom du hook conserve le trait d'union du type de champ. Le même appel déclenche wpforms_process_validate_email pour le champ Email et wpforms_process_validate_name pour le champ Name.
La propre validation du champ s'exécute sur cette même action. WPForms_Field::__construct() ajoute la méthode validate() de chaque champ à la priorité 10 avec trois arguments. Pour le Number Slider, cette méthode convertit la valeur en float, applique le paramètre Requis (une valeur de 0 compte comme remplie) et définit le message wpforms_valid_number_label lorsque la valeur n'est pas numérique.
Pour rejeter une soumission, écrivez un message dans wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ]. Toute erreur définie pendant cette boucle arrête le traitement avant que l'entrée ne soit enregistrée. Cela ne s'exécute que lors de la soumission finale. Sur un formulaire multipage, cela n'empêche pas l'utilisateur de passer d'une page à l'autre.
Source
wpforms/includes/class-process.php
Exemple
Rejette une soumission de Number Slider lorsque la valeur sélectionnée est 0, obligeant ainsi l'utilisateur à déplacer le curseur avant que le formulaire ne soit traité.
/**
* Require a Number Slider value other than 0.
*
* @link https://wpforms.com/developers/wpforms_process_validate_number-slider/
*
* @param string|int $field_id Field ID as a numeric string.
* @param mixed $field_submit Submitted field value (raw data).
* @param array $form_data Form data.
*/
function wpf_dev_validate_number_slider( $field_id, $field_submit, $form_data ) {
// Only run on the form with ID 143 and the Number Slider field with ID 1. Remember to change both IDs to match your form.
if ( absint( $form_data['id'] ) !== 143 || absint( $field_id ) !== 1 ) {
return;
}
if ( (float) $field_submit === 0.0 ) {
wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = esc_html__( 'Please select a number that is not 0.', 'wpforms' );
}
}
add_action( 'wpforms_process_validate_number-slider', 'wpf_dev_validate_number_slider', 10, 3 );




