PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.1-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.1-beta
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 / jetpack_vendor / automattic / jetpack-search / src / class-ai-answers.php
jetpack / jetpack_vendor / automattic / jetpack-search / src Last commit date
classic-search 8 months ago customberg 8 months ago customizer 3 months ago dashboard 2 months ago initializers 2 months ago inline-search 3 weeks ago instant-search 2 months ago search-blocks 3 weeks ago widgets 2 months ago wpes 9 months ago class-ai-answers.php 3 months ago class-cli.php 3 months ago class-helper.php 1 month ago class-module-control.php 2 months ago class-options.php 3 months ago class-package.php 3 weeks ago class-plan.php 9 months ago class-rest-controller.php 2 months ago class-settings.php 3 months ago class-stats.php 9 months ago class-template-tags.php 9 months ago
class-ai-answers.php
97 lines
1 <?php
2 /**
3 * AI Answers feature — behavior meta and enabled flag.
4 *
5 * @package automattic/jetpack-search
6 */
7
8 namespace Automattic\Jetpack\Search;
9
10 /**
11 * Registers behavior meta on the Gutenberg Guidelines CPT and exposes the
12 * jetpack_search_ai_answers_enabled option.
13 */
14 class AI_Answers {
15 const BEHAVIOR_META_KEY = '_guideline_block_jetpack_search-ai-summary';
16 const BEHAVIOR_OPTION_KEY = 'jetpack_search_ai_behavior_instructions';
17
18 /**
19 * Hook up meta/setting registration.
20 */
21 public function init() {
22 add_action( 'rest_api_init', array( $this, 'register_behavior_meta' ) );
23 }
24
25 /**
26 * Register the behavior instructions storage for the REST API.
27 *
28 * When the Gutenberg Guidelines CPT is present, registers the block-specific
29 * meta key on it. Otherwise registers a site option exposed via /wp/v2/settings.
30 */
31 public function register_behavior_meta() {
32 if ( post_type_exists( 'wp_guideline' ) ) {
33 register_post_meta(
34 'wp_guideline',
35 self::BEHAVIOR_META_KEY,
36 array(
37 'single' => true,
38 'type' => 'string',
39 'show_in_rest' => true,
40 'default' => '',
41 'sanitize_callback' => 'sanitize_textarea_field',
42 'auth_callback' => function () {
43 return current_user_can( 'manage_options' );
44 },
45 )
46 );
47 return;
48 }
49
50 register_setting(
51 'options',
52 self::BEHAVIOR_OPTION_KEY,
53 array(
54 'type' => 'string',
55 'default' => '',
56 'sanitize_callback' => 'sanitize_textarea_field',
57 'show_in_rest' => true,
58 )
59 );
60 }
61
62 /**
63 * Retrieve the behavior instructions.
64 *
65 * Reads from the Gutenberg Guidelines CPT when available, otherwise falls
66 * back to the site option.
67 *
68 * @return string Behavior instructions, or empty string if none saved.
69 */
70 public static function get_behavior_instructions() {
71 if ( post_type_exists( 'wp_guideline' ) ) {
72 $posts = get_posts(
73 array(
74 'post_type' => 'wp_guideline',
75 'posts_per_page' => 1,
76 'post_status' => 'publish',
77 )
78 );
79 if ( ! empty( $posts ) ) {
80 $guidelines = get_post_meta( $posts[0]->ID, self::BEHAVIOR_META_KEY, true );
81 return is_string( $guidelines ) ? $guidelines : '';
82 }
83 }
84 return (string) get_option( self::BEHAVIOR_OPTION_KEY, '' );
85 }
86
87 /**
88 * Whether AI Answers is enabled for the current site.
89 */
90 public static function is_enabled() {
91 return (bool) apply_filters(
92 'jetpack_search_ai_answers_enabled',
93 (bool) get_option( 'jetpack_search_ai_answers_enabled', false )
94 );
95 }
96 }
97