From 1adc51aa021f2f13ba1beea70fd5382bea453de2 Mon Sep 17 00:00:00 2001 From: nikitasinelnikov Date: Mon, 14 Dec 2020 14:39:47 +0200 Subject: [PATCH] - fixed displaying by the hook issues with fields without metakeys; --- includes/core/class-fields.php | 41 +++++++++++++++++++++++++++------ includes/core/class-profile.php | 5 +++- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index 33ed449a..adde5f0e 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -568,7 +568,13 @@ if ( ! class_exists( 'um\core\Fields' ) ) { $label = apply_filters( 'um_edit_label_all_fields', $label, $data ); } - $output .= ''; + $fields_without_metakey = UM()->builtin()->get_fields_without_metakey(); + $for_attr = ''; + if ( ! in_array( $data['type'], $fields_without_metakey ) ) { + $for_attr = ' for="' . esc_attr( $key . UM()->form()->form_suffix ) . '"'; + } + + $output .= '' . __( $label, 'ultimate-member' ) . ''; if ( ! empty( $data['help'] ) && $this->viewing == false && ! strstr( $key, 'confirm_user_pass' ) ) { @@ -1443,7 +1449,11 @@ if ( ! class_exists( 'um\core\Fields' ) ) { $array['conditional'] = null; } - $array['classes'] .= ' um-field-' . esc_attr( $key ); + $fields_without_metakey = UM()->builtin()->get_fields_without_metakey(); + + if ( ! in_array( $array['type'], $fields_without_metakey ) ) { + $array['classes'] .= ' um-field-' . esc_attr( $key ); + } $array['classes'] .= ' um-field-' . esc_attr( $array['type'] ); $array['classes'] .= ' um-field-type_' . esc_attr( $array['type'] ); @@ -4059,9 +4069,10 @@ if ( ! class_exists( 'um\core\Fields' ) ) { $_field_value = $this->field_value( $key, $default, $data ); - if ( ! isset( $_field_value ) || $_field_value == '' ) { + if ( ! in_array( $type, $fields_without_metakey ) && ( ! isset( $_field_value ) || $_field_value == '' ) ) { $output = ''; } else { + $output .= '
get_atts( $key, $classes, $conditional, $data ) . '>'; if ( isset( $data['label'] ) || ! empty( $data['icon'] ) ) { @@ -4126,11 +4137,20 @@ if ( ! class_exists( 'um\core\Fields' ) ) { */ $res = apply_filters( "um_view_field_value_{$type}", $res, $data ); - $output .= '
'; - $output .= '
' . $res . '
'; - $output .= '
'; + $id_attr = ''; + if ( ! in_array( $type, $fields_without_metakey ) ) { + $id_attr = ' id="' . esc_attr( $key . UM()->form()->form_suffix ) . '"'; + } - $output .= '
'; + if ( empty( $res ) ) { + $output = ''; + } else { + $output .= '
'; + $output .= '
' . $res . '
'; + $output .= '
'; + + $output .= ''; + } } break; @@ -4665,6 +4685,13 @@ if ( ! class_exists( 'um\core\Fields' ) ) { ) ); + $fields_without_metakey = UM()->builtin()->get_fields_without_metakey(); + + if ( in_array( $data['type'], $fields_without_metakey ) ) { + unset( $field_atts['id'] ); + unset( $field_atts['data-key'] ); + } + if ( ! empty( $field_style ) && is_array( $field_style ) ) { $arr_inline_style = ''; diff --git a/includes/core/class-profile.php b/includes/core/class-profile.php index 84d6e205..1cffe05c 100644 --- a/includes/core/class-profile.php +++ b/includes/core/class-profile.php @@ -385,6 +385,8 @@ if ( ! class_exists( 'um\core\Profile' ) ) { function show_meta( $array ) { $output = ''; + $fields_without_metakey = UM()->builtin()->get_fields_without_metakey(); + if ( ! empty( $array ) ) { foreach ( $array as $key ) { if ( $key ) { @@ -396,8 +398,9 @@ if ( ! class_exists( 'um\core\Profile' ) ) { $data['in_profile_meta'] = true; $value = um_filtered_value( $key, $data ); - if ( ! $value ) + if ( ! $value && ! in_array( $data['type'], $fields_without_metakey ) ) { continue; + } if ( ! UM()->options()->get( 'profile_show_metaicon' ) ) { $icon = '';