¡Atención!

Este artículo contiene código PHP y está destinado a desarrolladores. Ofrecemos este código como cortesía, pero no proporcionamos soporte para personalizaciones de código o desarrollo de terceros.

Para obtener ayuda adicional, consulta el tutorial de WPBeginner sobre cómo añadir código personalizado.

Descartar

Cómo bloquear envíos de formularios que contienen groserías

¿Te gustaría bloquear las envíos de tu formulario que contengan lenguaje obsceno? Puedes crear fácilmente una lista de palabras malsonantes que detendrán cualquier envío de formulario si se encuentran dentro de tu campo Texto de Párrafo o en un campo Texto de Línea Única utilizando un pequeño fragmento de código. En este tutorial, te guiaremos a través de los pasos sobre cómo lograr esto con PHP.

Creación de su formulario

Primero, necesitarás crear un nuevo formulario y añadir un campo de Texto de Párrafo o un campo de Texto de Línea Única.

Si necesitas ayuda para crear un formulario, por favor consulta esta documentación.

añadir un campo de formulario de texto único o de párrafo a tu nuevo formulario

Bloquear envíos que contengan lenguaje obsceno

A continuación, crea una lista de palabras que quieras añadir a tu filtro de lenguaje obsceno. Una vez que hayas identificado las palabras que quieres bloquear, necesitarás añadir uno de estos fragmentos a tu sitio. Si necesitas ayuda para añadir fragmentos a tu sitio, por favor consulta esta documentación.

Simplemente añadirás cada palabra a tu $blocked_words separada por una coma.

Campo de formulario de Texto de Párrafo

/**
 * 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 );

Usar este fragmento bloqueará los envíos que contengan lenguaje obsceno dentro del campo de formulario de texto de párrafo

Campo de formulario de Texto de Línea Única

/**
 * 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 );

Campo de formulario de Texto Enriquecido

/**
 * 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 );

¡Y eso es todo! Ahora has creado e implementado un filtro de lenguaje obsceno para tus campos de formulario de Línea Única y Texto de Párrafo. ¿Te gustaría bloquear que se introduzcan URLs en tu formulario? Echa un vistazo a nuestro tutorial sobre Cómo Bloquear URLs Dentro de los Campos del Formulario.

Acciones de Referencia