Skip to:
Content

BuddyPress.org

Ticket #8539: 8539.patch

File 8539.patch, 3.0 KB (added by imath, 3 years ago)
  • src/bp-settings/actions/general.php

    diff --git src/bp-settings/actions/general.php src/bp-settings/actions/general.php
    index 10e33acb3..ba6199fd9 100644
    function bp_settings_action_general() { 
    5858        // Validate the user again for the current password when making a big change.
    5959        if ( ( is_super_admin() ) || ( !empty( $_POST['pwd'] ) && wp_check_password( $_POST['pwd'], $bp->displayed_user->userdata->user_pass, bp_displayed_user_id() ) ) ) {
    6060
    61                 $update_user = get_userdata( bp_displayed_user_id() );
     61                $update_user = array(
     62                        'ID' => (int) bp_displayed_user_id(),
     63                );
    6264
    6365                /* Email Change Attempt ******************************************/
    6466
    65                 if ( !empty( $_POST['email'] ) ) {
     67                if ( ! empty( $_POST['email'] ) ) {
    6668
    6769                        // What is missing from the profile page vs signup -
    6870                        // let's double check the goodies.
    function bp_settings_action_general() { 
    7072                        $old_user_email = $bp->displayed_user->userdata->user_email;
    7173
    7274                        // User is changing email address.
    73                         if ( $old_user_email != $user_email ) {
     75                        if ( $old_user_email !== $user_email ) {
    7476
    7577                                // Run some tests on the email address.
    7678                                $email_checks = bp_core_validate_email_address( $user_email );
    function bp_settings_action_general() { 
    114116
    115117                                        // We mark that the change has taken place so as to ensure a
    116118                                        // success message, even though verification is still required.
    117                                         $_POST['email'] = $update_user->user_email;
    118119                                        $email_changed = true;
    119120                                }
    120121
    function bp_settings_action_general() { 
    138139                        if ( ! $pass_error->get_error_message() ) {
    139140                                // Password change attempt is successful.
    140141                                if ( ( ! empty( $_POST['pwd'] ) && wp_unslash( $_POST['pwd'] ) !== $pass ) || is_super_admin() )  {
    141                                         $update_user->user_pass = $_POST['pass1'];
    142                                         $pass_error             = false;
    143                                         $pass_changed           = true;
     142                                        $update_user['user_pass'] = $_POST['pass1'];
     143                                        $pass_error               = false;
     144                                        $pass_changed             = true;
    144145
    145146                                // The new password is the same as the current password.
    146147                                } else {
    function bp_settings_action_general() { 
    157158                        $pass_error = new WP_Error( 'empty_user_password', __( 'One of the password fields was empty.', 'buddypress' ) );
    158159                }
    159160
    160                 // The structure of the $update_user object changed in WP 3.3, but
    161                 // wp_update_user() still expects the old format.
    162                 if ( isset( $update_user->data ) && is_object( $update_user->data ) ) {
    163                         $update_user = $update_user->data;
    164                         $update_user = get_object_vars( $update_user );
    165 
    166                         // Unset the password field to prevent it from emptying out the
    167                         // user's user_pass field in the database.
    168                         // @see wp_update_user().
    169                         if ( false === $pass_changed ) {
    170                                 unset( $update_user['user_pass'] );
    171                         }
     161                // Unset the password field to prevent it from emptying out the
     162                // user's user_pass field in the database.
     163                if ( false === $pass_changed ) {
     164                        unset( $update_user['user_pass'] );
    172165                }
    173166
    174167                // Clear cached data, so that the changed settings take effect