WP_Ability::invoke_callbackprotectedWP 6.9.0

Invokes a callable, ensuring the input is passed through only if the input schema is defined.

Method of the class: WP_Ability{}

No Hooks.

Returns

Mixed. The result of the callable execution, or a WP_Error if the callback threw.

Usage

// protected - for code of main (parent) or child class
$result = $this->invoke_callback( $callback, $input );
$callback(callable) (required)
The callable to invoke.
$input(mixed)
The input data for the ability.
Default: null

Changelog

Since 6.9.0 Introduced.

WP_Ability::invoke_callback() code WP 7.0.2

protected function invoke_callback( callable $callback, $input = null ) {
	$args = array();
	if ( ! empty( $this->get_input_schema() ) ) {
		$args[] = $input;
	}

	try {
		return $callback( ...$args );
	} catch ( Throwable $e ) {
		return new WP_Error(
			'ability_callback_exception',
			sprintf(
				/* translators: 1: Ability name, 2: Exception message. */
				__( 'Ability "%1$s" callback threw an exception: %2$s' ),
				esc_html( $this->name ),
				esc_html( $e->getMessage() )
			)
		);
	}
}