Astra_Abstract_Ability::register()

Register this ability with the Abilities API.


Description


Return

(void)


Source

File: inc/abilities/class-astra-abstract-ability.php

	public static function register() {
		if ( ! function_exists( 'wp_register_ability' ) ) {
			return;
		}

		/** @psalm-suppress UnsafeInstantiation -- Intentional: child classes share the same constructor signature. */
		$instance = new static();

		if ( empty( $instance->id ) ) {
			return;
		}

		$meta = array(
			'tool_type'    => $instance->get_tool_type(),
			'examples'     => $instance->get_examples(),
			'version'      => $instance->get_version(),
			'show_in_rest' => $instance->get_show_in_rest(),
			'annotations'  => $instance->get_annotations(),
			'mcp'          => $instance->get_mcp(),
		);

		$meta = array_replace_recursive( $meta, $instance->meta );

		$args = array(
			'label'               => $instance->label,
			'description'         => $instance->description,
			'category'            => $instance->category,
			'input_schema'        => $instance->get_final_input_schema(),
			'execute_callback'    => array( $instance, 'handle_execute' ),
			'permission_callback' => array( $instance, 'check_permission' ),
			'meta'                => $meta,
		);

		$output_schema = $instance->get_output_schema();
		if ( ! empty( $output_schema ) ) {
			$args['output_schema'] = $output_schema;
		}

		wp_register_ability( $instance->id, $args );
	}

User Contributed Notes

You must log in before being able to contribute a note or feedback.