@@ -6,61 +6,61 @@ This document explains how the WPGraphQL Logging admin settings UI is built and
66
77## Architecture Overview
88
9- - ** Settings page entry** : ` WPGraphQL\Logging\Admin\Settings_Page `
9+ - ** Settings page entry** : ` WPGraphQL\Logging\Admin\SettingsPage `
1010 - Registers the submenu page and orchestrates fields and tabs
1111 - Hooks added: ` init ` (init fields), ` admin_menu ` (page), ` admin_init ` (fields), ` admin_enqueue_scripts ` (assets)
12- - ** Menu page** : ` WPGraphQL\Logging\Admin\Settings\Menu\Menu_Page `
12+ - ** Menu page** : ` WPGraphQL\Logging\Admin\Settings\Menu\MenuPage `
1313 - Adds a submenu under Settings → WPGraphQL Logging (` wpgraphql-logging ` )
1414 - Renders template ` src/Admin/Settings/Templates/admin.php `
15- - ** Form manager** : ` WPGraphQL\Logging\Admin\Settings\Settings_Form_Manager `
15+ - ** Form manager** : ` WPGraphQL\Logging\Admin\Settings\SettingsFormManager `
1616 - Registers the settings (` register_setting ` ) and sections/fields per tab
1717 - Sanitizes and saves values per tab; unknown fields are pruned
18- - ** Field collection** : ` WPGraphQL\Logging\Admin\Settings\Fields\Settings_Field_Collection `
19- - Holds all tabs and fields. A default ` Basic_Configuration_Tab ` is registered
20- - ** Tabs** : Implement ` Settings_Tab_Interface ` with ` get_name() ` , ` get_label() ` , ` get_fields() `
21- - ** Fields** : Implement ` Settings_Field_Interface ` or use built-ins:
22- - ` Field\Checkbox_Field `
23- - ` Field\Text_Input_Field `
24- - ` Field\Select_Field `
18+ - ** Field collection** : ` WPGraphQL\Logging\Admin\Settings\Fields\SettingsFieldCollection `
19+ - Holds all tabs and fields. A default ` BasicConfigurationTab ` is registered
20+ - ** Tabs** : Implement ` SettingsTabInterface ` with ` get_name() ` , ` get_label() ` , ` get_fields() `
21+ - ** Fields** : Implement ` SettingsFieldInterface ` or use built-ins:
22+ - ` Field\CheckboxField `
23+ - ` Field\TextInputField `
24+ - ` Field\SelectField `
2525
2626Settings are stored in an array option. Keys are filterable:
2727
2828- Option key: ` wpgraphql_logging_settings ` (filter ` wpgraphql_logging_settings_group_option_key ` )
2929- Settings group: ` wpgraphql_logging_settings_group ` (filter ` wpgraphql_logging_settings_group_settings_group ` )
3030
31- To read values at runtime, use ` WPGraphQL\Logging\Admin\Settings\Logging_Settings_Service ` :
31+ To read values at runtime, use ` WPGraphQL\Logging\Admin\Settings\LoggingSettingsService ` :
3232
3333``` php
34- use WPGraphQL\Logging\Admin\Settings\Logging_Settings_Service ;
34+ use WPGraphQL\Logging\Admin\Settings\LoggingSettingsService ;
3535
36- $settings = new Logging_Settings_Service ();
36+ $settings = new LoggingSettingsService ();
3737$enabled = $settings->get_setting('basic_configuration', 'enabled', false);
3838```
3939
4040---
4141
4242## Hooks Reference (Admin)
4343
44- - Action: ` wpgraphql_logging_settings_init( Settings_Page $instance ) `
44+ - Action: ` wpgraphql_logging_settings_init( SettingsPage $instance ) `
4545 - Fired after the settings page is initialized
46- - Action: ` wpgraphql_logging_settings_field_collection_init( Settings_Field_Collection $collection ) `
46+ - Action: ` wpgraphql_logging_settings_field_collection_init( SettingsFieldCollection $collection ) `
4747 - Fired after default tabs/fields are registered; primary extension point to add tabs/fields
48- - Action: ` wpgraphql_logging_settings_form_manager_init( Settings_Form_Manager $manager ) `
48+ - Action: ` wpgraphql_logging_settings_form_manager_init( SettingsFormManager $manager ) `
4949 - Fired when the form manager is constructed
5050- Filter: ` wpgraphql_logging_settings_group_option_key( string $option_key ) `
5151 - Change the option key used to store settings
5252- Filter: ` wpgraphql_logging_settings_group_settings_group( string $group ) `
5353 - Change the settings group name used in ` register_setting `
5454
5555- Filter: ` wpgraphql_logging_basic_configuration_fields( array $fields ) `
56- - Modify the default fields rendered in the ` basic_configuration ` tab. You can add, remove, or replace fields by returning a modified associative array of ` field_id => Settings_Field_Interface ` .
56+ - Modify the default fields rendered in the ` basic_configuration ` tab. You can add, remove, or replace fields by returning a modified associative array of ` field_id => SettingsFieldInterface ` .
5757 - Example:
5858 ``` php
59- use WPGraphQL\Logging\Admin\Settings\Fields\Field\Checkbox_Field ;
59+ use WPGraphQL\Logging\Admin\Settings\Fields\Field\CheckboxField ;
6060
6161 add_filter('wpgraphql_logging_basic_configuration_fields', function(array $fields): array {
6262 // Add a custom toggle into the Basic Configuration tab
63- $fields['enable_feature_x'] = new Checkbox_Field (
63+ $fields['enable_feature_x'] = new CheckboxField (
6464 'enable_feature_x',
6565 'basic_configuration',
6666 'Enable Feature X',
@@ -69,7 +69,7 @@ $enabled = $settings->get_setting('basic_configuration', 'enabled', false);
6969 );
7070
7171 // Optionally remove an existing field
72- // unset($fields[ WPGraphQL\Logging\Admin\Settings\Fields\Tab\Basic_Configuration_Tab ::DATA_SAMPLING ]);
72+ // unset($fields[ WPGraphQL\Logging\Admin\Settings\Fields\Tab\BasicConfigurationTab ::DATA_SAMPLING ]);
7373
7474 return $fields;
7575 });
@@ -84,17 +84,17 @@ Related (non-admin) hooks for context:
8484
8585## Add a New Tab
8686
87- Create a tab class implementing ` Settings_Tab_Interface ` and register it during ` wpgraphql_logging_settings_field_collection_init ` .
87+ Create a tab class implementing ` SettingsTabInterface ` and register it during ` wpgraphql_logging_settings_field_collection_init ` .
8888
8989``` php
9090<?php
9191namespace MyPlugin\WPGraphQLLogging;
9292
93- use WPGraphQL\Logging\Admin\Settings\Fields\Settings_Field_Collection ;
94- use WPGraphQL\Logging\Admin\Settings\Fields\Tab\Settings_Tab_Interface ;
95- use WPGraphQL\Logging\Admin\Settings\Fields\Field\Text_Input_Field ;
93+ use WPGraphQL\Logging\Admin\Settings\Fields\SettingsFieldCollection ;
94+ use WPGraphQL\Logging\Admin\Settings\Fields\Tab\SettingsTabInterface ;
95+ use WPGraphQL\Logging\Admin\Settings\Fields\Field\TextInputField ;
9696
97- class My_Custom_Tab implements Settings_Tab_Interface {
97+ class My_Custom_Tab implements SettingsTabInterface {
9898 public function get_name(): string {
9999 return 'my_custom_tab';
100100 }
@@ -105,7 +105,7 @@ class My_Custom_Tab implements Settings_Tab_Interface {
105105
106106 public function get_fields(): array {
107107 return [
108- 'my_setting' => new Text_Input_Field (
108+ 'my_setting' => new TextInputField (
109109 'my_setting',
110110 $this->get_name(),
111111 'My Setting',
@@ -117,7 +117,7 @@ class My_Custom_Tab implements Settings_Tab_Interface {
117117 }
118118}
119119
120- add_action('wpgraphql_logging_settings_field_collection_init', function (Settings_Field_Collection $collection): void {
120+ add_action('wpgraphql_logging_settings_field_collection_init', function (SettingsFieldCollection $collection): void {
121121 $collection->add_tab(new My_Custom_Tab());
122122});
123123```
@@ -137,13 +137,13 @@ You can add fields directly to the shared field collection. Ensure the field’s
137137<?php
138138namespace MyPlugin\WPGraphQLLogging;
139139
140- use WPGraphQL\Logging\Admin\Settings\Fields\Settings_Field_Collection ;
141- use WPGraphQL\Logging\Admin\Settings\Fields\Field\Checkbox_Field ;
140+ use WPGraphQL\Logging\Admin\Settings\Fields\SettingsFieldCollection ;
141+ use WPGraphQL\Logging\Admin\Settings\Fields\Field\CheckboxField ;
142142
143- add_action('wpgraphql_logging_settings_field_collection_init', function (Settings_Field_Collection $collection): void {
143+ add_action('wpgraphql_logging_settings_field_collection_init', function (SettingsFieldCollection $collection): void {
144144 $collection->add_field(
145145 'enable_feature_x',
146- new Checkbox_Field (
146+ new CheckboxField (
147147 'enable_feature_x',
148148 'basic_configuration', // target the built-in Basic Configuration tab
149149 'Enable Feature X',
@@ -170,9 +170,9 @@ Tips:
170170Example of reading a value elsewhere:
171171
172172``` php
173- use WPGraphQL\Logging\Admin\Settings\Logging_Settings_Service ;
173+ use WPGraphQL\Logging\Admin\Settings\LoggingSettingsService ;
174174
175- $settings = new Logging_Settings_Service ();
175+ $settings = new LoggingSettingsService ();
176176$thresholdSeconds = (float) $settings->get_setting('basic_configuration', 'performance_metrics', '0');
177177```
178178
0 commit comments