Login
Get Started

Documentación de Easy Digital Downloads

Documentación, Materiales de Referencia y Tutoriales para Easy Digital Downloads 

Añadir código personalizado después de que un pedido se complete

En Easy Digital Downloads 3.2.0 se introdujeron las after order actions (acciones posteriores al pedido) para reemplazar las after payment actions (acciones posteriores al pago) obsoletas. Este hook proporciona a los desarrolladores una forma de procesar acciones intensivas cuando se completa un pago sin afectar la velocidad y el rendimiento del usuario final al completar la compra. Esta es una guía sobre cómo añadir una acción posterior al pedido.

Introducción a las acciones posteriores al pedido

Si desea realizar acciones adicionales cuando un pedido se marca como ‘completado’, le recomendamos que utilice el hook edd_after_order_actions en lugar del hook edd_complete_purchase. ¿Cuál es la diferencia entre estos dos hooks?

  • edd_complete_purchase – Se ejecuta durante el proceso de compra después de que el usuario hace clic en el botón ‘Completar compra’ y antes de que se cargue la página ‘Confirmación de compra’. Este hook debe usarse para tareas “críticas”, ya que afectará el tiempo percibido que tarda el usuario en completar su compra. Ejemplos de uso de este hook deberían ser tareas como la creación de claves de licencia, la generación de suscripciones o cualquier cosa que el usuario deba tener visible en la página del recibo.
  • edd_after_order_actions – Se ejecuta ~30 segundos después de que se completa la compra, a través del sistema WP_Cron. Este hook debe usarse para realizar llamadas adicionales a la API, consultas costosas a la base de datos y tareas que deben considerarse no críticas para que el usuario complete su compra. Buenos ejemplos de esto son añadir usuarios a listas de correo, calcular estadísticas para un usuario, actualizar cachés, etc.

¿Qué argumentos se pasan al hook?

El hook edd_after_order_actions envía tres argumentos:

  • El ID del pedido como un entero
  • El objeto EDD\Orders\Order
  • El objeto EDD_Customer

¿Qué estados de pedido se incluyen en ‘completado’?

Easy Digital Downloads utiliza el estado de complete para marcar un pedido como completado. Si está integrando o utilizando la extensión Recurring Payments, el estado edd_subscription también se considera un pedido ‘completado’. Si solo desea ejecutar su acción para la compra inicial (e ignorar las renovaciones de suscripción) deberá verificar que el $order->status tenga el valor complete antes de continuar con su integración.

¿Por qué requiere WP_Cron?

WP_Cron es un proceso en segundo plano que su sitio de WordPress utiliza para completar tareas sin afectar la experiencia del usuario al ver su sitio. Cuando se genera tráfico en su sitio, antes de que la página termine de cargarse, WordPress determina si hay alguna tarea en segundo plano que deba completarse. Si las hay, iniciará un proceso en segundo plano para manejar estas tareas pendientes.

¿Qué pasa si mi host deshabilita WP_Cron?

Aunque hacemos todo lo posible para detectar si WP_Cron está funcionando, puede haber un caso en el que no podamos detectarlo correctamente. Si su host o servidor tiene WP_Cron deshabilitado o modificado para ejecutarse a una frecuencia predeterminada, es posible que deba deshabilitar esta función manualmente. Hay un filtro si elige no usar los ganchos de acción posterior, en cuyo caso, EDD recurrirá y realizará las acciones en el momento de la finalización, y evitará el proceso retrasado.

AVISO: Debido a que este sistema de acciones posteriores al pedido depende de WP_Cron, no debe usarse para cosas consideradas 'críticas'. Es simplemente una forma de descargar integraciones costosas con API y grandes conjuntos de datos que no afectan directamente los datos de compra.

Puntos clave sobre las acciones posteriores al pedido

  • Se activa a través de WP_Cron
  • Se puede deshabilitar mediante un filtro (edd_use_after_payment_actions)
  • Por defecto, se programa 30 segundos después de la compra, pero se puede cambiar mediante un filtro.
  • La tabla de base de datos del pedido contiene una columna para el momento en que se completaron las acciones.

¿Hay algún ejemplo?

Hemos creado una 'plantilla' para integrarla con el gancho edd_after_order_actions en nuestra biblioteca de código WP. Se puede ver aquí:

Migración de su código desde edd_after_payment_actions

Si anteriormente se integró con el gancho edd_after_payment_actions, la buena noticia es que migrar a este nuevo y más eficiente gancho es bastante fácil.

La principal diferencia es el cambio en el segundo parámetro. En lugar de enviar el pago como un objeto EDD_Payment, enviará un objeto Order.

Was this article helpful?

¡Empieza a vender hoy mismo!

Únete a más de 50.000 propietarios de tiendas inteligentes y empieza a usar la forma más fácil de vender productos digitales con WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]