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);
}