Using WordPress ‘attach_session_information’ PHP filter

The attach_session_information WordPress PHP filter allows you to modify the information attached to a newly created session.

Usage

add_filter('attach_session_information', 'my_custom_function', 10, 2);

function my_custom_function($session, $user_id) {
    // your custom code here
    return $session;
}

Parameters

  • $session (array): The array of extra data to be attached to the session.
  • $user_id (int): The user ID for which the session is being created.

More information

See WordPress Developer Resources: attach_session_information

Examples

Add user role to the session information

Attach the user’s role to the session information.

add_filter('attach_session_information', 'add_user_role_to_session', 10, 2);

function add_user_role_to_session($session, $user_id) {
    $user = get_userdata($user_id);
    $roles = $user->roles;
    $session['user_role'] = $roles[0];
    return $session;
}

Add registration date to the session information

Attach the user’s registration date to the session information.

add_filter('attach_session_information', 'add_registration_date_to_session', 10, 2);

function add_registration_date_to_session($session, $user_id) {
    $user = get_userdata($user_id);
    $registration_date = $user->user_registered;
    $session['registration_date'] = $registration_date;
    return $session;
}

Add user display name to the session information

Attach the user’s display name to the session information.

add_filter('attach_session_information', 'add_display_name_to_session', 10, 2);

function add_display_name_to_session($session, $user_id) {
    $user = get_userdata($user_id);
    $display_name = $user->display_name;
    $session['display_name'] = $display_name;
    return $session;
}

Add user email to the session information

Attach the user’s email address to the session information.

add_filter('attach_session_information', 'add_user_email_to_session', 10, 2);

function add_user_email_to_session($session, $user_id) {
    $user = get_userdata($user_id);
    $user_email = $user->user_email;
    $session['user_email'] = $user_email;
    return $session;
}

Add custom user meta to the session information

Attach custom user meta data to the session information.

add_filter('attach_session_information', 'add_custom_user_meta_to_session', 10, 2);

function add_custom_user_meta_to_session($session, $user_id) {
    $custom_meta = get_user_meta($user_id, 'custom_meta_key', true);
    $session['custom_meta'] = $custom_meta;
    return $session;
}