Automattic\WooCommerce\Internal\Admin\Agentic
AgenticSettingsPage::get_providers
Get registered providers.
Each provider should return an array with:
- id: string (unique identifier, e.g., 'openai')
- name: string (display name, e.g., 'OpenAI')
- description: string (optional description)
- fields: array (settings fields configuration)
Метод класса: AgenticSettingsPage{}
Хуки из метода
Возвращает
Массив. Array of registered providers.
Использование
// private - только в коде основоного (родительского) класса $result = $this->get_providers();
Код AgenticSettingsPage::get_providers() AgenticSettingsPage::get providers WC 10.5.1
private function get_providers() {
$registry = $this->get_registry();
// Register built-in OpenAI provider.
$providers = array(
array(
'id' => 'openai',
'name' => __( 'ChatGPT', 'woocommerce' ),
'description' => sprintf(
/* translators: %s: URL to ChatGPT merchants application page */
__( 'To get started, <a href="%s" target="_blank">apply to ChatGPT</a>. Once approved, ChatGPT will provide the credentials below.', 'woocommerce' ),
'https://chatgpt.com/merchants'
),
'fields' => $this->get_openai_fields(),
),
);
/**
* Filter to register additional AI agent providers.
*
* Allows extensions to add their own AI agent provider settings.
* Each provider should return an array with id, name, description, and fields.
*
* @since 10.4.0
*
* @internal This filter is experimental and behind a non-visible feature flag. Backwards compatibility not guaranted.
*
* @param array $providers Array of provider configurations.
* @param array $registry Current registry data.
*/
$providers = apply_filters( 'woocommerce_agentic_commerce_providers', $providers, $registry );
// Validate provider structure.
$validated = array();
foreach ( $providers as $provider ) {
if (
! is_array( $provider )
|| empty( $provider['id'] )
|| empty( $provider['name'] )
|| ! is_array( $provider['fields'] ?? null )
) {
continue;
}
// Sanitize text fields.
$provider['id'] = sanitize_key( $provider['id'] );
$provider['name'] = sanitize_text_field( $provider['name'] );
if ( ! empty( $provider['description'] ) ) {
$provider['description'] = wp_kses_post( $provider['description'] );
}
$validated[] = $provider;
}
return $validated;
}