Attention !

Cet article contient du code PHP et est destiné aux développeurs. Nous fournissons ce code à titre de courtoisie, mais nous n'offrons pas de support pour les personnalisations de code ou le développement tiers.

Pour obtenir de l'aide supplémentaire, veuillez consulter le tutoriel de WPBeginner sur l'ajout de code personnalisé.

Ignorer

Comment bloquer les soumissions de formulaire contenant du langage grossier

Souhaitez-vous bloquer les soumissions de votre formulaire contenant du langage grossier ? Vous pouvez facilement créer une liste de gros mots qui empêcheront toute soumission de formulaire s'ils sont trouvés dans votre champ Texte de paragraphe ou dans un champ Texte sur une seule ligne à l'aide d'un petit extrait de code. Dans ce tutoriel, nous vous guiderons à travers les étapes pour y parvenir avec PHP.

Création de votre formulaire

Tout d'abord, vous devrez créer un nouveau formulaire et ajouter un champ Texte de paragraphe ou Texte sur une seule ligne.

Si vous avez besoin d'aide pour créer un formulaire, veuillez consulter cette documentation.

ajouter un champ de formulaire texte simple ou paragraphe à votre nouveau formulaire

Bloquer les soumissions contenant du langage grossier

Ensuite, dressez une liste des mots que vous souhaitez ajouter à votre filtre de langage grossier. Une fois que vous avez identifié les mots que vous souhaitez bloquer, vous devrez ajouter l'un de ces extraits à votre site. Si vous avez besoin d'aide pour ajouter des extraits à votre site, veuillez consulter cette documentation.

Vous ajouterez simplement chaque mot à votre $blocked_words séparé par une virgule.

Champ de formulaire Texte de paragraphe

/**
 * Prevent profanity words from Paragraph Text form fields.
 *
 * @link https://wpforms.com/developers/how-to-block-form-submissions-containing-profanity/
 */

function wpf_dev_profanity_filter_paragraph( $field_id, $field_submit, $form_data ) {

        // 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.', 'plugin-domain' );
            return;
        }
    }

}

add_action( 'wpforms_process_validate_textarea', 'wpf_dev_profanity_filter_paragraph', 10, 3 );

L'utilisation de cet extrait bloquera les soumissions contenant du langage grossier dans le champ de formulaire texte de paragraphe

Champ de formulaire Texte sur une seule ligne

/**
 * Prevent profanity words from Single Line Text form fields.
 *
 * @link https://wpforms.com/developers/how-to-block-form-submissions-containing-profanity/
 */

function wpf_dev_profanity_filter_single_text( $field_id, $field_submit, $form_data ) {

        // 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.', 'plugin-domain' );
            return;
        }
    }

}

add_action( 'wpforms_process_validate_text', 'wpf_dev_profanity_filter_single_text', 10, 3 );

Champ de formulaire Texte enrichi

/**
 * Prevent profanity words from Rich Text form fields.
 *
 * @link https://wpforms.com/developers/how-to-block-form-submissions-containing-profanity/
 */

function wpf_dev_profanity_filter_rich_text( $field_id, $field_submit, $form_data ) {

        // 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.', 'plugin-domain' );
            return;
        }
    }

}

add_action( 'wpforms_process_validate_richtext', 'wpf_dev_profanity_filter_rich_text', 10, 3 );

Et voilà ! Vous avez maintenant créé et implémenté un filtre de langage grossier pour vos champs de formulaire Texte sur une seule ligne et Texte de paragraphe. Souhaitez-vous bloquer les URL de la saisie dans votre formulaire ? Consultez notre tutoriel sur Comment bloquer les URL dans les champs de formulaire.

Actions de référence