marloru Posted March 31, 2021 Share Posted March 31, 2021 Buenas, estoy intentando implementar un datalayer para registrar un evento, específicamente cuando un usuario se registra en mi tienda. Mi duda es que no encuentro la manera de ejecutar una función js al momento de registrarse. Las soluciones que me dan es crear un modulo y utilizar el hook actionCustomerAccountAdd. El problema es que la función del datalayer es js y no puedo lanzarlo desde el hook ya que es php. ¿Hay alguna manera ejecutar código js (guardar alguna variable en cookies, smarty y luego tratarla en algún tpl) cuando se registre un usuario sin la necesidad de hacer un override o crear un modulo? ¿Se podría diferenciar entre el tipo de registro estándar o facebook? Un saludo y gracias de antemano. Link to comment Share on other sites More sharing options...
marloru Posted April 8, 2021 Author Share Posted April 8, 2021 Buenas alguien, me puede dar alguna idea? Link to comment Share on other sites More sharing options...
ventura Posted April 9, 2021 Share Posted April 9, 2021 Puedes pasar variables mediante js utilizando las classes de Prestashop,eg Media::addJsDef(array( 'link' => $this->context->link->getModuleLink($this->name, 'ajax'), 'one_value' => (bool) Configuration::get('SOME_VALUE'), 'iso' => Tools::htmlentitiesUTF8($this->context->language->iso_code) )); Posiblemente lo mejor sería hacerlo mediante AJAX, con un controller, sobretodo si es necesario registrar en base de datos 1 Link to comment Share on other sites More sharing options...
marloru Posted April 22, 2021 Author Share Posted April 22, 2021 Hola Ventura, Creo que no te había contestado, lo siento. Muchas gracias por tu ayuda. Marco hilo como Solucionado. Link to comment Share on other sites More sharing options...
TheCHE Posted July 11, 2023 Share Posted July 11, 2023 Hola, como lograste solucionarlo? Gracias. Link to comment Share on other sites More sharing options...
marloru Posted July 24, 2023 Author Share Posted July 24, 2023 Hola, al final tuvimos que crear nuestro propio módulo y hacer uso del hook de registro (actionCustomerAccountAdd). En el hook mencionado registramos un fichero js que se encarga de registrar el datalayer. Este fichero al ejecutaba siempre, tuvimos que controlarlo con una variable en el localstorage. Link to comment Share on other sites More sharing options...
TheCHE Posted July 31, 2023 Share Posted July 31, 2023 Gracias por responder. Estoy en el mismo caso que tú pero con el hook actionAuthentication (cuando un usuario hace login). Como lograsteis registrar el fichero js? Yo lo 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 Quizá se me escape algo más porque estoy seguro que la ruta y el nombre son correctos porque en una tienda de pruebas funciona correctamente con el mismo módulo. He probado con el hook DisplayTop también por si era problema de los action hooks. 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