PATH:
home
/
centosnipponia
/
public_html
/
nipponiacar
/
wp-content
/
plugins
/
ninja-forms
/
includes
/
Abilities
<?php /** * Abilities API Integration * * Handles the integration of WordPress Abilities API with Ninja Forms. * This class follows the Ninja Forms architecture pattern by loading as * part of the main plugin instance. * * @package NinjaForms * @subpackage Abilities * @since 3.13.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Class NF_Abilities_Integration * * Manages the Abilities API integration lifecycle. */ class NF_Abilities_Integration { /** * @var NF_Abilities_Integration */ private static $instance; /** * Constructor * * Sets up hooks for Abilities API integration. * * @since 3.13.0 */ public function __construct() { // Hook into plugins_loaded to initialize Abilities API add_action( 'plugins_loaded', array( $this, 'load_abilities_api' ), 100 ); // Initialize MCP adapter after abilities are registered add_action( 'mcp_adapter_init', array( $this, 'init_mcp_adapter' ), 20 ); // Add Ninja Forms abilities to default MCP server add_filter( 'mcp_adapter_default_server_config', array( $this, 'add_abilities_to_mcp_server' ), 10 ); } /** * Load Abilities API integration files * * Registers ability categories and abilities. * This runs on plugins_loaded with priority 100 to ensure the Abilities API * is available. * * @since 3.13.0 * @return void */ public function load_abilities_api() { // Check if Abilities API is available (WordPress 6.9+) if ( ! function_exists( 'wp_register_ability_category' ) && ! function_exists( 'wp_register_ability' ) ) { return; // Abilities API not available } // Load category registration $categories_file = Ninja_Forms::$dir . 'includes/Abilities/Categories.php'; if ( file_exists( $categories_file ) ) { require_once $categories_file; } // Load ability registration $abilities_file = Ninja_Forms::$dir . 'includes/Abilities/Abilities.php'; if ( file_exists( $abilities_file ) ) { require_once $abilities_file; } } /** * Initialize MCP Adapter * * Creates MCP servers after abilities are registered. * This runs after wp_abilities_api_init hook has fired. * * @since 3.13.0 * @return void */ public function init_mcp_adapter() { // Check if MCP Adapter is available if ( ! class_exists( '\WP\MCP\Core\McpAdapter' ) ) { return; } // MCP adapter initialization is handled by the core WordPress integration // Ninja Forms abilities are automatically discovered and added via the // add_abilities_to_mcp_server filter method } /** * Add Ninja Forms abilities to the default MCP server's tools * * Dynamically discovers all registered Ninja Forms abilities and adds them to the MCP server. * This ensures that all abilities are available as MCP tools without manual updates. * * @since 3.13.0 * @param array $config The default server configuration * @return array Modified configuration */ public function add_abilities_to_mcp_server( $config ) { // Ensure tools array exists if ( ! isset( $config['tools'] ) || ! is_array( $config['tools'] ) ) { $config['tools'] = array(); } // Get all registered abilities if ( ! function_exists( 'wp_get_abilities' ) ) { return $config; } $all_abilities = wp_get_abilities(); // Filter for Ninja Forms abilities (those starting with 'ninjaforms/') $ninja_forms_abilities = array(); foreach ( $all_abilities as $ability_name => $ability_config ) { if ( strpos( $ability_name, 'ninjaforms/' ) === 0 ) { // Only add abilities that have MCP metadata configured // Note: $ability_config is a WP_Ability object, not an array $meta = $ability_config->get_meta(); if ( isset( $meta['mcp']['public'] ) && $meta['mcp']['public'] === true ) { $ninja_forms_abilities[] = $ability_name; } } } // Add discovered Ninja Forms abilities to the tools array $config['tools'] = array_merge( $config['tools'], $ninja_forms_abilities ); return $config; } /** * Get instance * * @since 3.13.0 * @return NF_Abilities_Integration */ public static function instance() { if ( ! isset( self::$instance ) && ! ( self::$instance instanceof NF_Abilities_Integration ) ) { self::$instance = new NF_Abilities_Integration(); } return self::$instance; } }
[+]
..
[+]
Utils
[-] Abilities.php
[edit]
[-] Categories.php
[edit]
[-] ExecuteCallbacks.php
[edit]
[-] Integration.php
[edit]
[-] PermissionCallbacks.php
[edit]
[-] .htaccess.disabled
[edit]