Hace unos días me contactó un cliente que empezaba a tener problemas de spam y registros diarios de usuarios "fantasmas" en su Prestashop, con datos falsos (bots). Lo primero que se me ocurrió fue buscar un módulo para integrar el recaptcha de Google en los formularios. Encontré uno gratuito, el eicaptcha, pero es para la versión v2, que obliga al usuario a tener que escribir un código o resolver un pequeño puzzle para pasar la verificación. La versión 3 en cambio, pasa desapercibida y normalmente no requiere intervención del usuario, por lo que resulta mucho menos "disuasoria" para el usuario legítimo que quiere enviar un mensaje o registrarse como cliente en la web.
Por tanto, intenté localizar algo para la versión 3 del Recaptcha de Google, pero lo único que encontré fue un par de módulos comerciales, uno incluso se anunciaba como "con inteligencia artificial" y pedían 50 euros por él. Veo lógico que la gente quiera cobrar por su trabajo, pero me parece mucha cara "vender" algo con el reclamo de "inteligencia artificial", cuando esa inteligencia no la has programado tú, sino que estás usando un servicio de Google y tu módulo lo único que hace es integrarlo dentro de los formularios de Prestashop para que funcione, a un precio a mi juicio excesivo para lo que hace (modificar un par de formularios y realizar la verificación de un campo que además te da Google el resultado).
De modo que le eché un vistazo a ver cómo funcionaba la integración (esta página me aclaró mucho las cosas), y me puse y en un par de horitas (o más bien 4 ó 5, porque cambié varias veces de opinión sobre los hooks a utilizar) tenía un módulo funcionando.
Lo dejo aquí para quien lo necesite. Antes de usarlo, algunas consideraciones:
- El módulo lo he creado como he explicado, lo he probado en 2 instalaciones de Prestashop y en principio funciona sin problemas, lo adjunto aquí para quien lo quiera, pero es software gratis y "as-is", es decir, no ofrezco garantías de que vaya a funcionar en todos los casos, ni me hago responsable si no funciona como debería. En el caso de que lo instales, tú eres el responsable de comprobar que los formularios siguen funcionando de forma adecuada. Si no es así, con desactivarlo o desinstalarlo todo volverá a estar como antes.
- El módulo es para la versión 1.7.1 de Prestashop o superior. No funciona con versiones anteriores porque algunos de los "hooks" que utiliza creo que solo están presentes desde la versión 1.7.1.
- El módulo permite activar el recaptcha de forma general, y luego de forma particular en el formulario de registro, en de contacto y en el de suscripción a la newsletter, por separado.
- Si se activa en el formulario de registro, también se activará para el registro que se puede hacer directamente en el checkout y para la compra como invitado (esto es algo que está hecho así de forma intencionada, porque por ahí también te pueden colar registros "fantasmas").
- No lo he probado en instalaciones que no usen el checkout estándar de Prestashop y lleven algún módulo de "compra en un paso", y no sé si opera correctamente con ellas o no. En principio, debido a la forma que tiene de funcionar no debería dar problemas, pero como no he hecho ninguna prueba, no puedo asegurarlo.
- Para que el módulo funcione necesitas, lógicamente, dos claves del recaptcha v3 de Google, la clave del sitio y la clave secreta. Esas claves las tienes que generar con tu cuenta de Google desde aquí: https://www.google.com/recaptcha/admin/create
- Para que funcione en el formulario de contacto debe estar actualizada la template de ese formulario para que incluya el hook del GDPR (ley de protección de datos). Las versiones recientes del módulo de contacto lo incluyen todas, pero hay temas que tienen hecho overrides de esa plantilla y no están actualizadas con ese hook. Lamentablemente, la template del módulo de contacto es el único hook que incluye, por lo que hay que utilizar ése.
- Cualquier problema que tengáis con él podéis ponerlo aquí e intentaremos solucionarlo.
Versión 1.1 disponible: