¿Cómo forzar la actualización del total del pedido en WooCommerce?

  • WooCommerce - Blog

¿Cómo forzar la actualización del total del pedido en WooCommerce?

Hace apenas unos minutos Raquel, una lectora y seguidora de nuestro sitio web, nos comentaba en un comentario un problema que se ha encontrado en WooCommerce al hacer uso de nuestro plugin WooCommerce – APG Weight and Postcode/State/Country Shipping.

Concretamente el error hace que en la página de finalización del pedido no se actualice el total en función de la dirección de envío. De forma que el importe total del pedido puede ser erróneo. De hecho, Raquel comenta en su segundo comentario que sólo se actualiza al pulsar la caja de selección del campo Enviar a la dirección de facturación.

En realidad también se actualiza si se cambia el campo País, lo que ocurre es que en su tienda virtual no hay posibilidad al vender única y exclusivamente para España, pero nosotros también necesitamos que la actualización se realice al cambiar de provincia o estado y/o al cambiar de código postal.

Pues bien, la solución es muy simple, para ello sólo vamos a utilizar parte del código que creamos para la entrada ¿Cómo añadir un campo NIF o CIF a WooCommerce 2.0?, la cual también actualizamos con el arreglo al error encontrado, para que aquellos que necesiten añadir este campo también tengan solucionado el problema.

Vamos a modificar, como casi siempre, el archivo functions.php de nuestro tema o hijo de WordPress, en el que vamos a introducir el siguiente código PHP:

function campos_que_actualizan_el_total( $campos ) {
	$campos['state']['class'][0] .= ' update_totals_on_change';
	$campos['postcode']['class'][0] .= ' update_totals_on_change';

	return $campos;
}
add_filter( 'woocommerce_default_address_fields' , 'campos_que_actualizan_el_total' );

Y gracias a esta simple y sencilla modificación habremos arreglado el problema.

Esperamos que tanto a Raquel, como a todos los que habéis sufrido este problema, os resulte útil esta pequeño modificación. Esperamos vuestros comentarios.

14 Comentarios

  1. Raquel lunes, 27 de enero de 2014 en 11:54- Responder

    Hola:
    Acabo de incluir ese código en el archivo functions.php y doy fe de que ahora funciona correctamente!!! Muchísimas gracias por la ayuda y la rapidez!!!!!!

  2. Sergey lunes, 27 de enero de 2014 en 16:10- Responder

    Grandes! Seguir asi

  3. Chirag martes, 28 de enero de 2014 en 10:17- Responder

    Is it still necessary to place this in functions.php or it is now fixed?

  4. Guillem jueves, 16 de octubre de 2014 en 9:33- Responder

    Hola, aún es necesario actualizar el fichero functions.php con este código o ya ha sido corregido el bug en las posteriores actualizaciones?

    • Art Project Group jueves, 16 de octubre de 2014 en 9:40- Responder

      No es un bug, simplemente es algo que nunca han tenido en cuenta en WooCommerce ;-).

      De todas formas en todas las actualizaciones que hemos ido publicando del código, va incluida esta función.

      Un saludo.

  5. Guillem jueves, 16 de octubre de 2014 en 11:08- Responder

    Muchas gracias! 🙂

  6. Inés jueves, 15 de enero de 2015 en 18:51- Responder

    Buenas tardes,

    Actualicé a la última versión de WooCommerce (2.2.10) y dejó de funcionar la configuración de forzar la actualización, ahora si por ejemplo no se usa la calculadora antes de ir a caja, no aparecen los gastos de envío en finalizar compra. Y aunque se use, si se realizan después cambios en la dirección no actualiza los gastos de envío. Sólo se actualizan pulsando la pestaña de enviar a dirección diferente.

    A ver si sabéis como solucionarlo porque supone un gran inconveniente…

  7. KunStudio 17 domingo, 26 de abril de 2015 en 11:50- Responder

    He añadido esta funcion porque el plugin funcionaba perfectamente pero al actualizar a woocommerce 2.3.8 ya no me calcula los costes de envio segun la direccion y los pesos pero no me ha funcionado ya que sigue devolviendome el coste de envio minimo (es decir por el rango de peso minimo) tambien para los articulos mas pesados. Me podeis ayudar?

  8. KunStudio 17 domingo, 26 de abril de 2015 en 12:08- Responder

    Por cierto, el tema esta actualizado y ademas funcionaba perfectamente antes de actualizar al nuevo woocommerce…

  9. alvaro jueves, 16 de marzo de 2017 en 22:47- Responder

    Buenas noches,

    A mi me sigue sin funcionar no se me actualizan ni los metodos de envio ni el precio total.

    • Art Project Group viernes, 17 de marzo de 2017 en 15:20- Responder

      Acabamos de probarlo en una instalación totalmente limpia y funciona sin ningún tipo de problema. Asegúrate de que tengas actualizada la caché de tu sitio web, puede ser una de las causas por las que no te funciona el código.

      Un saludo.

Deje un comentario

Comparte esto con un amigo