PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.7
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.7
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 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 All 506 releases
← All changes | extensions/blocks/ai-assistant/ai-assistant.php +56 -113 13.7.2 → 16.3-a.7 View file →
@@ -13,8 +13,20 @@
13 13 use Automattic\Jetpack\Status;
14 14 use Automattic\Jetpack\Status\Host;
15 15 use Jetpack_Gutenberg;
16 16
17 +if ( ! defined( 'ABSPATH' ) ) {
18 + exit( 0 );
19 +}
20 +
21 +// Required directly rather than relying on the plugin bootstrap: on
22 +// WordPress.com Simple the extension files load through wpcom's own loader
23 +// and load-jetpack.php never runs.
24 +// This file loads before PHPUnit starts collecting coverage.
25 +// @codeCoverageIgnoreStart
26 +require_once __DIR__ . '/../../../_inc/lib/class-jetpack-ai-settings.php';
27 +// @codeCoverageIgnoreEnd
28 +
17 29 /**
18 30 * Registers our block for use in Gutenberg
19 31 * This is done via an action so that we can disable
20 32 * registration if we need to.
@@ -22,9 +34,10 @@
22 34 function register_block() {
23 35 if (
24 36 ( ( new Host() )->is_wpcom_simple()
25 37 || ! ( new Status() )->is_offline_mode()
26 - ) && apply_filters( 'jetpack_ai_enabled', true )
38 + ) && \Jetpack_AI_Settings::is_ai_enabled()
39 + && \Jetpack_AI_Settings::is_feature_enabled( 'writing_assistant' )
27 40 ) {
28 41 Blocks::jetpack_register_block(
29 42 __DIR__,
30 43 array( 'render_callback' => __NAMESPACE__ . '\load_assets' )
@@ -54,146 +67,76 @@
54 67 );
55 68 }
56 69
57 70 /**
58 - * Register the `ai-assistant-support` extension.
71 + * Register extensions.
59 72 */
60 73 add_action(
61 74 'jetpack_register_gutenberg_extensions',
62 75 function () {
63 - if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
64 - \Jetpack_Gutenberg::set_extension_available( 'ai-assistant-support' );
65 - }
66 - }
67 -);
76 + if ( \Jetpack_AI_Settings::is_ai_enabled() ) {
77 + // The usage meter reports on every AI feature, so it follows the
78 + // master switch alone.
79 + Jetpack_Gutenberg::set_extension_available( 'ai-assistant-usage-panel' );
68 80
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 -);
81 + if ( \Jetpack_AI_Settings::is_feature_enabled( 'writing_assistant' ) ) {
82 + Jetpack_Gutenberg::set_extension_available( 'ai-content-lens' );
83 + Jetpack_Gutenberg::set_extension_available( 'ai-assistant-support' );
84 + Jetpack_Gutenberg::set_extension_available( 'ai-assistant-form-support' );
85 + Jetpack_Gutenberg::set_extension_available( 'ai-assistant-backend-prompts' );
86 + Jetpack_Gutenberg::set_extension_available( 'ai-title-optimization' );
87 + Jetpack_Gutenberg::set_extension_available( 'ai-title-optimization-keywords-support' );
80 88
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 -);
89 + $site_locale = get_locale();
90 + // Only enable Write Brief for sites with an English locale.
91 + // Disabled by default; set the 'breve_enabled' filter to true to re-enable.
92 + if ( str_starts_with( $site_locale, 'en' ) && apply_filters( 'breve_enabled', false ) ) {
93 + Jetpack_Gutenberg::set_extension_available( 'ai-proofread-breve' );
94 + }
92 95
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 -);
96 + if ( apply_filters( 'ai_correct_spelling_enabled', false ) ) {
97 + Jetpack_Gutenberg::set_extension_available( 'ai-correct-spelling' );
98 + }
99 + }
104 100
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 -);
101 + if ( \Jetpack_AI_Settings::is_feature_enabled( 'image_editor' ) ) {
102 + Jetpack_Gutenberg::set_extension_available( 'ai-featured-image-generator' );
103 + Jetpack_Gutenberg::set_extension_available( 'ai-assistant-experimental-image-generation-support' );
104 + Jetpack_Gutenberg::set_extension_available( 'ai-general-purpose-image-generator' );
105 + Jetpack_Gutenberg::set_extension_available( 'ai-assistant-site-logo-support' );
106 + Jetpack_Gutenberg::set_extension_available( 'ai-assistant-image-extension' );
107 + }
116 108
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' );
109 + if ( apply_filters( 'ai_seo_enhancer_enabled', true ) ) {
110 + Jetpack_Gutenberg::set_availability_for_plan( 'ai-seo-enhancer' );
111 + }
125 112 }
126 113 }
127 114 );
128 115
129 116 /**
130 - * Register the `ai-title-optimization` extension.
117 + * Register the `ai-list-to-table-transform` extension.
131 118 */
132 119 add_action(
133 120 'jetpack_register_gutenberg_extensions',
134 121 function () {
135 - if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
136 - \Jetpack_Gutenberg::set_extension_available( 'ai-title-optimization' );
122 + if ( \Jetpack_AI_Settings::is_ai_enabled() &&
123 + apply_filters( 'list_to_table_transform_enabled', false )
124 + ) {
125 + \Jetpack_Gutenberg::set_extension_available( 'ai-list-to-table-transform' );
137 126 }
138 127 }
139 128 );
140 129
141 130 /**
142 - * Register the `ai-assistant-extensions-support` extension.
131 + * Register the `ai-response-feedback` extension.
143 132 */
144 133 add_action(
145 134 'jetpack_register_gutenberg_extensions',
146 135 function () {
147 - if ( apply_filters( 'jetpack_ai_enabled', true ) && apply_filters( 'jetpack_inline_extensions_enabled', false ) ) {
148 - \Jetpack_Gutenberg::set_extension_available( 'ai-assistant-extensions-support' );
149 - }
150 - }
151 -);
152 -
153 -/**
154 - * Register the `ai-assistant-experimental-image-generation-support` 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-assistant-experimental-image-generation-support' );
161 - }
162 - }
163 -);
164 -
165 -/**
166 - * Register the `ai-general-purpose-image-generator` extension.
167 - */
168 -add_action(
169 - 'jetpack_register_gutenberg_extensions',
170 - function () {
171 - if ( apply_filters( 'jetpack_ai_enabled', true ) ) {
172 - \Jetpack_Gutenberg::set_extension_available( 'ai-general-purpose-image-generator' );
173 - }
174 - }
175 -);
176 -
177 -/**
178 - * Register the `ai-proofread-breve` extension.
179 - */
180 -add_action(
181 - 'jetpack_register_gutenberg_extensions',
182 - function () {
183 - if ( apply_filters( 'jetpack_ai_enabled', true ) && apply_filters( 'breve_enabled', true ) ) {
184 - \Jetpack_Gutenberg::set_extension_available( 'ai-proofread-breve' );
185 - }
186 - }
187 -);
188 -
189 -/**
190 - * Register the `ai-assistant-site-logo-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-assistant-site-logo-support' );
136 + if ( \Jetpack_AI_Settings::is_ai_enabled() &&
137 + apply_filters( 'ai_response_feedback_enabled', true )
138 + ) {
139 + \Jetpack_Gutenberg::set_extension_available( 'ai-response-feedback' );
197 140 }
198 141 }
199 142 );