Avisos
Vaciar todo

valor del envio en decimales

4 Respuestas
3 Usuarios
0 Reactions
9 Visitas
Respuestas: 314
Honorable Member
Topic starter
 

Buenos dias, recientemente en la web de https://www.cayetanaysolon.com/ tenemos el inconveniente que en el valor del envio a nivel nacional que esta configurado por valor de $21.900 , se le esta cobrando al cliente $22 , al parecer esto es debido a que llego un correo al administrador del sitio donde le dice que se actualizo el plugin de woocommerce de forma automática

Lo extraño es que si se selecciona la ciudad de Bogota, ahi si esta tomando correctamente el separador de miles y cobra $13.000 ,

Adjunto aqui las capturas de las configuraciones

Como se podria solucionar?

Gracias!

Captura de Pantalla 2026 03 06 a la(s) 8.27.07 a.m.
Captura de Pantalla 2026 03 06 a la(s) 8.39.36 a.m.
Captura de Pantalla 2026 03 06 a la(s) 8.41.21 a.m.
Captura de Pantalla 2026 03 06 a la(s) 8.42.45 a.m.
Captura de Pantalla 2026 03 06 a la(s) 8.43.03 a.m.

 

 

 


 
Respondido : 06/03/2026 1:43 pm
Karen Rios
Respuestas: 19315
Illustrious Member Moderator
 

Hola Fabian, 

Como tines configurado el idioma de la tienda? selecciona en ajustes → general español colombia

Si tienes pediente alguna actualización de woocommerce realizara y verifica en incognito como muestra los precios del envio. 

Verificalo y nos comentas como va todo

Un Saludo 

 

 
Respondido : 06/03/2026 3:16 pm
Respuestas: 314
Honorable Member
Topic starter
 

Hola Karen, el idioma lo tenia como Español, ya lo cambie a Español Colombia y actualice woocommerce pero continua igual.... que mas podria ser?


 
Respondido : 06/03/2026 8:39 pm
Argenis
Respuestas: 12012
Illustrious Member Moderator
 

Hola Fabian,

Trata con este codigo:

add_filter( 'woocommerce_price_num_decimals', function( $decimals ) {
if ( function_exists('get_woocommerce_currency') && get_woocommerce_currency() === 'COP' ) {
return 0;
}
return $decimals;
}, 20 );

add_filter( 'woocommerce_package_rates', function( $rates, $package ) {

$currency = function_exists('get_woocommerce_currency') ? get_woocommerce_currency() : '';

foreach ( $rates as $rate_id => $rate ) {

$cost = $rate->cost;

if ( is_string( $cost ) && preg_match( '/^\d{1,3}(\.\d{3})+$/', $cost ) ) {
$rate->cost = (int) str_replace( '.', '', $cost );
}

if ( $currency === 'COP' && is_numeric( $rate->cost ) ) {
$val = (float) $rate->cost;

if ( $val > 0 && $val < 1000 && floor($val) != $val ) {
$rate->cost = (int) round( $val * 1000 ); // 21.9 -> 21900
} else {
$rate->cost = (int) round( $val ); // fuerza entero
}
}
}

return $rates;
}, 9999, 2 );

Verifica en la pagina de compra es decir agrega un producto y prueba con una direccion real.

Un saludo 


 
Respondido : 06/03/2026 10:17 pm