Advertisement
Viruthagiri

Untitled

Mar 25th, 2012
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /*
  3. Plugin Name: WPVN - Username Changer
  4. Plugin URI: http://link2caro.net/read/wpvn-username-changer/
  5. Description: This plugin lets you <a href='users.php?page=wpvn_username_changer'>change user's login username</a>, especially useful if you need to change your admin username.
  6. Version: 0.7.4
  7. Author: Minh-Quan Tran (aka link2caro - a member of WordPressVN)
  8. Author URI: http://link2caro.net/donate/
  9.  
  10. License GPL, please refer to the LICENSE file.
  11. */
  12.  
  13. if ( is_admin() && !class_exists('wpvn_username_changer') ) {
  14.  
  15. class wpvn_username_changer {
  16.  
  17.     private $level_can_use;
  18.  
  19.     function __construct(){
  20.         load_plugin_textdomain('wpvn', false, 'wpvn-username-changer/l10n');
  21.         $this->level_can_use = get_option('wpvn_username_changer');
  22.         add_action('admin_menu', array(&$this, 'wpvn_add_menu'));
  23.     }
  24.  
  25.     function wpvn_add_menu(){
  26.         if ( 0 > $this->level_can_use || 10 < $this->level_can_use || !is_numeric($this->level_can_use) )
  27.             $this->level_can_use = 10;
  28.         add_submenu_page('users.php', __('Change Your Username','wpvn'), __('Change Username','wpvn'), $this->level_can_use, 'wpvn-username-changer', array(&$this, 'wpvn_username_changer'));
  29.     }
  30.  
  31.     function wpvn_username_changer(){
  32.         global $wpdb, $userdata, $current_user;
  33.  
  34.         get_currentuserinfo();
  35.  
  36.         if (!empty($_POST['new_user_login'])) {
  37.             $new_user_login = sanitize_user($_POST['new_user_login'], true);
  38.             $new_user_login_check = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->users WHERE user_login = %s AND ID != %d LIMIT 1" , $new_user_login, (int) $userdata->ID ) );
  39.             if ($new_user_login_check) {
  40.                     echo "<div id='message' class='error'><p><strong>".
  41.                         __('The entered username is used by another user, please choose a different one!','wpvn')
  42.                         ."</strong></p></div>";
  43.             }
  44.         } elseif (isset($_POST['level_can_use'])) {
  45.             if ( 0 > $_POST['level_can_use'] || 10 < $_POST['level_can_use'] || !is_numeric($_POST['level_can_use']) )
  46.                 $_POST['level_can_use'] = 10;
  47.             update_option('wpvn_username_changer', $_POST['level_can_use']);
  48.             $this->level_can_use = get_option('wpvn_username_changer');
  49.         }
  50.         if (!empty($_POST['new_user_login']) && $_POST['new_user_login'] !== $userdata->user_login && !$new_user_login_check) {
  51.             $new_user_nicename = sanitize_title($new_user_login);
  52.             $new_nickname = $new_user_login;
  53.             $new_user_nicename_check = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND ID != %d LIMIT 1" , $new_user_nicename, (int) $userdata->ID ) );
  54.                 if ($new_user_nicename_check) {
  55.                     $suffix = 2;
  56.                     while ($new_user_nicename_check) {
  57.                         $alt_new_user_nicename = $new_user_nicename . "-$suffix";
  58.                         $new_user_nicename_check = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND ID != %d LIMIT 1" , $alt_new_user_nicename, (int) $userdata->ID ) );
  59.                         $suffix++;
  60.                     }
  61.                     $new_user_nicename = $alt_new_user_nicename;
  62.                 }
  63.                 $q = sprintf( "UPDATE %s SET user_login='%s', user_nicename='%s', display_name='%s' WHERE ID=%d", $wpdb->users, $new_user_login, $new_user_nicename, $new_nickname, (int) $userdata->ID );
  64.                 if (false !== $wpdb->query($q)){
  65.                     update_usermeta( $userdata->ID, 'nickname', $new_nickname );
  66.                     get_currentuserinfo();
  67.                     echo "<div id='message' class='updated fade'><p><strong>".
  68.                         sprintf(__('Your username was changed to <em>%s</em>. Please <a href="%s">log in</a> again with this username now.','wpvn'), $user_login, get_option('siteurl').'/wp-login.php')
  69.                         ."</strong></p></div>";
  70.                 } else {
  71.                     echo "<div id='message' class='error'><p><strong>".
  72.                         __('A database error occured : ','wpvn').$wpdb->last_error
  73.                         ."</strong></p></div>";
  74.                 }
  75.         } else {
  76.             if ($_POST['new_user_login'] === $userdata->user_login) {
  77.                 echo "<div id='message' class='error'><p><strong>".
  78.                     __('The new username is identic to the old one, so no change was made!','wpvn')
  79.                     ."</strong></p></div>";
  80.             }
  81. ?>
  82.             <div class="wrap">
  83.                 <h2><?php _e('Change Your Username','wpvn') ?></h2>
  84.                 <form name="wpvn_username_changer" method="post">
  85.                     <table>
  86.                         <tr>
  87.                             <th align="left"><label for="current_user_login"><?php _e('Current Username','wpvn') ?></label></th>
  88.                             <td><input type="text" id="current_user_login" name="current_user_login" value="<?php echo $userdata->user_login ?>" size="30" disabled="disabled" /></td>
  89.                         </tr>
  90.                         <tr>
  91.                             <th align="left"><label for="new_username"><?php _e('New Username','wpvn') ?></label></th>
  92.                             <td><input type="text" id="new_user_login" name="new_user_login" value="" size="30" /></td>
  93.                         </tr>
  94.                     </table>
  95.                     <p><?php _e('After clicking <strong>Save Changes</strong>, you will need to log in with your new username.','wpvn') ?></p>
  96.                     <p class="submit"><input type="submit" id="wpvn_username_changer_submit" name="wpvn_username_changer_submit" class="button" value="<?php _e('Save Changes','wpvn') ?>" /></p>
  97.                 </form>
  98.                 <?php if(current_user_can('edit_users')) { ?>
  99.                 <hr />
  100.                 <h2><?php _e('Settings','wpvn') ?></h2>
  101.                 <form name="wpvn_username_changer_settings" method="post">
  102.                     <table>
  103.                         <tr>
  104.                             <th align="left"><label for="level_can_use"><?php _e('Users must have at least this level to be able to change their username','wpvn') ?></label></th>
  105.                             <td>
  106.                                 <select type="text" id="level_can_use" name="level_can_use">
  107.                                     <option value="10" <?php if(10 == $this->level_can_use) echo "selected" ?>><?php echo (function_exists('_x')) ? _x( 'Administrator', 'User role' ) : _e('Administrator', 'wpvn') ?></option>
  108.                                     <option value="7" <?php if(7 == $this->level_can_use) echo "selected" ?>><?php echo (function_exists('_x')) ? _x( 'Editor', 'User role' ) : _e( 'Editor', 'wpvn' ); ?></option>
  109.                                     <option value="2" <?php if(2 == $this->level_can_use) echo "selected" ?>><?php echo (function_exists('_x')) ? _x( 'Author', 'User role' ) : _e( 'Author', 'wpvn' ); ?></option>
  110.                                     <option value="1" <?php if(1 == $this->level_can_use) echo "selected" ?>><?php echo (function_exists('_x')) ? _x( 'Contributor', 'User role' ) : _e( 'Contributor', 'wpvn' ); ?></option>
  111.                                     <option value="0" <?php if(0 == $this->level_can_use) echo "selected" ?>><?php echo (function_exists('_x')) ? _x( 'Subscriber', 'User role' ) : _e( 'Subscriber', 'wpvn' ); ?></option>
  112.                                 </select>
  113.                             </td>
  114.                         </tr>
  115.                     </table>
  116.                     <p class="submit"><input type="submit" id="level_can_use_submit" name="level_can_use_submit" class="button" value="<?php _e('Save Changes','wpvn') ?>" /></p>
  117.                 </form>
  118.                 <?php } ?>
  119.             </div>
  120. <?php
  121.         }
  122.     }
  123. }
  124.  
  125. }
  126.  
  127. if( is_admin() && version_compare($wp_version, '2.3.0', '>=') ) {
  128.     $wpvn_username_changer = new wpvn_username_changer;
  129. }
  130. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement