Jump to content

Ejecutar custom js cuando un usuario se registre


marloru

Recommended Posts

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

  • 2 weeks later...

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

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 years later...
  • 2 weeks later...

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

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.

image.png.46259f5ad6261d0b5b141eefaa6c1ae2.png

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...