* fixed running UM()->fields()->get_restricted_fields_for_edit() function in the fields loop;

This commit is contained in:
Mykyta Synelnikov
2024-09-27 17:55:44 +03:00
parent 6d183cc983
commit cccce6ebc3
4 changed files with 16 additions and 9 deletions
-1
View File
@@ -2110,7 +2110,6 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
return apply_filters( 'um_field_non_utf8_value', $option_value );
}
/**
* Getting the fields that need to be disabled in edit mode (profile)
*
+6 -1
View File
@@ -448,6 +448,11 @@ if ( ! class_exists( 'um\core\Form' ) ) {
$ignore_keys = array();
$arr_restricted_fields = array();
if ( 'profile' === $this->form_data['mode'] ) {
$arr_restricted_fields = UM()->fields()->get_restricted_fields_for_edit();
}
$field_types_without_metakey = UM()->builtin()->get_fields_without_metakey();
foreach ( $custom_fields as $cf_k => $cf_data ) {
if ( ! array_key_exists( 'type', $cf_data ) || in_array( $cf_data['type'], $field_types_without_metakey, true ) ) {
@@ -493,7 +498,7 @@ if ( ! class_exists( 'um\core\Form' ) ) {
// Column names from wp_users table.
$cf_metakeys = array_values( array_diff( $cf_metakeys, array( 'user_login' ) ) );
// Hidden for edit fields
$cf_metakeys = array_values( array_diff( $cf_metakeys, UM()->fields()->get_restricted_fields_for_edit() ) );
$cf_metakeys = array_values( array_diff( $cf_metakeys, $arr_restricted_fields ) );
$cf_metakeys[] = 'profile_photo';
$cf_metakeys[] = 'cover_photo';
+7 -5
View File
@@ -417,13 +417,15 @@ function um_submit_form_errors_hook_( $submitted_data, $form_data ) {
um_reset_user();
}
$restricted_fields = array();
if ( 'profile' === $mode ) {
$restricted_fields = UM()->fields()->get_restricted_fields_for_edit();
}
foreach ( $fields as $key => $array ) {
if ( 'profile' === $mode ) {
$restricted_fields = UM()->fields()->get_restricted_fields_for_edit();
if ( is_array( $restricted_fields ) && in_array( $key, $restricted_fields, true ) ) {
continue;
}
if ( 'profile' === $mode && is_array( $restricted_fields ) && in_array( $key, $restricted_fields, true ) ) {
continue;
}
$can_view = true;
+3 -2
View File
@@ -226,6 +226,8 @@ function um_user_edit_profile( $args, $form_data ) {
// loop through fields
if ( ! empty( $fields ) ) {
$arr_restricted_fields = UM()->fields()->get_restricted_fields_for_edit( $user_id );
foreach ( $fields as $key => $array ) {
if ( ! isset( $array['type'] ) ) {
continue;
@@ -253,8 +255,7 @@ function um_user_edit_profile( $args, $form_data ) {
}
// fields that need to be disabled in edit mode (profile) (email, username, etc.)
$arr_restricted_fields = UM()->fields()->get_restricted_fields_for_edit( $user_id );
if ( in_array( $key, $arr_restricted_fields, true ) ) {
if ( is_array( $arr_restricted_fields ) && in_array( $key, $arr_restricted_fields, true ) ) {
continue;
}