TheCHE Posted July 10, 2023 Share Posted July 10, 2023 (edited) Hola, estoy intentando insertar valores al dataLayer de Google Tag Manager (GTM) cuando el usuario hace login a mi tienda. Para ello, he pensado en crear un modulo y llamar al hook actionAuthentication (After successful customer authentication) por facilidad y por no complicarme la vida con overrides de clases o controllers ya que no soy un experto. El caso es que me inserta los valores correctamente con el hook displayTop pero no con el hook actionAuthentication, no encuentro los valores por ningún sitio de la página ni por GTM. Supongo que no me lo inserta correctamente porque el hook actionAuthentication no es un hook para mostrar nada en la plantilla. Aparte de que cuando un usuario hace login satisfactoriamente se le redirige a otra página a diferencia de displayTop que se muestra en el header en todas las páginas. Podría insertar valores a mi dataLayer con actionAuthentication? Como se podría hacer? Habría alguna otra manera más conveniente de hacer? Gracias de antemano. La definición de mi módulo es correcta y la llamada a los hooks también. Los archivos mimodulo.tpl y gtm_dataLayer.tpl tienen el mismo contenido que es el siguiente: PD: He intentado bastantes maneras de solucionarlo insertado valores desde el módulo directamente y tampoco logro solucionarlo. Parece que el problema del hook es el mismo. No encuentro los valores del dataLayer por ningún sitio. Edited July 10, 2023 by TheCHE No había insertado código (see edit history) Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted July 21, 2023 Share Posted July 21, 2023 Los hooks con prefijo action normalmente como su nombre lo indica son para ejecutar acciones, no para imprimir contenido, como tu mismo ya supones. Puedes hacerlo todo en el hook displayTop que dices que si te funciona, y solamente validar en que página estás navegando antes de renderizar el contenido mediante $this-><context->controller->php_self o cualquier propiedad similar del controlador que te sirva de forma similar. 1 Link to comment Share on other sites More sharing options...
TheCHE Posted July 31, 2023 Author Share Posted July 31, 2023 Hola, no sé si podrías ayudarme con esto. Estoy intentándolo cargando un archivo Javascript desde un hook pero solo me funciona con addJs en una tienda en local. Desde mi tienda de producción y desde otra tienda limpia de pruebas NO me funciona. No entiendo el porqué ya que además todas tienen la misma versión de Prestashop y el módulo es el mismo. He probado con: addJs pero solo me funciona para una tienda de pruebas, no entiendo porque en las otras no funciona: $this->context->controller->addJS('modules/'.$this->name.'/views/js/datLayer_login.js'); registerJavascript que no me funciona en ningún caso Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted July 31, 2023 Share Posted July 31, 2023 Aquí hay un ejemplo: https://devdocs.prestashop-project.org/8/themes/getting-started/asset-management/#with-a-front-controller-module Intenta usar el mismo hook del ejemplo. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now