Tracking of logged in users is not working correctly
-
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:
- check if tracking of all logged in users is enabled (Track all: Yes, ignore other options)
- user is a guest (not logged in at all)
- user is on the non-admin list (Track all: No and unchecked on roles list)
- 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.
- The topic ‘Tracking of logged in users is not working correctly’ is closed to new replies.