Advertisement
aknath

WordPress Protect Duplicate nickname and display name

Nov 28th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.16 KB | None | 0 0
  1. add_action('personal_options_update', 'check_display_name');
  2. add_action('edit_user_profile_update', 'check_display_name');
  3. function check_display_name($user_id) {
  4.         global $wpdb;
  5.         $err['display'] = $wpdb->get_var($wpdb->prepare("SELECT COUNT(ID) FROM $wpdb->users WHERE display_name = %s AND ID <> %d", $_POST['display_name'], $_POST['user_id']));
  6.     $err['nick'] = $wpdb->get_var($wpdb->prepare("SELECT COUNT(ID) FROM $wpdb->users as users, $wpdb->usermeta as meta WHERE users.ID = meta.user_id AND meta.meta_key = 'nickname' AND meta.meta_value = %s AND users.ID <> %d", $_POST['nickname'], $_POST['user_id']));
  7.     foreach($err as $key => $e) {
  8.         if($e >= 1) {
  9.             $err[$key] = $_POST['username'];
  10.             add_filter('user_profile_update_errors', "check_{$key}_field", 10, 3);
  11.         }
  12.     }
  13. }
  14. function check_display_field($errors, $update, $user) {
  15.         $errors->add('display_name_error',__('Sorry, Display Name is already in use. It needs to be unique.'));
  16.         return false;
  17. }
  18. function check_nick_field($errors, $update, $user) {
  19.         $errors->add('display_nick_error',__('Sorry, Nickname is already in use. It needs to be unique.'));
  20.         return false;
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement