Una función jQuery debe inicializarse después de que se hayan actualizado las opciones de envío, en la página de pago, a través de una llamada ajax, y se haya activado el evento personalizado de updated_shipping_method .
Mi fragmento de jQuery está configurado para escuchar este evento, pero no funciona según lo previsto.
jQuery( document.body ).on( 'updated_shipping_method', function(){ // Code stuffs // has the function initialized after the event trigger? console.log('on updated_shipping_method: function fired'); }); También probé el evento personalizado updated_wc_div sin éxito.
Estoy usando un método similar, casi palabra por palabra, en la página del carrito para escuchar el activador de evento personalizado para updated_cart_totals y funciona perfectamente. No estoy seguro de por qué este no es el caso de la página de pago.
Evento personalizado correcto: updated_checkout
El fragmento de código en cuestión estaba escuchando el evento personalizado de Woocommerce incorrecto.
El evento personalizado correcto para escuchar en este caso es updated_checkout .
Al seleccionar un nuevo método de envío, Woocommerce activa una llamada ajax para actualizar los totales del carrito a fin de reflejar el precio del método de envío seleccionado y, luego, activa updated_checkout .
Por lo tanto, si se escucha updated_checkout , en lugar de updated_shipping_method , la secuencia de comandos se activa según lo previsto.