WooCommerce devuelve el precio get_total() con dos decimales

2 minutos de lectura

WooCommerce devuelve el precio get total con dos decimales
pablo marcos

Hola, estoy implementando un complemento de pasarela de pago pero tengo un problema. Muestra un error y dijeron que es porque la cantidad total del carrito y la cantidad total del precio que un sitio web envía para ellos es diferente. Y es porque lo obtienen sin números decimales, por ej. en el carrito esta 519.00 y están recibiendo sólo 519.

Este complemento obtiene el carrito total por $order->get_total() función. ¿Hay algún método para hacer que funcione? get_total() tomar el precio del pedido ya con .00? o si es 519.5 para hacerlo 519.50 y así ?

Cambiar una función en su complemento también podría funcionar, pero probé otros como WC()->cart->total pero también muestra los totales sin decimales.

  • Algo como number_format($order->get_total(), 2, '.', ''); ?

    – Ty Bailey

    5 de abril de 2017 a las 13:23

  • O usa el money_format() Función PHP y establezca su configuración regional. Por ejemplo, yo haría: setlocale(LC_MONETARY, 'en_US'); y luego echo money_format('%i', $order->get_total());

    – Ty Bailey

    5 de abril de 2017 a las 13:25

WooCommerce tiene una función incorporada para esto
wc_format_decimal()

Uso:

wc_format_decimal( $order->get_total(), 2 );
//or
wc_format_decimal(WC()->cart->total, 2 );

¡Espero que esto ayude!

  • ¡Nunca supe de esta función!

    – Ty Bailey

    5 de abril de 2017 a las 13:34

  • real tenía una función personalizada Me gusta esto en mi complemento con la devolución de los detalles completos del pedido para una API, así que mientras lo hacía me di cuenta de esto.

    – Raunak Gupta

    5 de abril de 2017 a las 13:38

  • ¡Genial, esto funcionó! @TyBailey number_format($order->get_total(), 2, '.', ''); funcionó como un encanto también. Muchas gracias 🙂

    – Pablo Marcos

    5 de abril de 2017 a las 13:41


  • Me alegro de estar aquí. Sin embargo, siempre es mejor usar una función integrada 🙂

    – Ty Bailey

    5 de abril de 2017 a las 13:42

  • Si, probablemente. Pero mis clientes no pueden esperar más para pagarme su dinero, así que me quedaré con esta solución rápida :))

    – Pablo Marcos

    5 de abril de 2017 a las 13:44

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad