Automattic\WooCommerce\Internal\Admin\Agentic

AgenticController{}WC 10.3.0└─ RegisterHooksInterface

AgenticController class

Main controller for Agentic Commerce Protocol features. Manages initialization of webhooks and future settings for the Agentic feature.

No Hooks.

Usage

$AgenticController = new AgenticController();
// use class methods

Methods

  1. public add_agentic_commerce_integration( $integrations )
  2. public on_init()
  3. public register()

Changelog

Since 10.3.0 Introduced.

AgenticController{} code WC 10.5.0

class AgenticController implements RegisterHooksInterface {
	/**
	 * Register this class instance to the appropriate hooks.
	 *
	 * @internal
	 */
	public function register() {
		// Don't register hooks during installation.
		if ( Constants::is_true( 'WC_INSTALLING' ) ) {
			return;
		}

		// We want to run on init for translations but before woocommerce_init so that
		// we can hook the new integration settings page. We should be able to simplify
		// this by just hooking here when we no longer need to check if the feature is enabled.
		add_action( 'before_woocommerce_init', array( $this, 'on_init' ) );
	}

	/**
	 * Hook into WordPress on init.
	 *
	 * @internal
	 */
	public function on_init() {
		// Bail if the feature is not enabled.
		if ( ! FeaturesUtil::feature_is_enabled( 'agentic_checkout' ) ) {
			return;
		}

		// Resolve webhook manager from container.
		wc_get_container()->get( AgenticWebhookManager::class )->register();

		// Register Agentic Commerce integration.
		add_filter( 'woocommerce_integrations', array( $this, 'add_agentic_commerce_integration' ) );
	}

	/**
	 * Add Agentic Commerce integration to WooCommerce integrations.
	 *
	 * @param array $integrations Existing integrations.
	 * @return array Modified integrations.
	 */
	public function add_agentic_commerce_integration( $integrations ): array {
		if ( ! is_array( $integrations ) ) {
			$integrations = array();
		}
		$integrations[] = AgenticCommerceIntegration::class;
		return $integrations;
	}
}