_options_controller = new \WC_REST_Setting_Options_Controller(); $wc_admin_group_settings = $wc_rest_settings_options_controller->get_group_settings( 'wc_admin' ); $settings['wcAdminSettings'] = array(); foreach ( $wc_admin_group_settings as $setting ) { if ( ! empty( $setting['id'] ) ) { $settings['wcAdminSettings'][ $setting['id'] ] = $setting['value']; } } return $settings; } /** * Add the settings UI schema for the current classic settings page. * * @param array $settings Array of component settings. * @return array */ private function add_settings_ui_schema( array $settings ): array { try { if ( ! class_exists( SettingsUIRequestContext::class ) ) { return $settings; } $context = SettingsUIRequestContext::get_current(); } catch ( \Throwable $e ) { return $settings; } if ( ! $context ) { return $settings; } try { $schema = $context->get_schema(); if ( ! is_array( $schema ) ) { return $settings; } $page_id = $context->get_page_id(); $section_key = $context->get_current_section_key(); } catch ( \Throwable $e ) { return $settings; } if ( ! isset( $settings['settingsUI'] ) || ! is_array( $settings['settingsUI'] ) ) { $settings['settingsUI'] = array(); } if ( ! isset( $settings['settingsUI'][ $page_id ] ) || ! is_array( $settings['settingsUI'][ $page_id ] ) ) { $settings['settingsUI'][ $page_id ] = array(); } // PHP converts numeric-string array keys to integers. Keep groups as a JSON object for the client. $schema['groups'] = (object) $schema['groups']; $settings['settingsUI'][ $page_id ][ $section_key ] = $schema; return $settings; } }