Résumé IA
Description
L'action wpforms_process_validate_payment-checkbox se déclenche pour chaque champ de paiement Case à cocher (Checkbox Items) pendant que WPForms valide un formulaire soumis, avant que la valeur de tout champ ne soit formatée et avant que l'entrée ne soit enregistrée.
Cette action est disponible depuis WPForms 1.4.0.
| paramètre | type | description |
|---|---|---|
$field_id | string|int | ID du champ sous forme de chaîne numérique. |
$field_submit | mixed | Valeur du champ soumis (données brutes). Pour ce champ, il s'agit du tableau des identifiants de choix cochés provenant de la requête, ou d'une chaîne vide lorsque rien n'a été envoyé pour le champ. |
$form_data | tableau | Données et paramètres du formulaire. |
Plus d'informations
WPForms_Process::process() parcourt chaque champ dans $form_data['fields'] et appelle do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $this->form_data ) pour chacun. Ce hook est l'instance pour le type de champ payment-checkbox. Il se déclenche à chaque soumission d'un formulaire contenant le champ, que le visiteur l'ait rempli ou non. Le fichier se trouve dans includes/, il se déclenche donc dans Lite et Pro.
Ce hook est une instance de do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $form_data ). D'autres instances sont wpforms_process_validate_payment-single pour le champ Article unique et wpforms_process_validate_checkbox pour le champ standard Cases à cocher.
La classe de champ enregistre sa propre méthode validate() sur ce hook à la priorité 10 avec trois arguments. Ce rappel ajoute l'erreur de champ obligatoire, rejette les identifiants de choix qui n'existent pas dans les paramètres du champ et applique la limite de choix du champ. Un rappel ajouté plus tard à la même priorité s'exécute après lui et écrase le même emplacement d'erreur.
Pour rejeter la soumission, écrivez un message dans wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ]. Après la boucle, le filtre wpforms_process_initial_errors s'exécute sur les erreurs collectées ; la logique conditionnelle l'utilise pour supprimer les erreurs des champs masqués. Les valeurs ne sont pas assainies à ce stade. L'assainissement se produit plus tard dans wpforms_process_format_{$field_type}.
Source
wpforms/includes/class-process.php
Exemple
Exiger entre deux et cinq éléments cochés dans un champ Case à cocher (Checkbox Items) sur un formulaire, et arrêter la soumission avec une erreur sous le champ lorsque le nombre est en dehors de cette plage.
/**
* Require between two and five checked items in a Checkbox Items field.
*
* @link https://wpforms.com/developers/wpforms_process_validate_payment-checkbox/
*
* @param string|int $field_id Field ID.
* @param mixed $field_submit Submitted field value (raw data).
* @param array $form_data Form data and settings.
*/
function wpf_dev_process_validate_payment_checkbox( $field_id, $field_submit, $form_data ) {
// Only run on my form with ID = 143, remember to change this to match your form ID.
if ( absint( $form_data['id'] ) !== 143 ) {
return;
}
// Only run on the Checkbox Items field with ID = 21, remember to change this to match your field ID.
if ( absint( $field_id ) !== 21 ) {
return;
}
$min = 2;
$max = 5;
$count = is_array( $field_submit ) ? count( $field_submit ) : 0;
if ( $count < $min ) {
wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = sprintf(
/* translators: %d - minimum number of choices. */
esc_html__( 'Please select a minimum of %d choices.', 'wpforms' ),
$min
);
return;
}
if ( $count > $max ) {
wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = sprintf(
/* translators: %d - maximum number of choices. */
esc_html__( 'Please select a maximum of %d choices.', 'wpforms' ),
$max
);
}
}
add_action( 'wpforms_process_validate_payment-checkbox', 'wpf_dev_process_validate_payment_checkbox', 10, 3 );




