Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. <?php
  2. /*
  3. Plugin Name: Allow Capital Letters In Username
  4. Version: 0.3
  5. Plugin URI: http://ru.forums.wordpress.org/topic/3738
  6. Description: Allows to use uppercase latin letters when registering a new user.
  7. Author: Sergey Biryukov
  8. Author URI: http://sergeybiryukov.ru/
  9. Network: true
  10. */
  11.  
  12. class Allow_Capital_Letters_In_Username {
  13.  
  14. function __construct() {
  15. remove_filter( 'sanitize_user', 'strtolower' );
  16.  
  17. add_filter( 'wpmu_validate_user_signup', array( $this, 'wpmu_validate_user_signup' ) );
  18. add_filter( 'bp_core_validate_user_signup', array( $this, 'bp_core_validate_user_signup' ) );
  19. }
  20.  
  21. function remove_error( $result, $error_string ) {
  22. if ( empty( $result['errors']->errors['user_name'] ) )
  23. return $result;
  24.  
  25. $error_index = array_search( $error_string, $result['errors']->errors['user_name'] );
  26.  
  27. if ( false !== $error_index ) {
  28. unset( $result['errors']->errors['user_name'][ $error_index ] );
  29.  
  30. if ( empty( $result['errors']->errors['user_name'] ) )
  31. unset( $result['errors']->errors['user_name'] );
  32. else
  33. sort( $result['errors']->errors['user_name'] );
  34. }
  35.  
  36. return $result;
  37. }
  38.  
  39. function wpmu_validate_user_signup( $result ) {
  40. if ( 0 !== strcasecmp( $result['user_name'], $result['orig_username'] ) )
  41. return $result;
  42.  
  43. if ( preg_match( '/[A-Z]/', $result['user_name'] ) )
  44. $result = $this->remove_error( $result, __( 'Only lowercase letters (a-z) and numbers are allowed.' ) );
  45.  
  46. return $result;
  47. }
  48.  
  49. function bp_core_validate_user_signup( $result ) {
  50. $illegal_names = get_site_option( 'illegal_names' );
  51.  
  52. if ( ! validate_username( $result['user_name'] ) || in_array( $result['user_name'], (array) $illegal_names ) )
  53. return $result;
  54.  
  55. if ( preg_match( '/[A-Z]/', $result['user_name'] ) ) {
  56. $result = $this->remove_error( $result, __( 'Only lowercase letters and numbers allowed', 'buddypress' ) );
  57. $result = $this->remove_error( $result, __( 'Username must be in lowercase characters', 'buddypress' ) );
  58. }
  59.  
  60. return $result;
  61. }
  62. }
  63.  
  64. new Allow_Capital_Letters_In_Username;
  65. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement