Woocommerce agregado al gancho del carrito (después de que el producto se agregó correctamente al carrito)

2 minutos de lectura

avatar de usuario
Gaina Román

Necesito un gancho que se dispare después de agregar un producto al carrito. Algo así como una devolución de llamada exitosa de “woocommerce_add_to_cart”.

Me imagino que sería algo así como “woocommerce_added_to_cart”, pero no pude encontrar nada de eso. Sé que hay un evento ajax “added_to_cart”, pero me costará mucho código hacerlo a través de ajax.

Actualización – mi caso de uso: Estoy haciendo notificaciones de holgura en mi tienda de wc. Todos mis botones “Agregar al carrito” son ajax, y se tarda aproximadamente 0,6 segundos desde que se hace clic en “Agregar al carrito” hasta que aparece en el carrito. Si agrego mi notificación de holgura con el gancho “woocommerce_add_to_cart”, entonces espera hasta que entrega la notificación a holgura y luego actualiza el carrito, lo que demora hasta 2 segundos, lo cual es demasiado. El mejor de los casos sería tener un gancho php que se dispare después el producto se agregó correctamente al carrito, lo que no lo afectará.

  • Parece lo mismo. Edité mi publicación para que pueda ver mi caso de uso y comprender mejor lo que necesito.

    – Gaina Román

    3 de agosto de 2017 a las 10:21

avatar de usuario
Tristán

Respondiendo a esta vieja pregunta para los buscadores de Google:

La acción woocommerce_add_to_cart se dispara después de agregar un artículo al carrito.

y se puede usar como:

add_action( 'woocommerce_add_to_cart', function ()
{
  // your code here
});

acción relacionada woocommerce_cart_item_removed se dispara después de que se elimina un elemento

  • Usar cierres para ganchos no es buena idea porque no puedes quitarlos luego usando remove_action.

    – Reza Ramezanpour

    16 oct 2020 a las 12:43

Esta no es una respuesta directa a la pregunta, es más una solución. caso de uso guión.

Puedes simplemente crear un FIFO cola en algún lugar de su sistema que maneja todos los envíos de notificaciones de holgura.

El escenario sería como:

  1. cuando se agrega un nuevo artículo al carrito, crea un registro de cola simple para él (por ejemplo: AWS SQS, registro de tabla DB, etc., etc.)
  2. usando un trabajo cron, ejecuta algún tipo de código que leerá las entradas de su cola y realizará el “envío de notificación”.

usando esta técnica para aislar la acción que puede causar un retraso en el tiempo de respuesta, como el envío de notificaciones por correo electrónico.

¿Ha sido útil esta solución?