<?php /** * Settings section registration contract. */ declare( strict_types=1 ); namespace Automattic\WooCommerce\Admin\Settings; defined( 'ABSPATH' ) || exit; /** * Contract for extensions that register a section under an existing WooCommerce settings page. * * @since 10.9.0 */ interface SettingsSectionInterface { /** * Get the parent WooCommerce settings page id. * * @return string * * @since 10.9.0 */ public function get_parent_page_id(): string; /** * Get the section id. * * @return string * * @since 10.9.0 */ public function get_id(): string; /** * Get the section label. * * @return string * * @since 10.9.0 */ public function get_label(): string; /** * Get legacy settings for this section. * * @param \WC_Settings_Page $parent_page Parent settings page. * @return array * * @since 10.9.0 */ public function get_settings( \WC_Settings_Page $parent_page ): array; /** * Get script handles that must be loaded before the settings UI app mounts. * * @param \WC_Settings_Page $parent_page Parent settings page. * @return string[] * * @since 10.9.0 */ public function get_script_handles( \WC_Settings_Page $parent_page ): array; /** * Get the default save adapter for fields in this section. * * Supported values are `form_post` and `none`. * * @param \WC_Settings_Page $parent_page Parent settings page. * @return string * * @since 10.9.0 */ public function get_save_adapter( \WC_Settings_Page $parent_page ): string; }