Skip to content

Instantly share code, notes, and snippets.

@anttiviljami
Created March 3, 2016 09:19
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save anttiviljami/01611cf3e74f7e7ae7a6 to your computer and use it in GitHub Desktop.
Save anttiviljami/01611cf3e74f7e7ae7a6 to your computer and use it in GitHub Desktop.
A wordpress mu-plugin that allows you to create users with email-addresses as usernames in multisite
<?php
/**
* Plugin name: Allow email as WordPress Network/Multisite username
* Description: A wordpress mu-plugin that allows you to create users with email-addresses as usernames in multisite
* Version: 1.0
* Author: @anttiviljami
* License: GPLv3
*/
add_filter( 'wpmu_validate_user_signup', '_signup_allow_email_as_username' );
function _signup_allow_email_as_username() {
if (! is_wp_error($result['errors'])) {
return $result;
}
$username = $result['user_name'];
// Copy any error messages that have not been overridden
$new_errors = new WP_Error();
$errors = $result['errors'];
$codes = $errors->get_error_codes();
foreach ($codes as $code) {
$messages = $errors->get_error_messages($code);
if ($code == 'user_name') {
foreach ($messages as $message) {
if ($message == __('Only lowercase letters (a-z) and numbers are allowed.')) {
if (!is_email($username)) {
$new_errors->add($code, $message);
}
} else {
// Restore other username errors
$new_errors->add($code, $message);
}
}
}
else {
// Restore any other errors
foreach ($messages as $message) {
$new_errors->add($code, $message);
}
}
}
$result['errors'] = $new_errors;
return $result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment