Avisos
Vaciar todo

Formulario en UTF-8  

 
Carlos
 Carlos
Honorable Member

Hola,
Cuando hacen un pedido, en el mensaje si ponen tildes o caracteres especiales me da error el transportista porque incluyen un &, me dicen que tengo que hacer una validación al formulario para que los datos se registren en UTF-8, ¿Como lo hago?

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 23/05/2019 1:12 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Qué versión exacta de PrestaShop usas?
Es probable que el theme que usas no este limpiando estos caracteres

Verifica si tienes este archivo:
themesTUTEMAtemplatescheckout_partialsstepsshipping.tpl

Prueba renombrándolo, de esta forma tomaría el archivo por defecto, la otra opción sería hacer modificaciones en el textarea, tal como se comenta en:
https://www.prestashop.com/forums/topic/611584-customer-message-on-checkout-delivery/

Prueba agregando un nuevo mensaje desde ese formulario ya que sólo servirían para los nuevos mensajes.

Saludos.

ResponderCitar
Respondido : 23/05/2019 6:35 pm

Cursos Gratuitos WordPress

Carlos
 Carlos
Honorable Member

Hola,
Si renombro el fichero en mi tema, me da error 500 y no funciona la web.
No me queda claro que es lo que tengo que poner en el fichero porque he probado a incluir {if isset($message)}{$message|escape:'html':'UTF-8'}{/if} y me da error

He probado a poner así {$delivery_message|escape:'html':'UTF-8'} y no hace nada 🙁
Sigue devolviendo el texto así: Prueba, texto mañana con tíldes

ResponderCitar
Respondido : 24/05/2019 12:04 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Carlos.

Edita el archivo Tools.php que encontraras en al carpeta classes y busca el siguiente código:

public static function htmlentitiesUTF8($string, $type = ENT_QUOTES)
    {
        if (is_array($string)) {
            return array_map(array('Tools', 'htmlentitiesUTF8'), $string);
        }

        return htmlentities((string) $string, $type, 'utf-8');
    }

Modifica el código por el siguiente:

 public static function htmlentitiesUTF8($string, $type = ENT_QUOTES)
    {
        if (is_array($string)) {
            return array_map(array('Tools', 'htmlentitiesUTF8'), $string);
        }
	return htmlspecialchars((string)$string, $type, "UTF-8");

        //USE htmlspecialchars NOT htmlentities
    }

Por lo que veo es un bug que se soluciono en la version 7.5.1, comprueba que tengas prestashsop actualizado.

-> https://github.com/PrestaShop/PrestaShop/pull/12103

Antes de realizar la modificación recuerda descargar una copia del archivo original.

Un saludo

ResponderCitar
Respondido : 24/05/2019 4:29 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Carlos
 Carlos
Honorable Member

Hola,
No me ha funcionado, lo he cambiado pero sigue igual https://prnt.sc/nubye9, dice el cliente que no puede generar lo del transportista por los caracteres especiales.

ResponderCitar
Respondido : 28/05/2019 12:37 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Tienes tu PrestaShop actualizado?, qué versión exacta tienes?

De manera general podrías copiar el mismo archivo desde el theme por defecto y verificar.
Busca si tienes este archivo en el theme classic que viene por defecto
themesclassictemplatescheckout_partialsstepsshipping.tpl

Renombra el archivo de tu theme y usa el archivo del theme classic

La otra opción es cambiar temporalmente de theme y verificar si te sucede lo mismo, esto para descartar si es un problema con el theme

Saludos.

ResponderCitar
Respondido : 28/05/2019 7:04 pm

Carlos
 Carlos
Honorable Member

Hola!
Tengo la versión 1.7.5.1, he reemplazado el fichero classictemplatescheckout_partialsstepsshipping.tpl en mi tema y el mensaje sigue apareciendo en html, voy a ver si funciona el transporte

ResponderCitar
Respondido : 29/05/2019 2:35 pm