Skip to main content
andrés ignacio torres

Mensajes de error en acciones personalizadas de Elementor Form

Si eres usuario del plug-in Elementor para WordPress, puede que eventualmente necesites agregar alguna acción personalizada para el sub-sistema de formularios (Elementor Forms). Por ejemplo, puede que requieras llamar a una API específica al recibir la entrada del usuario en un formulario, o crear filas personalizadas en tu base de datos para las que las acciones nativas del plug-in (como enviar correos electrónicos o guardar las respuestas del formulario) se quedan cortas.

La documentación oficial de Elementor Form Actions (en inglés) contiene una introducción a las acciones personalizadas para formularios, incluyendo dos ejemplos de código sobre cómo crear acciones nuevas. Sin embargo, ninguno de estos ejemplos (o el resto de la documentación) entra en detalles sobre cómo manejar errores (es decir, cómo informar al front-end que no puedes continuar procesando la data y que el usuario debe ajustar sus respuestas).

Para lograr esto, puedes probar el siguiente fragmento de código:

public function run( $record, $ajax_handler )
{
  // Esta es la función que ejecuta tu acción personalizada
  // para procesar las respuestas del formulario en Elementor

  // Intentemos hacer algo que puede fallar
  try {
    accion_que_puede_fallar();
  } catch (Exception $e) {
    // Agregando la excepción general al manejador AJAX
    $ajax_handler->add_error_message($e->getMessage());

    // También puedes agregar el error a algún campo en específico
    $ajax_handler->add_error(
      'username',
      $e->getMessage()
    );

    return false;
  }
}

Puedes notar que este fragmento de código y su comportamiento son similares a los detallados en la documentación de Elementor Form Fields (en inglés), que descubrí luego de escribir esta entrada del blog. Sin embargo, como estos detalles no se mencionan en la documentación de las acciones de Elementor Forms, espero que esta publicación sirva como un puente para ambas secciones, para quienes necesiten atajar los errores de formularios con gracia en sus acciones personalizadas.