• File: SettingsSectionInterface.php
  • Full Path: /home/slvgwrnz/public_html/wp-admin/wp-includes/wp-content/plugins/woocommerce/src/Admin/Settings/SettingsSectionInterface.php
  • Date Modified: 09/22/2026 11:40 AM
  • File size: 1.5 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?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;
}