Résumé IA
Vous souhaitez renforcer la sécurité de vos formulaires web ? Avec un simple extrait de code PHP, vous pouvez bloquer efficacement les soumissions provenant de domaines spécifiques directement dans le champ de texte de votre formulaire. Dans ce tutoriel, nous vous guiderons étape par étape dans la mise en œuvre de cette fonctionnalité, en veillant à ce que vos formulaires restent protégés contre le spam et les soumissions malveillantes.
Création du formulaire
Nous commencerons par créer un nouveau formulaire. Notre formulaire est simplement un formulaire de contact où nous leur demanderons leur nom, leur e-mail et tout commentaire supplémentaire qu'ils souhaiteraient ajouter.
Pour notre exemple de formulaire, nous ajouterons les champs de formulaire Nom, E-mail, Texte de paragraphe et Captcha personnalisé (pour une sécurité supplémentaire).

Si vous avez besoin d'aide, veuillez consulter notre guide utile sur la création d'un nouveau formulaire.
Blocage des domaines
Il est maintenant temps d'ajouter notre/nos extrait(s) de code. Pour toute aide sur comment et où ajouter des extraits de code, veuillez consulter ce tutoriel.
Champ de texte de paragraphe
/**
* Block domains inside the Paragraph Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_textarea( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_textarea' , 'wpf_dev_prevent_domains_textarea', 10, 3 );
Cet extrait de code recherchera dans le champ de formulaire Texte de paragraphe toute combinaison des mots indiqués dans preg_match et bloquera la soumission du formulaire si elle est vraie.

Champ de texte d'une seule ligne
Vous pouvez tout aussi facilement utiliser la même fonctionnalité pour le champ Texte d'une seule ligne. L'extrait de code sera presque identique, à l'exception du nom du filtre.
/**
* Block domains inside the Single Line Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_text( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_text' , 'wpf_dev_prevent_domains_text', 10, 3 );
Et c'est tout ce dont vous avez besoin ! Souhaitez-vous également bloquer toute grossièreté dans ces champs ? Consultez notre tutoriel sur Comment bloquer les soumissions de formulaire contenant des grossièretés.
Actions de référence
FAQ
Q : Puis-je utiliser cela sur le champ de formulaire Texte enrichi ?
R : Absolument ! Voici l'extrait de code pour le champ de formulaire Texte enrichi.
/**
* Block domains inside the Rich Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_richtext( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_richtext' , 'wpf_dev_prevent_domains_richtext', 10, 3 );
Q : Comment puis-je appliquer cela à d'autres champs ?
R : Presque tous les champs ont un type de validation. La plupart des champs utiliseront do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ). Vous remplaceriez simplement _{$field_type} par le type de champ.