function jetpack_tracks_get_identity($user_id) { // Meta is set, and user is still connected. Use WPCOM ID $wpcom_id = get_user_meta($user_id, 'jetpack_tracks_wpcom_id', true); if ($wpcom_id && Jetpack::is_user_connected($user_id)) { return array('_ut' => 'wpcom:user_id', '_ui' => $wpcom_id); } // User is connected, but no meta is set yet. Use WPCOM ID and set meta. if (Jetpack::is_user_connected($user_id)) { $wpcom_user_data = Jetpack::get_connected_user_data($user_id); add_user_meta($user_id, 'jetpack_tracks_wpcom_id', $wpcom_user_data['ID'], true); return array('_ut' => 'wpcom:user_id', '_ui' => $wpcom_user_data['ID']); } // User isn't linked at all. Fall back to anonymous ID. $anon_id = get_user_meta($user_id, 'jetpack_tracks_anon_id', true); if (!$anon_id) { $anon_id = Jetpack_Tracks_Client::get_anon_id(); add_user_meta($user_id, 'jetpack_tracks_anon_id', $anon_id, false); } if (!isset($_COOKIE['tk_ai']) && !headers_sent()) { setcookie('tk_ai', $anon_id); } return array('_ut' => 'anon', '_ui' => $anon_id); }