From d2bdba2f6d569544c89b9acab25c27dc889b5e3a Mon Sep 17 00:00:00 2001 From: andrewshuba Date: Tue, 26 Feb 2019 13:31:31 +0200 Subject: [PATCH 1/3] fix form editing when dropdown value = 0 --- includes/core/class-fields.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index 9d0f3ac0..6c19a319 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -843,6 +843,9 @@ if ( ! class_exists( 'um\core\Fields' ) ) { if ( ! isset( UM()->form()->post_form[ $key ] ) ) { $field_value = um_user( $key ); + if( isset($field_value) && !$field_value ){ + $field_value = 0; + } if ( $key == 'role' ) { @@ -905,8 +908,11 @@ if ( ! class_exists( 'um\core\Fields' ) ) { if ( $field_value && $this->editing == true && is_array( $field_value ) && ( in_array( $value, $field_value ) || in_array( html_entity_decode( $value ), $field_value ) ) ) { return true; } - + if ( $field_value == 0 && $this->editing == true && ! is_array( $field_value ) && $field_value == $value ) { + return true; + } if ( $field_value && $this->editing == true && ! is_array( $field_value ) && $field_value == $value ) { + echo $field_value; return true; } From 8acf91dc9da89c66d76b3f9b7358b37a4648f03f Mon Sep 17 00:00:00 2001 From: andrewshuba Date: Thu, 28 Feb 2019 16:11:43 +0200 Subject: [PATCH 2/3] fix postmeta when field = 0 --- includes/core/class-user.php | 6 +++++- includes/core/um-actions-profile.php | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/includes/core/class-user.php b/includes/core/class-user.php index 2c2cd847..b25ce5ed 100644 --- a/includes/core/class-user.php +++ b/includes/core/class-user.php @@ -1672,7 +1672,11 @@ if ( ! class_exists( 'um\core\User' ) ) { foreach ( $changes as $key => $value ) { if ( ! in_array( $key, $this->update_user_keys ) ) { - update_user_meta( $this->id, $key, $value ); + if( $value == 0 ){ + update_user_meta( $this->id, $key, '0' ); + } else { + update_user_meta( $this->id, $key, $value ); + } } else { $args[ $key ] = esc_attr( $changes[ $key ] ); } diff --git a/includes/core/um-actions-profile.php b/includes/core/um-actions-profile.php index 86d5358a..235acdaf 100644 --- a/includes/core/um-actions-profile.php +++ b/includes/core/um-actions-profile.php @@ -218,6 +218,7 @@ function um_user_edit_profile( $args ) { // loop through fields if ( ! empty( $fields ) ) { + foreach ( $fields as $key => $array ) { if ( ! um_can_edit_field( $array ) && isset( $array['editable'] ) && ! $array['editable'] ) { @@ -229,6 +230,7 @@ function um_user_edit_profile( $args ) { } if ( isset( $args['submitted'][ $key ] ) ) { + if ( isset( $array['type'] ) && in_array( $array['type'], array( 'image', 'file' ) ) && ( /*um_is_file_owner( UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . '/' . $args['submitted'][ $key ], um_user( 'ID' ) ) ||*/ um_is_temp_file( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == 'empty_file' ) ) { @@ -236,14 +238,13 @@ function um_user_edit_profile( $args ) { $files[ $key ] = $args['submitted'][ $key ]; } else { - if ( $array['type'] == 'password' ) { $to_update[ $key ] = wp_hash_password( $args['submitted'][ $key ] ); $args['submitted'][ $key ] = sprintf( __( 'Your choosed %s', 'ultimate-member' ), $array['title'] ); } else { if ( isset( $userinfo[ $key ] ) && $args['submitted'][ $key ] != $userinfo[ $key ] ) { $to_update[ $key ] = $args['submitted'][ $key ]; - } elseif ( $args['submitted'][ $key ] ) { + } elseif ( $args['submitted'][ $key ] != '' ) { $to_update[ $key ] = $args['submitted'][ $key ]; } } From a0a3234148dd2976bf69f367a9fa8d6303e4917a Mon Sep 17 00:00:00 2001 From: andrewshuba Date: Thu, 28 Feb 2019 16:57:48 +0200 Subject: [PATCH 3/3] fix check if 0 --- includes/core/class-user.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/core/class-user.php b/includes/core/class-user.php index b25ce5ed..8ab271fc 100644 --- a/includes/core/class-user.php +++ b/includes/core/class-user.php @@ -1672,7 +1672,7 @@ if ( ! class_exists( 'um\core\User' ) ) { foreach ( $changes as $key => $value ) { if ( ! in_array( $key, $this->update_user_keys ) ) { - if( $value == 0 ){ + if( $value === 0 ){ update_user_meta( $this->id, $key, '0' ); } else { update_user_meta( $this->id, $key, $value );