/**
  * {@inheritdoc}
  */
 public function save_fields($item_id = null, $object_name = null)
 {
     /**
      * @var $wpdb wpdb
      */
     global $wpdb;
     if (defined('IS_PROFILE_PAGE') && IS_PROFILE_PAGE) {
         /**
          * Fires before the page loads on the 'Your Profile' editing form.
          *
          * The action only fires if the current user is editing their own profile.
          *
          * @since 2.0.0
          *
          * @param int $user_id The user ID.
          */
         do_action('personal_options_update', $item_id);
     } else {
         /**
          * Fires before the page loads on the 'Edit User' form.
          *
          * @since 2.7.0
          *
          * @param int $user_id The user ID.
          */
         do_action('edit_user_profile_update', $item_id);
     }
     // Update the email address in signups, if present.
     if (is_multisite()) {
         $user = get_userdata($item_id);
         if ($user && $user->user_login && isset($_POST['email']) && is_email($_POST['email'])) {
             $signup_id = (int) $wpdb->get_var($wpdb->prepare("SELECT signup_id FROM {$wpdb->signups} WHERE user_login = %s", $user->user_login));
             if (0 < $signup_id) {
                 $wpdb->query($wpdb->prepare("UPDATE {$wpdb->signups} SET user_email = %s WHERE signup_id = %d", $_POST['email'], $signup_id));
             }
         }
     }
     // Update the user.
     $errors = edit_user($item_id);
     global $super_admins;
     // Grant or revoke super admin status if requested.
     if (!defined('IS_PROFILE_PAGE') || !IS_PROFILE_PAGE) {
         if (is_multisite() && is_network_admin() && current_user_can('manage_network_options') && !isset($super_admins) && empty($_POST['super_admin']) == is_super_admin($item_id)) {
             if (empty($_POST['super_admin'])) {
                 revoke_super_admin($item_id);
             } else {
                 grant_super_admin($item_id);
             }
         }
     }
     // Return if not successful
     if (is_wp_error($errors)) {
         return $errors;
     }
     // Save additional fields
     return parent::save_fields($item_id, $object_name);
 }
コード例 #2
0
 /**
  * {@inheritdoc}
  */
 public function save_fields($item_id = null, $object_name = null)
 {
     // Save new term
     $success = wp_update_term($item_id, $object_name, $_POST);
     // Return if not successful
     if (is_wp_error($success)) {
         return $success;
     }
     // Save additional fields
     return parent::save_fields($item_id, $object_name);
 }