# elementor/4.1.0-beta1/modules/mcp/abilities/abstract-ability.php

Elementor Website Builder – more than just a page builder, version 4.1.0-beta1. 23 lines.

- Page: https://pluginprobe.com/plugins/elementor/4.1.0-beta1/code/modules/mcp/abilities/abstract-ability.php
- Raw: https://pluginprobe.com/plugins/elementor/4.1.0-beta1/raw/modules/mcp/abilities/abstract-ability.php
- Modified: 2026-05-12T13:02:06+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/4.1.0-beta1/code/modules/mcp/abilities/abstract-ability.php#L10-L20`.

```php
<?php

namespace Elementor\Modules\Mcp\Abilities;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

abstract class Abstract_Ability {

	abstract protected function get_ability_id(): string;

	abstract protected function get_definition(): Ability_Definition;

	abstract public function execute( $input = [] );

	public function register(): void {
		$definition = $this->get_definition()->to_array();
		$definition['execute_callback'] = [ $this, 'execute' ];
		wp_register_ability( $this->get_ability_id(), $definition );
	}
}

```
