Resumen de IA
¿Interesado en mejorar la seguridad de tus formularios web? Con un simple fragmento de PHP, puedes bloquear eficazmente los envíos de dominios específicos directamente desde el campo de texto de tu formulario. En este tutorial, te guiaremos a través del proceso paso a paso para implementar esta función, asegurando que tus formularios permanezcan protegidos contra spam y envíos maliciosos.
Creación del formulario
Comenzaremos creando un nuevo formulario. Nuestro formulario es simplemente un formulario de contacto donde les pediremos su nombre, correo electrónico y cualquier comentario adicional que deseen añadir.
Para nuestro formulario de ejemplo, añadiremos los campos de formulario Nombre, Correo electrónico, Texto de párrafo y el CAPTCHA personalizado (para seguridad adicional).

Si necesitas ayuda, por favor consulta nuestra útil guía sobre cómo crear un nuevo formulario.
Bloqueo de dominios
Ahora es el momento de añadir nuestros fragmentos. Para cualquier ayuda sobre cómo y dónde añadir fragmentos, por favor revisa este tutorial.
Campo de texto de párrafo
/**
* 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 );
Este fragmento buscará dentro del campo de formulario Texto de párrafo cualquier combinación de las palabras mostradas dentro de preg_match y bloqueará el envío del formulario si es verdadero.

Campo de texto de una sola línea
Puedes usar la misma funcionalidad para el campo Texto de una sola línea con la misma facilidad. El fragmento será casi idéntico con la excepción del nombre del filtro.
/**
* 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 );
¡Y eso es todo lo que necesitas! ¿También te gustaría bloquear cualquier grosería en estos campos? Consulta nuestro tutorial sobre Cómo bloquear envíos de formularios que contienen groserías.
Acciones de Referencia
Preguntas frecuentes
P: ¿Puedo usar esto en el campo de formulario de texto enriquecido?
R: ¡Absolutamente! Aquí tienes el fragmento para el campo de formulario Texto enriquecido.
/**
* 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 );
P: ¿Cómo puedo aplicar esto a otros campos?
R: Casi todos los campos tienen algún tipo de validación. La mayoría de los campos usarán do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ). Simplemente reemplazarías _{$field_type} con el tipo de campo.