SmythSys IT Consulting

Ejecutar javascript en WordPress después de un inicio de sesión (login) de usuario.

Hace unos días, un cliente nos pidió que ejecutáramos javascript personalizado tras el inicio de sesión de un usuario. En este caso era para Google Tag Manager: es decir querían que se registrara el evento de inicio de sesión.

En teoría era sencillo, ya hemos creado eventos con otros hooks de WordPress. Pero con el hook de inicio de sesión (wp_login) no estaba funcionando el evento.

Hoy os explicamos por qué y cómo solucionarlo.

Cómo ejecutar javascript en WordPress después del inicio de sesión.

La razón por la que no nos funcionaba es que no se puede ejecutar javascript personalizado en ese hook. Pero no viene en la documentación del mismo. sólo en foros de Internet.

La solución pasa por :

Os dejamos un posible código aquí:

//Login
add_action('wp_login', 'after_login_callback');
function after_login_callback ( $user_login) {
    set_transient( $user_login, '1', 0 );
}

 function check_if_firstlogin () {

 global $current_user;
    get_currentuserinfo();

    if ( ! is_user_logged_in() )
        return;

    if ( ! get_transient( $current_user->user_login ) )
        return;
   
 ?>
        <script>
           //Aquí el script que quieras.
    </script>
<?php
     delete_transient( $current_user->user_login );
    }
add_action( 'wp_head', 'check_if_firstlogin');

Esperamos que os funcione.

Deja un comentario

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).