Résumé IA
Description
L'action wpforms_process_validate_text déclenche la validation du champ de formulaire Texte sur une seule ligne lors de la soumission du formulaire.
Paramètres
- $field_id
- (int) ID du champ.
- $field_submit
- (array) Valeur brute/non assainie d'origine soumise pour le champ.
- $form_data
- (array) Paramètres/données du formulaire traités, préparés pour une utilisation ultérieure.
Source
wpforms/includes/fields/class-base.php
Plus d'informations
L'action est appliquée à un tableau pour le champ de formulaire Texte sur une seule ligne. Cette fonction peut être utilisée pour tous les champs de formulaire do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).
Par exemple, pour l'utiliser pour un champ Email, vous utiliseriez do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ).
Il est important de noter que les valeurs des champs ne sont pas assainies avant plus tard dans le processus, à wpforms_process_validate_{$field_type}.
Exemples
Vous pouvez utiliser cette action pour analyser le Texte sur une seule ligne pour tout ce que vous souhaitez faire valider avant l'envoi du formulaire.
Dans cet exemple, nous allons rechercher toute grossièreté dans ce champ. S'il y a une grossièreté, le formulaire affichera une erreur et ne sera pas envoyé.
/*
* Check the single line text field for profanity.
*
* @link https://wpforms.com/developers/wpforms_process_validate_text/
*
* @param int $field_id Field ID.
* @param array $field_submit Unsanitized field value submitted for the field.
* @param array $form_data Form data and settings.
*/
function wpf_dev_profanity_filter_single_text( $field_id, $field_submit, $form_data ) {
// Optional, you can limit to specific forms. Below, we restrict output to
// form ID #1423.
if ( absint( $form_data[ 'id' ] ) !== 1423 ) {
return;
}
//Create your list of profanity words separated by commas
$blocked_words = array(
'badword1',
'badword2'
);
foreach( $blocked_words as $word ) {
if(strpos($field_submit, $word) !== FALSE ) {
wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'No profanity allowed.', 'wpforms' );
return;
}
}
}
add_action( 'wpforms_process_validate_text', 'wpf_dev_profanity_filter_single_text', 10, 3 );