Lista de eventos JS en el frontend de WooCommerce
¿Dónde puedo encontrar una lista exhaustiva de eventos Javascript definidos por WooCommerce (eventos como woocommerce_variation_has_changed
)?

En mi búsqueda de lo mismo, me sumergí un poco en los archivos fuente de JS.
Eventos JavaScript de Woocommerce
Eventos JS del Checkout de Woocommerce
$( document.body ).trigger( 'init_checkout' );
$( document.body ).trigger( 'payment_method_selected' );
$( document.body ).trigger( 'update_checkout' );
$( document.body ).trigger( 'updated_checkout' );
$( document.body ).trigger( 'checkout_error' );
$( document.body ).trigger( 'applied_coupon_in_checkout' );
$( document.body ).trigger( 'removed_coupon_in_checkout' );
Eventos JS de la página del carrito de Woocommerce
$( document.body ).trigger( 'wc_cart_emptied' );
$( document.body ).trigger( 'update_checkout' );
$( document.body ).trigger( 'updated_wc_div' );
$( document.body ).trigger( 'updated_cart_totals' );
$( document.body ).trigger( 'country_to_state_changed' );
$( document.body ).trigger( 'updated_shipping_method' );
$( document.body ).trigger( 'applied_coupon', [ coupon_code ] );
$( document.body ).trigger( 'removed_coupon', [ coupon ] );
Eventos JS de la página de producto individual de Woocommerce
$( '.wc-tabs-wrapper, .woocommerce-tabs, #rating' ).trigger( 'init' );
Eventos JS de la página de producto variable de Woocommerce
$( document.body ).trigger( 'found_variation', [variation] );
Eventos JS de Añadir al carrito de Woocommerce
$( document.body ).trigger( 'adding_to_cart', [ $thisbutton, data ] );
$( document.body ).trigger( 'added_to_cart', [ response.fragments, response.cart_hash, $thisbutton ] );
$( document.body ).trigger( 'removed_from_cart', [ response.fragments, response.cart_hash, $thisbutton ] );
$( document.body ).trigger( 'wc_cart_button_updated', [ $button ] );
$( document.body ).trigger( 'cart_page_refreshed' );
$( document.body ).trigger( 'cart_totals_refreshed' );
$( document.body ).trigger( 'wc_fragments_loaded' );
Eventos JS de Añadir método de pago de Woocommerce
$( document.body ).trigger( 'init_add_payment_method' );
Para vincular un listener a estos eventos, usa:
jQuery('<event_target>').on('<event_name>', function(){
console.log('<event_name> triggered');
});
Por ejemplo:
jQuery('body').on('init_checkout', function(){
console.log('init_checkout triggered');
// ahora.haz.loque.quieras();
});

Gracias por tu respuesta, esto es lo que estaba buscando, volveré aquí si encuentro otros eventos.

Esto no funciona para mí. Sospecho que mi script necesita depender de los scripts de woocommerce, pero no sé cómo están registrados.

@Badger ¿qué es lo que no funciona específicamente? ¿En qué página estás trabajando y has comprobado si los scripts de woocommerce se están cargando?

No se registra nada en la consola cuando agrego algo al carrito en la página de producto usando el siguiente código: jQuery(function() {
// Producto agregado al carrito
jQuery('body').on('added_to_cart', function(){
console.log('Item was added to cart');
});
});
Los scripts parecen estar cargándose. He encolado mi script para que dependa de 'woocommerce'

@Badger lo siento, olvidé responderte. Para otros que puedan tener el mismo problema, por defecto Woocommerce recarga completamente la página al evento de agregar al carrito, por lo que el evento JS nunca ocurre. Si habilitas agregar al carrito con AJAX en los ajustes de WC, también obtendrás el evento JS.

¿Alguien podría agregar una descripción a cada uno de los triggers? Específicamente, estoy buscando un evento que se dispare al completar el checkout correctamente - ¿debería usar "init_checkout" u otra cosa?

@SwimmingG básicamente, un checkout exitoso (enviado) o pedido viene con una redirección a la página de 'agradecimiento' o similar. ¿Tienes un comportamiento personalizado en esto? Tal vez el gancho de acción woocommerce_thankyou (php) o similar sea lo que necesitas.

@ViktorBorítás gracias Viktor - idealmente me gustaría poder usar un activador que solo use javascript en el front end en lugar de trabajar en php. Si no puedo hacerlo solo con js, entonces pasaré a lo que has mencionado. Muchas gracias :)

Estoy buscando activar la búsqueda de stock después de actualizar los menús desplegables externamente, a menos que esté abordando esto de manera incorrecta. Necesito pasar los valores a algo para obtener un ID de variación.
Mi idea es que necesito activar una actualización en el botón de agregar al carrito, pero no he tenido suerte.

Para encontrar una lista completa de todos los eventos (y mantenerse actualizado sobre cualquier evento nuevo que se agregue) puedes consultar los archivos .js en el directorio:
/wp-content/plugins/woocommerce/assets/js/frontend
A continuación, reporto otros eventos (además de la respuesta de @jgangso):
VARIACIONES
hide_variation
se activa cuando se restablecen los datos de variación mostradosshow_variation
se activa cuando se encuentra una variación que coincide con todos los atributoswoocommerce_variation_select_change
se activa cuando cambia un campo de atributowoocommerce_variation_has_changed
se activa cuando se ha cambiado la selección de variacióncheck_variations
se activa:- cuando cambia un campo de atributo
- al recargar los datos de variación desde el DOM
woocommerce_update_variation_values
se activa cuando se han actualizado las variacioneswoocommerce_gallery_reset_slide_position
restablece la posición del slide si la variación tiene una imagen diferente a la actualwoocommerce_gallery_init_zoom
establece las imágenes del producto para la variación elegida
FRAGMENTOS DEL CARRITO
wc_fragments_refreshed
se activa cuando la actualización de fragmentos del carrito vía Ajax fue exitosawc_fragments_ajax_error
se activa cuando la actualización de fragmentos del carrito vía Ajax ha falladowc_fragment_refresh
actualiza cuando se muestra la página después del botón de retroceso (safari)wc_fragments_loaded
se activa después de que se han cargado los fragmentos del carrito
SELECCIÓN DE PAÍS (CHECKOUT)
country_to_state_changed
se activa cuando cambia el país desde el campo de seleccióncountry_to_state_changing
ywc_address_i18n_ready
manejan la configuración regional
PRODUCTO INDIVIDUAL
wc-product-gallery-before-init
se activa antes de inicializar todas las galerías en la páginawc-product-gallery-after-init
se activa después de inicializar todas las galerías en la página
DESLIZADOR DE PRECIOS
price_slider_updated
se activa después de actualizar el deslizador de preciosprice_slider_create
se activa después de crear el deslizador de preciosprice_slider_slide
se activa después de deslizar el control de preciosprice_slider_change
se activa después de cambiar el deslizador de precios
Respuestas relacionadas:

Además de las referencias completas de la lista, puedes optar por la vía interactiva y pegar lo siguiente en tu consola JS para realizar las acciones en la tienda que deseas monitorear, observando la consola para ver los eventos afectados que se registran.
jQuery(document.body).on(
"init_checkout payment_method_selected update_checkout updated_checkout checkout_error applied_coupon_in_checkout removed_coupon_in_checkout adding_to_cart added_to_cart removed_from_cart wc_cart_button_updated cart_page_refreshed cart_totals_refreshed wc_fragments_loaded init_add_payment_method wc_cart_emptied updated_wc_div updated_cart_totals country_to_state_changed updated_shipping_method applied_coupon removed_coupon",
function (e) {
console.log(e.type)
}
)
