2026年11月12日

2026年11月12日

Cómo usar Gravity Forms: formularios, lógica condicional y correos

Este artículo es una edición localizada del original en japonés. Leer el original en japonés

Gravity Forms es un plugin de formularios de pago que no se distribuye en WordPress.org. Desde el panel de administración permite configurar la "lógica condicional" que muestra u oculta campos según una condición, el reparto de los destinatarios de las notificaciones según lo enviado, y el almacenamiento en la base de datos y la exportación de los datos enviados (entradas, entries). En este artículo se explica cómo crear un formulario básico y cómo usar los hooks pensados para desarrolladores. El contenido de las licencias y los nombres de los campos de la pantalla corresponden a lo consultado en el sitio oficial y en la documentación de Gravity Forms (en inglés) a noviembre de 2026. Las pantallas se describen con los nombres de los campos en inglés. Si las ves en español, la redacción puede ser distinta.

Licencias y complementos disponibles

Según la licencia cambian el número de sitios y los complementos que se pueden usar.

Licencia Sitios Principales complementos
Basic 1 Complementos básicos como Mailchimp, HubSpot y reCAPTCHA
Pro 3 Además de lo de Basic, Stripe, PayPal Checkout, Square, Zapier, Slack, etc.
Elite Ilimitados Todos los complementos (Webhooks, User Registration, Signature, Survey, etc.). Compatible también con multisitio

El complemento Webhooks, que envía los datos a un sistema externo, solo se puede usar con Elite (y con la licencia para organizaciones sin ánimo de lucro). Los de pago Stripe y PayPal Checkout son de Pro en adelante. Antes de comprar, consulta en la página oficial de precios en qué licencia se incluyen los complementos que necesitas.

Instalación y registro de la clave de licencia

Descarga el archivo ZIP del plugin desde la página de la cuenta del sitio oficial de Gravity Forms e instálalo y actívalo en "Plugins" → "Añadir nuevo plugin" (Add New) → "Subir plugin" (Upload Plugin). Si usas WP-CLI, es así.

wp plugin install /path/to/gravityforms.zip --activate

La clave de licencia se introduce en la pantalla "Forms → Settings". Si distribuyes la misma configuración a varios entornos, también puedes escribirla como una constante en wp-config.php. Al definir la constante, el campo de la clave de licencia de la pantalla de ajustes se muestra como no editable.

define( 'GF_LICENSE_KEY', 'YOUR-LICENSE-KEY-HERE' );

Crear un formulario e insertarlo

  1. En el panel de administración, abre "Forms → New Form", ponle un nombre al formulario y créalo.
  2. En "Add Fields", a la derecha, coloca campos como nombre (Name), correo electrónico (Email), teléfono (Phone), opciones (Drop Down), texto (Paragraph Text) y casilla de consentimiento (Consent).
  3. Al hacer clic en cada campo se abren sus ajustes. Para los campos obligatorios, activa "Required".
  4. Guarda con "Save Form".

Para colocar el formulario en una página, añade el bloque "Gravity Forms" en el editor de bloques y elige el formulario que has creado. Si lo insertas con un shortcode, es de esta forma, donde id es el ID del formulario que se muestra en la lista de formularios.

[gravityform id="1" title="false"]

Mostrar u ocultar campos con lógica condicional

Mostrar u ocultar campos, como "mostrar el campo de subida del currículum solo cuando el tipo de consulta es 'Empleo'", se configura con la lógica condicional (Conditional Logic).

  1. En el editor de formularios, haz clic en el campo que quieres mostrar u ocultar (por ejemplo, el campo de subida de archivo del currículum).
  2. En los ajustes del campo, abre "Conditional Logic" y activa "Enable Conditional Logic".
  3. Elige "Show (mostrar)" o "Hide (ocultar)" y, para las condiciones, "All (se cumplen todas)" o "Any (se cumple alguna)".
  4. En la fila de condición, elige el campo de origen (tipo de consulta), la comparación (is) y el valor (Empleo). Con el signo más junto a la fila puedes añadir condiciones.

También se puede configurar lógica condicional en los correos de notificación y en los mensajes de confirmación.

Configurar los correos de notificación

Los correos de notificación se configuran en "Forms → el formulario correspondiente → Form Settings → Notifications". Al crear un formulario ya hay preparada una notificación para el administrador. Con "Add New" puedes añadir notificaciones como respuestas automáticas.

Campo Contenido
Send To Destinatario. "Enter Email" es una dirección fija, "Select a Field" es el campo de correo electrónico del formulario y "Configure Routing" reparte los destinatarios según lo introducido
From Email Remitente. {admin_email} (la dirección de correo del administrador en "Ajustes" → "Generales" de WordPress) o una dirección fija
Reply To Dirección de respuesta. En las notificaciones al administrador, si pones la etiqueta de combinación del campo de correo de quien escribe, es más fácil responder
Subject / Message Asunto y cuerpo. Con las etiquetas de combinación puedes insertar lo introducido

Las etiquetas de combinación (merge tags) son marcas que insertan los valores enviados. El valor de un campo tiene la forma {etiqueta:ID_del_campo} (por ejemplo, {Name:1}; también vale omitir la etiqueta y escribir {:1}), y {all_fields} inserta todo lo introducido en forma de tabla. Si las eliges con el botón de etiquetas de combinación de la parte superior derecha del campo de mensaje, puedes introducirlas sin consultar el ID del campo.

Si pones como remitente una dirección del mismo dominio que el sitio, es menos probable que se trate como correo no deseado. Evita poner como remitente el correo de quien escribe; ponlo en Reply To.

Mensaje de confirmación tras el envío

Lo que se muestra después del envío se configura en "Form Settings → Confirmations". Hay tres tipos.

  • Text: muestra un mensaje en el lugar del formulario (valor inicial)
  • Page: redirige a una página del sitio
  • Redirect: redirige a la URL que indiques

Si preparas una página de envío completado para usarla en anuncios o en la medición de analítica, elige Page o Redirect.

Añadir validaciones con PHP

Las validaciones que no se pueden hacer con los ajustes del panel se pueden añadir con el filtro gform_field_validation. Si detrás del nombre del hook añades _ID_del_formulario_ID_del_campo, se aplica solo a ese campo. El siguiente ejemplo valida el teléfono introducido en el campo con ID 3 del formulario con ID 1. Se escribe en el functions.php del tema o en un plugin propio.

<?php
// Validar el teléfono del campo con ID 3 del formulario con ID 1
add_filter( 'gform_field_validation_1_3', function ( $result, $value, $form, $field ) {
	if ( ! is_string( $value ) || '' === $value ) {
		return $result; // Dejar el tratamiento de un campo vacío al ajuste "Required" del campo
	}

	$digits = str_replace( array( '-', ' ' ), '', $value );

	if ( ! preg_match( '/^0\d{9,10}$/', $digits ) ) {
		$result['is_valid'] = false;
		$result['message']  = 'Introduce el teléfono con 10 u 11 dígitos que empiecen por 0 (se pueden usar guiones).';
	}

	return $result;
}, 10, 4 );

El ID del formulario y el ID del campo se muestran al seleccionar el campo en el editor de formularios. Si rehaces un formulario, los ID cambian, así que comprueba que los ID sean los mismos en producción y en el entorno de desarrollo.

Notificar a un sistema externo tras el envío

Si con una licencia sin el complemento Webhooks quieres avisar a Slack u otro servicio en cada envío, puedes escribir el procesamiento con la acción gform_after_submission. Esta acción se ejecuta después de guardar la entrada y de enviar los correos de notificación. Se ejecuta también para las entradas que se han clasificado como spam, así que comprueba el estado antes de enviar. Además, con una licencia Pro o superior también se puede configurar con los complementos de Slack o de Zapier.

<?php
// Tras el envío del formulario con ID 1, notificar a un Incoming Webhook de Slack
add_action( 'gform_after_submission_1', function ( $entry, $form ) {
	if ( 'spam' === rgar( $entry, 'status' ) ) {
		return;
	}

	// La URL del Webhook se escribe en wp-config.php con define( 'MY_SLACK_WEBHOOK_URL', '...' );
	if ( ! defined( 'MY_SLACK_WEBHOOK_URL' ) ) {
		return;
	}

	wp_remote_post( MY_SLACK_WEBHOOK_URL, array(
		'headers' => array( 'Content-Type' => 'application/json' ),
		'body'    => wp_json_encode( array(
			'text' => sprintf( 'Nueva consulta: %s', rgar( $entry, '1' ) ),
		) ),
		'timeout' => 5,
	) );
}, 10, 2 );

rgar( $entry, '1' ) es el valor del campo con ID 1. Los campos con varios campos de entrada, como el campo de nombre (Name), se obtienen con un ID con punto decimal, como '1.3' (nombre) y '1.6' (apellido). La URL del Webhook es información secreta, así que no la escribas directamente en el código ni la incluyas en un repositorio público.

Consultar y exportar las entradas

Los datos enviados se guardan en la base de datos de WordPress y se pueden ver en la lista de "Forms → Entries". Para exportarlos a CSV, abre "Forms → Import/Export", elige el formulario en "Export Entries", indica los campos y el periodo que quieres exportar y descarga.

Para obtenerlas desde PHP se usa GFAPI::get_entries(). Este es un ejemplo para ver las últimas 10 entradas con WP-CLI.

wp eval 'echo wp_json_encode( GFAPI::get_entries( 1, array(), null, array( "offset" => 0, "page_size" => 10 ) ) );'

Puntos a tener en cuenta

  • Los datos enviados contienen datos personales. Si no hace falta guardarlos, define cómo vas a tratarlos: fijar en los ajustes del formulario un periodo de conservación y borrarlos, no dejar abandonados los CSV exportados, etc.
  • Cuando no llegan los correos de notificación, muchas veces la causa no es Gravity Forms sino el envío de correo del servidor. Usar un plugin que envíe por SMTP puede mejorarlo.
  • Antes de añadir código PHP, comprueba en un entorno de staging que el ID del formulario y el ID del campo son los correctos y que funciona.

¿Dudas sobre WordPress? Quien publica este sitio está en Japón y responde en japonés. Contacto (en japonés)

お気軽にご相談ください

お見積りへ お問い合わせへ
▲