Si sobre finales de abril del año 2019, estáis empezando a recibir emails de nuevos clientes registrados en la tienda con una procedencia un tanto extraña, es decir, spam…
Dentro del foro de PrestaShop, una de las modificaciones que propone el usuario dokeia de la comunidad consiste en:
Añadir una función llamada => isCustomerName dentro de la clase
Validate (classes/Validate.php) que luego sera usada dentro de la clase (/classes/Customer.php) para validar los datos del nombre y apellidos del cliente.
Recordar que es recomendable, crear un override de las clases y controladores, que vayamos a modificar, pero eso ya os lo dejo a vuestra elección.
La función a añadir dentro de Validate.php es la siguiente:
Posteriormente en la clase Customer.php, buscamos la siguiente linea de código:
Observad en la captura, que hemos señalado dentro de public static $definition = array( la parte de firstname y lastname
Y donde hace referencia a =>‘validate’ => ‘isName’ cambiamos isName por isCustomerName que es la nueva función de validación.
Según comunica Dokeia, podemos aplicar este parche de la 1.3 a la 1.7. Recordar no son modificaciones oficiales. Yo lo he estado probando bajo varias tiendas con la 1.6.
Por otro lado, vuelvo a recordar que aquí, hemos tocado las clases originales, lo optimo es crear un override.
En el foro de PrestaShop, podéis ver aquí (en inglés, usad Google traductor..):
https://www.prestashop.com/forums/topic/981158-spam-compte-client-solution-13-17/
El tema donde se esta hablando de lo ocurrido y más información.
Veréis que incluso tenéis de un script que ha creado Dokeia => https://area51.enter-solutions.com/snippets/122 (Descargar script)
Aviso que este tema, no tiene nada que ver con otros temas antiguos de spam que tenemos creados en el blog.
Captcha para Prestashop
¿Se están colando rusos o chinos por el formulario de contacto en Prestashop?
Última actualización del artículo => 22/04/2019
Actualizo el artículo con novedades (1).
Desde la empresa FactoriaDigital , han sacado un módulo (compatible con PrestaShop 1.6 y 1.7).
Simplemente tenéis que instalar el módulo desde la pestaña módulos => módulos y no tendréis que hacer nada más porque el módulo crea los overrides de forma automática.
El módulo podéis descargarlo aquí:
- https://github.com/factoriadigital/prestashop-1.6-1.7-spam-registers-solution. Si no podéis descargar un release, recordar renombrar la carpeta antes de subirlo… (revisar info)
- Enlace de una versión antigua del módulo por si falla la fuente.
Actualización del artículo (2)
Queda publicado la incidencia en el repositorio de código oficial de PrestaShop: https://github.com/PrestaShop/PrestaShop/issues/13524.
PrestaShop se compromete a sacar un parche oficial -mientras no este publicado el parche oficial, podéis usar cualquiera de las opciones comentadas anteriormente-.
Actualización del artículo (3)
PrestaShop, publica finalmente en el blog de desarrolladores un articulo comentando el problema: http://build.prestashop.com/news/fighting-against-spamming-again/
En las próximas actualizaciones tanto de PrestaShop 1.7.X como de 1.6.X vendra aplicado un parche automáticamente.
En el artículo, por ejemplo, para PrestaShop 1.7.X hacen referencia al siguiente parche (en el repositorio de código oficial (https://github.com/PrestaShop/PrestaShop/pull/13549):
https://github.com/PrestaShop/PrestaShop/pull/13549/commits
Hola Víctor,
Probado y funcionando en Prestashop 1.6.1.18.
Gracias genio!
Mil gracias Víctor 🙂
Ojalá vuelvas al mundo de presta!
Muchas gracias, me ha servido de mucha ayuda 🙂