• The logic for placing a tracking code for logged in users is wrong in add_google_analytics() function, at least according to labels and descriptions on the settings page.

    The correct logic should be this:

    1. check if tracking of all logged in users is enabled (Track all: Yes, ignore other options)
    2. user is a guest (not logged in at all)
    3. user is on the non-admin list (Track all: No and unchecked on roles list)
    4. user is on the admin list but with ‘admin’ variable added (Track all: No and checked on roles list, Method to prevent: Use admin var)

    So the code on line 1112 should be like this:

    # Determine if the user is an admin, and should see the tracking code
    if ( get_option(key_ga_admin) == ga_enabled || ! is_user_logged_in() ||
        ! ga_current_user_is( get_option(key_ga_admin_role) ) ||
        ( ga_current_user_is( get_option(key_ga_admin_role) ) && get_option(key_ga_admin_disable) == 'admin' ) )
    {

    There is also a wrong condition in ga_outgoing_links() function for including external-tracking.js file. The second part is just nonsense.

    The code on line 1262 should look like this:

    # Display page tracking if user is not an admin
    if ( get_option(key_ga_admin) == ga_enabled || !ga_current_user_is(get_option(key_ga_admin_role)) || ( ga_current_user_is(get_option(key_ga_admin_role)) && get_option(key_ga_admin_disable) != 'remove' ) )

    These modifications are tested and are working as described on the settings page.

    https://wordpress.org/plugins/google-analyticator/

  • The topic ‘Tracking of logged in users is not working correctly’ is closed to new replies.