mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
- fixed editable attribute base on the legacy code;
- if `editable` attribute doesn't exist then we set `editable` to true by default;
This commit is contained in:
@@ -2383,6 +2383,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
|
||||
$this->edit_mode_value = true;
|
||||
}
|
||||
|
||||
// Set to true if `editable` doesn't exist (legacy case). It will be saved to DB as `true` after the first field update.
|
||||
if ( null === $this->edit_mode_value ) {
|
||||
$this->edit_mode_value = true;
|
||||
}
|
||||
|
||||
if ( empty( $this->edit_mode_value ) ) {
|
||||
$this->edit_mode_value = false;
|
||||
}
|
||||
|
||||
@@ -2186,7 +2186,8 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
|
||||
if ( true === $this->editing && 'profile' === $this->set_mode ) {
|
||||
if ( ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) {
|
||||
if ( empty( $data['editable'] ) ) {
|
||||
// It's for a legacy case `array_key_exists( 'editable', $data )`.
|
||||
if ( array_key_exists( 'editable', $data ) && empty( $data['editable'] ) ) {
|
||||
$disabled = ' disabled="disabled" ';
|
||||
}
|
||||
}
|
||||
@@ -3635,7 +3636,8 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
$class = 'um-icon-android-radio-button-off';
|
||||
}
|
||||
|
||||
if ( empty( $data['editable'] ) ) {
|
||||
// It's for a legacy case `array_key_exists( 'editable', $data )`.
|
||||
if ( array_key_exists( 'editable', $data ) && empty( $data['editable'] ) ) {
|
||||
$col_class .= ' um-field-radio-state-disabled';
|
||||
}
|
||||
|
||||
@@ -3754,7 +3756,8 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
$class = 'um-icon-android-checkbox-outline-blank';
|
||||
}
|
||||
|
||||
if ( empty( $data['editable'] ) ) {
|
||||
// It's for a legacy case `array_key_exists( 'editable', $data )`.
|
||||
if ( array_key_exists( 'editable', $data ) && empty( $data['editable'] ) ) {
|
||||
$col_class .= ' um-field-radio-state-disabled';
|
||||
}
|
||||
|
||||
|
||||
@@ -1065,7 +1065,8 @@ if ( ! class_exists( 'um\core\Form' ) ) {
|
||||
if ( strstr( $field_key, 'role_' ) && array_key_exists( 'options', $field_settings ) && is_array( $field_settings['options'] ) ) {
|
||||
|
||||
if ( isset( $this->post_form['mode'] ) && 'profile' === $this->post_form['mode'] ) {
|
||||
if ( empty( $field_settings['editable'] ) || ! um_can_edit_field( $field_settings ) ) {
|
||||
// It's for a legacy case `array_key_exists( 'editable', $field_settings )`.
|
||||
if ( ( array_key_exists( 'editable', $field_settings ) && empty( $field_settings['editable'] ) ) || ! um_can_edit_field( $field_settings ) ) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -386,10 +386,11 @@ function um_user_edit_profile( $args, $form_data ) {
|
||||
}
|
||||
}
|
||||
|
||||
// Secure selected role
|
||||
if ( ( isset( $fields['role'] ) && ! empty( $fields['role']['editable'] ) && um_can_view_field( $fields['role'] ) ) ||
|
||||
( isset( $fields['role_select'] ) && ! empty( $fields['role_select']['editable'] ) && um_can_view_field( $fields['role_select'] ) ) ||
|
||||
( isset( $fields['role_radio'] ) && ! empty( $fields['role_radio']['editable'] ) && um_can_view_field( $fields['role_radio'] ) ) ) {
|
||||
// Secure selected role.
|
||||
// It's for a legacy case `array_key_exists( 'editable', $fields['role'] )` and similar.
|
||||
if ( ( isset( $fields['role'] ) && ( ! array_key_exists( 'editable', $fields['role'] ) || ! empty( $fields['role']['editable'] ) ) && um_can_view_field( $fields['role'] ) ) ||
|
||||
( isset( $fields['role_select'] ) && ( ! array_key_exists( 'editable', $fields['role_select'] ) || ! empty( $fields['role_select']['editable'] ) ) && um_can_view_field( $fields['role_select'] ) ) ||
|
||||
( isset( $fields['role_radio'] ) && ( ! array_key_exists( 'editable', $fields['role_radio'] ) || ! empty( $fields['role_radio']['editable'] ) ) && um_can_view_field( $fields['role_radio'] ) ) ) {
|
||||
|
||||
if ( ! empty( $args['submitted']['role'] ) ) {
|
||||
global $wp_roles;
|
||||
|
||||
@@ -1667,7 +1667,8 @@ function um_can_edit_field( $data ) {
|
||||
$can_edit = false;
|
||||
} else {
|
||||
if ( ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) {
|
||||
if ( empty( $data['editable'] ) ) {
|
||||
// It's for a legacy case `array_key_exists( 'editable', $data )`.
|
||||
if ( array_key_exists( 'editable', $data ) && empty( $data['editable'] ) ) {
|
||||
$can_edit = false;
|
||||
} else {
|
||||
if ( ! um_is_user_himself() ) {
|
||||
|
||||
Reference in New Issue
Block a user