The ‘pre_user_login’ filter allows you to modify the sanitized username before a user is created or updated in WordPress.
Usage
add_filter( 'pre_user_login', 'my_custom_function', 10, 1 );
function my_custom_function( $sanitized_user_login ) {
// Your custom code here
return $sanitized_user_login;
}
Parameters
$sanitized_user_login (string): The username after it has been sanitized.
Examples
Add a Prefix to the Username
add_filter( 'pre_user_login', 'add_prefix_to_username', 10, 1 );
function add_prefix_to_username( $sanitized_user_login ) {
// Add 'my_prefix_' to the beginning of the username
return 'my_prefix_' . $sanitized_user_login;
}
This code adds a prefix ‘my_prefix_’ to the username before it is saved to the database.
Convert Username to Uppercase
add_filter( 'pre_user_login', 'convert_username_to_uppercase', 10, 1 );
function convert_username_to_uppercase( $sanitized_user_login ) {
// Convert the username to uppercase
return strtoupper( $sanitized_user_login );
}
This code converts the username to uppercase before it is saved to the database.
Remove Numbers from the Username
add_filter( 'pre_user_login', 'remove_numbers_from_username', 10, 1 );
function remove_numbers_from_username( $sanitized_user_login ) {
// Remove all numbers from the username
return preg_replace( '/d/', '', $sanitized_user_login );
}
This code removes any numbers from the username before it is saved to the database.
Replace Spaces with Underscores
add_filter( 'pre_user_login', 'replace_spaces_with_underscores', 10, 1 );
function replace_spaces_with_underscores( $sanitized_user_login ) {
// Replace spaces with underscores in the username
return str_replace( ' ', '_', $sanitized_user_login );
}
This code replaces any spaces in the username with underscores before it is saved to the database.
Limit Username Length
add_filter( 'pre_user_login', 'limit_username_length', 10, 1 );
function limit_username_length( $sanitized_user_login ) {
// Limit the username length to 15 characters
return substr( $sanitized_user_login, 0, 15 );
}
This code limits the username length to 15 characters before it is saved to the database.