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!
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
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?
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