PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 13.9.2
Jetpack – WP Security, Backup, Speed, & Growth v13.9.2
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 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 1 year ago
ai-assistant.php
212 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 /**
18 * Registers our block for use in Gutenberg
19 * This is done via an action so that we can disable
20 * registration if we need to.
21 */
22 function register_block() {
23 if (
24 ( ( new Host() )->is_wpcom_simple()
25 || ! ( new Status() )->is_offline_mode()
26 ) && apply_filters( 'jetpack_ai_enabled', true )
27 ) {
28 Blocks::jetpack_register_block(
29 __DIR__,
30 array( 'render_callback' => __NAMESPACE__ . '\load_assets' )
31 );
32 }
33 }
34 add_action( 'init', __NAMESPACE__ . '\register_block' );
35
36 /**
37 * Jetpack AI Assistant block registration/dependency declaration.
38 *
39 * @param array $attr Array containing the Jetpack AI Assistant block attributes.
40 * @param string $content String containing the Jetpack AI Assistant block content.
41 *
42 * @return string
43 */
44 function load_assets( $attr, $content ) {
45 /*
46 * Enqueue necessary scripts and styles.
47 */
48 Jetpack_Gutenberg::load_assets_as_required( __DIR__ );
49
50 return sprintf(
51 '<div class="%1$s">%2$s</div>',
52 esc_attr( Blocks::classes( Blocks::get_block_feature( __DIR__ ), $attr ) ),
53 $content
54 );
55 }
56
57 /**
58 * Register the `ai-assistant-support` extension.
59 */
60 add_action(
61 'jetpack_register_gutenberg_extensions',
62 function () {
63 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
64 \Jetpack_Gutenberg::set_extension_available( 'ai-assistant-support' );
65 }
66 }
67 );
68
69 /**
70 * Register the `ai-assistant-form-support` extension.
71 */
72 add_action(
73 'jetpack_register_gutenberg_extensions',
74 function () {
75 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
76 \Jetpack_Gutenberg::set_extension_available( 'ai-assistant-form-support' );
77 }
78 }
79 );
80
81 /**
82 * Register the `ai-content-lens` extension.
83 */
84 add_action(
85 'jetpack_register_gutenberg_extensions',
86 function () {
87 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
88 \Jetpack_Gutenberg::set_extension_available( 'ai-content-lens' );
89 }
90 }
91 );
92
93 /**
94 * Register the `ai-assistant-backend-prompts` extension.
95 */
96 add_action(
97 'jetpack_register_gutenberg_extensions',
98 function () {
99 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
100 \Jetpack_Gutenberg::set_extension_available( 'ai-assistant-backend-prompts' );
101 }
102 }
103 );
104
105 /**
106 * Register the `ai-assistant-usage-panel` extension.
107 */
108 add_action(
109 'jetpack_register_gutenberg_extensions',
110 function () {
111 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
112 \Jetpack_Gutenberg::set_extension_available( 'ai-assistant-usage-panel' );
113 }
114 }
115 );
116
117 /**
118 * Register the `ai-featured-image-generator` extension.
119 */
120 add_action(
121 'jetpack_register_gutenberg_extensions',
122 function () {
123 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
124 \Jetpack_Gutenberg::set_extension_available( 'ai-featured-image-generator' );
125 }
126 }
127 );
128
129 /**
130 * Register the `ai-title-optimization` extension.
131 */
132 add_action(
133 'jetpack_register_gutenberg_extensions',
134 function () {
135 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
136 \Jetpack_Gutenberg::set_extension_available( 'ai-title-optimization' );
137 }
138 }
139 );
140
141 /**
142 * Register the `ai-assistant-experimental-image-generation-support` extension.
143 */
144 add_action(
145 'jetpack_register_gutenberg_extensions',
146 function () {
147 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
148 \Jetpack_Gutenberg::set_extension_available( 'ai-assistant-experimental-image-generation-support' );
149 }
150 }
151 );
152
153 /**
154 * Register the `ai-general-purpose-image-generator` extension.
155 */
156 add_action(
157 'jetpack_register_gutenberg_extensions',
158 function () {
159 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
160 \Jetpack_Gutenberg::set_extension_available( 'ai-general-purpose-image-generator' );
161 }
162 }
163 );
164
165 /**
166 * Register the `ai-proofread-breve` extension.
167 */
168 add_action(
169 'jetpack_register_gutenberg_extensions',
170 function () {
171 if ( apply_filters( 'jetpack_ai_enabled', true ) && apply_filters( 'breve_enabled', true ) ) {
172 \Jetpack_Gutenberg::set_extension_available( 'ai-proofread-breve' );
173 }
174 }
175 );
176
177 /**
178 * Register the `ai-assistant-site-logo-support` extension.
179 */
180 add_action(
181 'jetpack_register_gutenberg_extensions',
182 function () {
183 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
184 \Jetpack_Gutenberg::set_extension_available( 'ai-assistant-site-logo-support' );
185 }
186 }
187 );
188
189 /**
190 * Register the `ai-title-optimization-keywords-support` extension.
191 */
192 add_action(
193 'jetpack_register_gutenberg_extensions',
194 function () {
195 if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
196 \Jetpack_Gutenberg::set_extension_available( 'ai-title-optimization-keywords-support' );
197 }
198 }
199 );
200
201 /**
202 * Register the `ai-logo-style-selector-support` extension.
203 */
204 add_action(
205 'jetpack_register_gutenberg_extensions',
206 function () {
207 if ( apply_filters( 'jetpack_ai_enabled', true ) && apply_filters( 'jetpack_ai_logo_style_selector_enabled', false ) ) {
208 \Jetpack_Gutenberg::set_extension_available( 'ai-logo-style-selector-support' );
209 }
210 }
211 );
212