/**
 * Create a new WordPress user account, and mark it as a Shibboleth account.
 *
 * @param string $user_login login name for the new user
 * @return object WP_User object for newly created user
 */
function shibboleth_create_new_user($user_login)
{
    if (empty($user_login)) {
        return null;
    }
    // create account and flag as a shibboleth acount
    require_once ABSPATH . WPINC . '/registration.php';
    $user_id = wp_insert_user(array('user_login' => $user_login));
    $user = new WP_User($user_id);
    update_usermeta($user->ID, 'shibboleth_account', true);
    // always update user data and role on account creation
    shibboleth_update_user_data($user->ID, true);
    $user_role = shibboleth_get_user_role();
    $user->set_role($user_role);
    do_action('shibboleth_set_user_roles', $user);
    return $user;
}
/**
 * Create a new WordPress user account, and mark it as a Shibboleth account.
 *
 * @param string $user_login login name for the new user
 * @return object WP_User object for newly created user
 */
function shibboleth_create_new_user($user_login)
{
    if (empty($user_login)) {
        return null;
    }
    // create account and flag as a shibboleth acount
    require_once ABSPATH . WPINC . '/registration.php';
    $user_data = array('user_login' => $user_login);
    $common_email_domain = shibboleth_get_option('shibboleth_common_email_domain');
    if ($common_email_domain) {
        $user_data['user_email'] = $user_login . '@' . $common_email_domain;
    }
    $user_data['nickname'] = $user_login;
    $user_id = wp_insert_user($user_data);
    $user = new WP_User($user_id);
    update_usermeta($user->ID, 'shibboleth_account', true);
    // always update user data and role on account creation
    shibboleth_update_user_data($user->ID, true);
    $user_role = shibboleth_get_user_role();
    $user->set_role($user_role);
    do_action('shibboleth_set_user_roles', $user);
    return $user;
}