PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.0-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.0-beta
16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / extensions / blocks / ai-assistant / ai-assistant.php
jetpack / extensions / blocks / ai-assistant Last commit date
ai-assistant.php 2 months ago
ai-assistant.php
126 lines
1 <?php
2 /**
3 * Jetpack AI Assistant Block.
4 *
5 * @since 12.2
6 *
7 * @package automattic/jetpack
8 */
9
10 namespace Automattic\Jetpack\Extensions\AIAssistant;
11
12 use Automattic\Jetpack\Blocks;
13 use Automattic\Jetpack\Status;
14 use Automattic\Jetpack\Status\Host;
15 use Jetpack_Gutenberg;
16
17 if ( ! defined( 'ABSPATH' ) ) {
18 exit( 0 );
19 }
20
21 /**
22 * Registers our block for use in Gutenberg
23 * This is done via an action so that we can disable
24 * registration if we need to.
25 */
26 function register_block() {
27 if (
28 ( ( new Host() )->is_wpcom_simple()
29 || ! ( new Status() )->is_offline_mode()
30 ) && apply_filters( 'jetpack_ai_enabled', true )
31 ) {
32 Blocks::jetpack_register_block(
33 __DIR__,
34 array( 'render_callback' => __NAMESPACE__ . '\load_assets' )
35 );
36 }
37 }
38 add_action( 'init', __NAMESPACE__ . '\register_block' );
39
40 /**
41 * Jetpack AI Assistant block registration/dependency declaration.
42 *
43 * @param array $attr Array containing the Jetpack AI Assistant block attributes.
44 * @param string $content String containing the Jetpack AI Assistant block content.
45 *
46 * @return string
47 */
48 function load_assets( $attr, $content ) {
49 /*
50 * Enqueue necessary scripts and styles.
51 */
52 Jetpack_Gutenberg::load_assets_as_required( __DIR__ );
53
54 return sprintf(
55 '<div class="%1$s">%2$s</div>',
56 esc_attr( Blocks::classes( Blocks::get_block_feature( __DIR__ ), $attr ) ),
57 $content
58 );
59 }
60
61 /**
62 * Register extensions.
63 */
64 add_action(
65 'jetpack_register_gutenberg_extensions',
66 function () {
67 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
68 Jetpack_Gutenberg::set_extension_available( 'ai-assistant-support' );
69 Jetpack_Gutenberg::set_extension_available( 'ai-assistant-form-support' );
70 Jetpack_Gutenberg::set_extension_available( 'ai-content-lens' );
71 Jetpack_Gutenberg::set_extension_available( 'ai-assistant-backend-prompts' );
72 Jetpack_Gutenberg::set_extension_available( 'ai-assistant-usage-panel' );
73 Jetpack_Gutenberg::set_extension_available( 'ai-featured-image-generator' );
74 Jetpack_Gutenberg::set_extension_available( 'ai-title-optimization' );
75 Jetpack_Gutenberg::set_extension_available( 'ai-assistant-experimental-image-generation-support' );
76 Jetpack_Gutenberg::set_extension_available( 'ai-general-purpose-image-generator' );
77 Jetpack_Gutenberg::set_extension_available( 'ai-assistant-site-logo-support' );
78 Jetpack_Gutenberg::set_extension_available( 'ai-title-optimization-keywords-support' );
79 Jetpack_Gutenberg::set_extension_available( 'ai-assistant-image-extension' );
80
81 $site_locale = get_locale();
82 // Only enable Write Brief for sites with an English locale.
83 // Disabled by default; set the 'breve_enabled' filter to true to re-enable.
84 if ( str_starts_with( $site_locale, 'en' ) && apply_filters( 'breve_enabled', false ) ) {
85 Jetpack_Gutenberg::set_extension_available( 'ai-proofread-breve' );
86 }
87
88 if ( apply_filters( 'ai_correct_spelling_enabled', false ) ) {
89 Jetpack_Gutenberg::set_extension_available( 'ai-correct-spelling' );
90 }
91
92 if ( apply_filters( 'ai_seo_enhancer_enabled', true ) ) {
93 Jetpack_Gutenberg::set_availability_for_plan( 'ai-seo-enhancer' );
94 }
95 }
96 }
97 );
98
99 /**
100 * Register the `ai-list-to-table-transform` extension.
101 */
102 add_action(
103 'jetpack_register_gutenberg_extensions',
104 function () {
105 if ( apply_filters( 'jetpack_ai_enabled', true ) &&
106 apply_filters( 'list_to_table_transform_enabled', false )
107 ) {
108 \Jetpack_Gutenberg::set_extension_available( 'ai-list-to-table-transform' );
109 }
110 }
111 );
112
113 /**
114 * Register the `ai-response-feedback` extension.
115 */
116 add_action(
117 'jetpack_register_gutenberg_extensions',
118 function () {
119 if ( apply_filters( 'jetpack_ai_enabled', true ) &&
120 apply_filters( 'ai_response_feedback_enabled', true )
121 ) {
122 \Jetpack_Gutenberg::set_extension_available( 'ai-response-feedback' );
123 }
124 }
125 );
126