File: /wordpress/plugins/jetpack/latest/extensions/blocks/voice-to-content/voice-to-content.php
<?php
/**
* "Voice to content" Block.
*
* @since 12.5
*
* @package automattic/jetpack
*/
namespace Automattic\Jetpack\Extensions\Voice_To_Content;
use Automattic\Jetpack\Blocks;
if ( ! defined( 'ABSPATH' ) ) {
exit( 0 );
}
/**
* Registers our block for use in Gutenberg
* This is done via an action so that we can disable
* registration if we need to.
*/
function register_block() {
/**
* Register the block only if we are on an A8C P2 site.
* TODO: when opening it to Jetpack sites, do the same checks
* we do on the AI Assistant block: the jetpack_ai_enabled filter
* and the Jetpack connection:
* - apply_filters( 'jetpack_ai_enabled', true )
* - ( new Host() )->is_wpcom_simple() || ! ( new Status() )->is_offline_mode()
*/
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
if ( function_exists( 'wpcom_is_automattic_p2_site' ) && wpcom_is_automattic_p2_site() ) {
Blocks::jetpack_register_block(
__DIR__,
array( 'render_callback' => __NAMESPACE__ . '\load_assets' )
);
}
}
}
add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
* "Voice to content" block registration/dependency declaration.
*
* The render implementation lives in render.php and is only loaded when the
* block is actually rendered, keeping it out of the eager front-end path.
*
* @param array $attr Array containing the "Voice to content" block attributes.
* @param string $content String containing the "Voice to content" block content.
*
* @return string
*/
function load_assets( $attr, $content ) {
require_once __DIR__ . '/render.php';
return load_assets_implementation( $attr, $content );
}