From a0b52f26989e53876de21df31aa38e3c94c47b82 Mon Sep 17 00:00:00 2001 From: Champ Camba Date: Wed, 5 Jul 2023 13:13:33 +0800 Subject: [PATCH] Add disabled options in multi checkbox render --- includes/admin/core/class-admin-forms.php | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/includes/admin/core/class-admin-forms.php b/includes/admin/core/class-admin-forms.php index 92355732..e91efd3b 100644 --- a/includes/admin/core/class-admin-forms.php +++ b/includes/admin/core/class-admin-forms.php @@ -1204,19 +1204,20 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) { $values = array(); } - $i = 0; + $i = 0; $html = ''; $columns = ( ! empty( $field_data['columns'] ) && is_numeric( $field_data['columns'] ) ) ? $field_data['columns'] : 1; while ( $i < $columns ) { - $per_page = ceil( count( $field_data['options'] ) / $columns ); - $section_fields_per_page = array_slice( $field_data['options'], $i*$per_page, $per_page, true ); - $html .= ''; + $per_page = ceil( count( $field_data['options'] ) / $columns ); + $section_fields_per_page = array_slice( $field_data['options'], $i * $per_page, $per_page, true ); + $html .= ''; foreach ( $section_fields_per_page as $k => $title ) { - $id_attr = ' id="' . esc_attr( $id . '_' . $k ) . '" '; - $for_attr = ' for="' . esc_attr( $id . '_' . $k ) . '" '; - $name_attr = ' name="' . $name . '[' . $k . ']" '; + $id_attr = ' id="' . esc_attr( $id . '_' . $k ) . '" '; + $for_attr = ' for="' . esc_attr( $id . '_' . $k ) . '" '; + $name_attr = ' name="' . $name . '[' . $k . ']" '; + $disabed_attr = ''; $data = array( 'field_id' => $field_data['id'] . '_' . $k, @@ -1234,8 +1235,13 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) { $data_attr .= ' data-' . $key . '="' . esc_attr( $value ) . '" '; } + if ( isset( $field_data['options_disabled'] ) && in_array( $k, $field_data['options_disabled'], true ) ) { + $disabed_attr = 'disabled="disabled"'; + $values = array_merge( $values, $field_data['options_disabled'] ); + } + $html .= ""; }