Módulo gratuito que permite añadir un captcha en la tienda para evitar el spam en los formularios de la tienda, como, por ejemplo, el formulario de contacto. Además, permite añadir un captcha en el formulario de registro.
A inicios del año 2013 habíamos reseñado un módulo que integraba una especie de captcha en Prestashop para poder mostrarlo en los distintos formularios de la tienda.
En esta ocasión, vamos hablar de otro clásico y de nuevo del compañero francés Hernes del que ya hemos comentado en antaño varios aportes interesantes.
Aunque existen versiones del módulo para versiones anteriores de Prestashop, en la actualidad también tenemos disponible una versión actualizada del módulo para mostrar el reCAPTCHA de Google en el formulario de contacto y de registro en Prestashop 1.7. Al final de la entrada dejare el enlace para descargarlo desde el repositorio.
Una vez, hemos subido e instalado el módulo desde la pestaña módulos -> módulos y servicios (guía de instalación de módulos) del panel de administración y accedemos a su configuración, debemos añadir y configurar los datos de la API correspondientes al reCaptcha de Google.
- Para obtener los datos “Captcha public key (Site Key)” y “Captcha private key (Secret key)” debemos tener añadido nuestra web en: https://www.google.com/recaptcha/intro/index.html. Accedemos al enlace que he pasado y añadimos nuestra tienda, tal como podéis ver en las siguientes capturas:
Pulsamos getRecaptchaRellenamos formulario:
- Etiqueta -> Etiqueta a modo informativo.
- Choose the type Captcha -> Nosotros hemos elegido reCaptcha v2
- Dominios -> Añadimos el dominio de nuestra tienda.
Una vez registrado el captcha, podremos obtener la clave del sitio (Site Key) y la clave Secreta (Secret Key) para pegarla posteriormente en la configuración del módulo.
- Otras opciones de configuración que nos ofrece el módulo son las siguientes:
Enable Captcha for contact form -> Para activar/desactivar el captcha en el formulario de contacto.
Enable Captcha for account creation -> Para activar/desactivar el captcha en el formulario de registro.
Por si tenéis curiosidad el módulo lleva los siguientes overrides:
Controlador -> AuthController.php para añadir el catpcha en el formulario de registro.
Clase del módulo de formulario de contacto -> contactform.php -> Para añadir el captcha al formulario de contacto.
¿Dónde podemos descargar la última versión de este módulo para poder integrar un catpcha en Prestashop 1.7?
Podemos descargar las distintas versiones del módulo desde el siguiente enlace:
- https://github.com/nenes25/eicaptcha/releases donde disponemos también de una versión del módulo para versiones anteriores de Prestashop.
Enlace alternativo de una versión antigua del módulo (2.0.1) por si el enlace fuente falla.
* Es muy importante descargar siempre la versión más reciente del módulo captcha desde el repositorio del desarrollador.
Documento construido bajo Prestashop 1.7.2.4 y la versión 2.0.1 del módulo.
PD: Se me ha olvidado comentar (en Prestashop 1.7) que debéis tener instalado previamente el módulo contactform, si no lo tenéis instalado, lo buscáis en la zona de gestión de módulos y aparecerá para instalarlo.
*** Actualización del artículo:
Versiones actuales de los módulos:
Para PS 1.7 -> 2.0.4 o superior
Para Prestashop 1.6 -> 0.4.14 o superior
Si en versiones antiguas de Prestashop o en la plantilla que usas no aparece el captcha en el formulario de contacto, edita el fichero: /themes/TuPlantilla/contact-form.tpl y añade:
<div id="captcha-box"></div>
antes de cerrar el formulario (etiqueta </form>).
Vuelvo a recordar todas las versiones del módulo aquí:
https://github.com/nenes25/eicaptcha/releases
Y más información sobre el captcha en la propia web del desarrollador:
https://www.h-hennes.fr/blog/module-recaptcha-pour-le-formulaire-de-contact-prestashop/
Mejor fuente que la web del desarrollador no vais a tener.
Otras alternativas para añadir un captcha en Prestashop
Módulo desarrollado por: prestatoolbox
Como suele ser habitual en el mundo de Prestashop, subimos e instalamos el módulo desde la pestaña módulos -> módulos.
Actualmente el módulo no permite ninguna configuración adicional.
Si vamos al formulario de contacto, veremos el captcha:
Este módulo que añade un capcha en tu tienda Prestashop, según su desarrollador es compatible con PS 1.5/1.6 y Prestashop 1.7. Este módulo en concreto lo he probado en PS 1.6.
¿Dónde puedo descargar este módulo?
https://www.prestatoolbox.com/free-prestashop-modules/419-secure-your-contact-form-with-a-captcha.html
Enlace alternativa de una versión antigua del módulo por si falla el enlace fuente
Otra alternativa para añadir un captcha en Prestashop (no siendo gratuita, pero a nivel de precio y soporte merece la pena):
Muchas gracias Victor Rodenas.
Funciona perfecto!
He seguido todos pasos, pero cuando voy al formulario de contacto, no me aparace?
Estás usando la última versión del módulo descargada desde el enlace de github?
¿Qué variante de PrestaShop 1.7.X usas?
¿Limpiastes caché de presta en parámetros avanzados – rendimiento por si las moscas?
a mi pasa parecido, me sale el captcha en el formulario de alta pero no en el de contacto.
Tengo prestashop 1.7.2.2 y la mayor versión que me deja instalar es la 0.4.11 las posteriores me dice que el módulo no es compatible con mi versión de prestashop.
después de escribir el comentario acabo de volver a instalar el módulo 2.0.2 sobre el 0.4.11 (sin desinstalar este) y no solo se me instaló sino que ahora si me sale el captcha en el formulario de contacto 😉
Perfecto, gracias
Hello,
I follow your instructions but i was not successfull. Only one version was installed (0.4.11). Then I put the keys and select enabled captcha for contact form. I dont use classic theme – can be the problem?
For Prestashop 1.7 try use version “2.0.2” currently
Download version 2.0.2 the module
hola Victor,
cuando instalo el módulo en mi prestashop 1.6 me sale este error:
[PrestaShop] Fatal error in module file :/var/www/vhosts/actuelb.com/httpdocs/classes/module/Module.php(1361) : eval()’d code:
Can’t use function return value in write context
sabes a que puede ser debido?
muchas gracias por tu ayuda.
1 – ¿Qué versión del módulo estás utilizando? (existen varias https://github.com/nenes25/eicaptcha/releases en el enlace)
2 – ¿Qué versión de PHP usas?
3 – ¿Qué variante de Prestashop 1.6 usas exactamente?
hola, perdona
prestashop 1.6.1.16
módulo eicaptcha 0.4.11
PHP version 5.4.36-1~dotdeb.1
gracias
Revisa con la versión 5.5.X o 5.6.X de PHP para ver si te ocurre lo mismo.
OffTopic: Añado que para esa versión además del captcha es necesario aplicar esto: https://victor-rodenas.com/2018/02/21/se-estan-colando-rusos-o-chinos-por-el-formulario-de-contacto-en-prestashop/
Hola Juan Manuel.
¿Al final pudiste resolver el fallo?
Es que justo a mi me pasa lo mismo y desde entonces no puedo acceder al listado de modulos del backoffice.
Saludos
Entra desde el FTP o desde el administrador de archivos de tu hosting a la carpeta modules de tu tienda y renombra (por eicaptcha_old) o elimina momentáneamente la carpeta del módulo que encontraras dentro del directorio modules llamada (eicaptcha) hasta que des con la solución a tu problema, para volver a ver la pestaña módulos -> módulos
Y, por otro lado, en caso de que el módulo te haya instalado los overrides correspondientes, elimínelos o cámbiales el nombre temporalmente (por …._old)
Y en principio tienes que volver a ver la pestaña módulos -> módulos.
¿El error mencionado te aparece el debug activo?
¡Muchas gracias Victor!
Instalé y configuré el módulo en mi Prestashop 1.7 tal y como Tú lo describes y funcionó perfectamente.
Hola.
He intentado instalar la última versión en Prestashop 1.7.0.4 y me dice que no es compatible con esta versión 🙁
Gracias! Un saludo
En la clase del módulo (eicaptcha.php) de la versión del módulo para Prestashop 1.7 dice:
$this->ps_versions_compliancy = array(‘min’ => ‘1.7.1.0’, ‘max’ => _PS_VERSION_);
O bien cambias esa línea e intentas ver si te funciona el módulo en tu versión de Prestashop 1.7.0.4 o bien intentas actualizar tu versión de Prestashop que buena falta le hace siendo una de las primeras variantes de Prestashop 1.7.X la que indicas en tu mensaje.
gracias Victor, siguiendo tus consejos se ha resuelto.
Gracias!
Fantástico! Más sencillo imposible!
Muchas gracias por tu disposición a la ayuda y a compartir el conocimiento, me tenia cansado un ruso que ya había enviado más de 500 mails, logre configurarlo en una instlacion de prestashop 1.6.1.7 y descargando en github la versión 0.4.9, realmente estoy muy agradecido. Cordial Saludo
Hola, he usado el módulo con sus la ayuda de sus instrucciones en la versión 1.7.2.1 y ha ido genial pero:
Tengo otra tienda con la versión 1.7.2.4 y no hay ningún módulo compatible. ¿Saldrá esta versión pronto?
Me auto respondo, yo mismo. Para la versión 1.7.2.7 he logrado instalar la versión de modulo 2.0.3.
Muchísimas gracias por el aporte.
me salvaste la vida amigo con la versón 1.7.2.2 muy sencillo y rapido. Muchas Gracias
Gracias por el comentario y el consejo en ipaelo.com
Saludos
Referente al de prestatoolbox.
Muchas Gracias.
He instalado este modulo que recomiendas y va perfecto, sin ninguna configuración adicional te pone un captcha en el formulario de prestashop.
Muchas gracias por el aporte. Yo tengo la versión 1.6.0.14 de PS y he instalado la versión 0.4.9. Hasta ahora todo bien. Cordiales saludos.
Han probado enviar un mensaje sin activar el captcha?
Puede que sea solo a mi, pero me envía el mensaje sin necesidad de activarlo.
Hola,
Yo lo acabo de instalar y me funciona perfectamente el captcha.
No me deja enviar el formulario sin antes rellenar el captcha.
Saludos
Tengo la version 1.7.3, instale la ultima version pero me da un error al tratar de enviar un correo, el mismo modulo puedeprobar si todo esta funcionando y me da este error:
contacform.php override does not exists
no tengo idea de el porque.. tengo instalado el modulo de formulario de contacto pero me sigue dando este error.. alguna ayuda?
muchas gracias!
Parece que no te ha instalado (copiado) el override el módulo al instalarse.
Recuerda que para Prestashop 1.7, actualmente tienes que usas la versión 2.X del módulo. ¿Has instalado esa? Si ha sido esa instalada, reinicia el módulo y comprueba si se ha copiado el override.
Probablemente en el archivo del módulo no está la ruta correcta de contacform.php para tu versión de prestashop. Debes editar el archivo del módulo eicaptcha.php cambiando la línea 492:
if (!file_exists(_PS_OVERRIDE_DIR_.’controllers/modules/contactform/contactform.php’)) {
por esta otra:
if (!file_exists(_PS_OVERRIDE_DIR_.’modules/contactform/contactform.php’)) {
Si haces esto el error debería desaparecer 😉
Muchisisisisisimas gracias!, gracias por saber y más por compartir, solo la divulgación el conocimiento, todo, va a cambiar este mundo.
Hola, muchisimas gracias Victor por tu trabajo y por compartirlo con todos nosotros, si no fuese por ti…
He instalado el 2.04 en mi prestashop 1.7.0.4 y funciona perfectamente en el apartado de contacto.
Solo tengo un fallo y es que el capcha no aparece en el formulario de creación de la cuenta, y sin embargo no te deja crearla porque te pide confirmación de un capcha que no aparece 😮 Tal vez sea cosa de la plantilla, ¿Habría algun .tpl al que se le pudiera añadir la línea que comentas arriba? “”
En principio puedo apañarme asi porque el motivo del capcha son los malditos emails rusos de Spam.
Muchas gracias
Oye muchas gracias, gente como tu hacen de este mundo un lugar mejor, lo hice muy rápido y sin problemas.
Buenas;
En primer lugar agradecer a nadie la ayuda prestada en diferentes temas que me ha venido de perlas. Como es la primera vez que comento uno de tus posts, aprovecho para agradecertelo.
He implementado hace un par de días el módulo eicaptha a mi web, versión 1.6.x.x.
El spam parece haber desaparecido, sin embargo, me siguen apareciendo nuevos usuarios registrados fraudulentos, entorno a 10 o 12 diarios.
He comprobado que el captcha está activado en formularios de registro y contacto. Al menos aparece, no sé si habrá forma de saltarselo.
La molestía no es excesiva pero, a nivel de seguridad de mi web, puede generar riesgo?
Saludos a tod@s
Revisa este tema => https://victor-rodenas.com/spam-en-el-formulario-de-registro-en-prestashop/
Saludos,
Buenos días Víctor, muchas gracias por el tutorial tan detallado.
He instalado el módulo versión 0.4.16 en Prestashop 1.6.1.17, en mi caso de momento sólo lo quiero activar para la creación de cuentas, ya que hace algo menos de una semana nos están creando cada día unas 15 cuentas falsas procedentes siempre del mismo origen, y no sabemos cómo bloquearlo. Al hacer el registro en Google, me daba como opciones de tipo de reCaptcha v2 (haciendo un reto visual) o v3 (haciendo click), la verdad que el tipo reto es bastante engorroso por lo que seleccioné la versión v3. El captcha aparece en la página de registro pero con el siguiente texto: “Error para el propietario del sitio web: el tipo de clave no es válido”. He revisado las claves varias veces y están bien copiadas. ¿Se te ocurre a qué puede deberse?
¡Muchas gracias de antemano!
Un saludo
Hola Claudia,
Lo de los registros fraudulentos es otro asunto, revisa este tema => https://victor-rodenas.com/spam-en-el-formulario-de-registro-en-prestashop/ (si tienes el problema de los registros fraudulentos).
Saludos,
No me dio ni tiempo de ver tu respuesta, por favor ignora mi otro comentario y disculpa.
Genial, revisaré el tema que me indicas, muchas gracias!
Un saludo
Disculpa, arreglado! Lo hemos eliminado y hemos creado el reCaptcha v2 con la subopción de click. Todo funcionando y esperando que sea suficiente para bloquear el ataque. Un saludo!
Mil gracias
Me he pasado toda la mañana tratando de solucionar el problema hasta que los técnicos de mi hosting me han pasado este enlace. Ya te conocí en el prestashopday y me pareciste brutal pero ahora te has convertido en mi preferido!!!
Me ha ido genial, gracias a las preguntas y respuestas he encontrado la versión del módulo que necesitaba, porque me salía el error que no era compatible el módulo con la versión de prestashop.
Muchas gracias por escribir tan bien los tutoriales y las ayudas!