Elgg\Database\UsersTable::register PHP Method

register() public method

Registers a user, returning false if the username already exists
public register ( string $username, string $password, string $name, string $email, boolean $allow_multiple_emails = false ) : integer | false
$username string The username of the new user
$password string The password
$name string The user's display name
$email string The user's email address
$allow_multiple_emails boolean Allow the same email address to be registered multiple times?
return integer | false The new user's GUID; false on failure
    public function register($username, $password, $name, $email, $allow_multiple_emails = false)
    {
        // no need to trim password
        $username = trim($username);
        $name = trim(strip_tags($name));
        $email = trim($email);
        // A little sanity checking
        if (empty($username) || empty($password) || empty($name) || empty($email)) {
            return false;
        }
        // Make sure a user with conflicting details hasn't registered and been disabled
        $access_status = access_get_show_hidden_status();
        access_show_hidden_entities(true);
        if (!validate_email_address($email)) {
            throw new RegistrationException(_elgg_services()->translator->translate('registration:emailnotvalid'));
        }
        if (!validate_password($password)) {
            throw new RegistrationException(_elgg_services()->translator->translate('registration:passwordnotvalid'));
        }
        if (!validate_username($username)) {
            throw new RegistrationException(_elgg_services()->translator->translate('registration:usernamenotvalid'));
        }
        if ($user = get_user_by_username($username)) {
            throw new RegistrationException(_elgg_services()->translator->translate('registration:userexists'));
        }
        if (!$allow_multiple_emails && get_user_by_email($email)) {
            throw new RegistrationException(_elgg_services()->translator->translate('registration:dupeemail'));
        }
        access_show_hidden_entities($access_status);
        // Create user
        $user = new ElggUser();
        $user->username = $username;
        $user->email = $email;
        $user->name = $name;
        $user->access_id = ACCESS_PUBLIC;
        $user->setPassword($password);
        $user->owner_guid = 0;
        // Users aren't owned by anyone, even if they are admin created.
        $user->container_guid = 0;
        // Users aren't contained by anyone, even if they are admin created.
        $user->language = _elgg_services()->translator->getCurrentLanguage();
        if ($user->save() === false) {
            return false;
        }
        // Turn on email notifications by default
        $user->setNotificationSetting('email', true);
        return $user->getGUID();
    }