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 / _inc / content-guidelines-ai.php
jetpack / _inc Last commit date
blocks 2 days ago build 2 days ago content-guidelines-ai 2 days ago fonts 1 year ago genericons 4 months ago lib 2 days ago accessible-focus.js 5 years ago blogging-prompts.php 1 week ago class.jetpack-provision.php 7 months ago content-guidelines-ai.js 1 week ago content-guidelines-ai.php 1 week ago crowdsignal-shortcode.js 1 year ago crowdsignal-survey.js 5 years ago deprecate.js 7 months ago facebook-embed.js 4 years ago gallery-settings.js 5 years ago genericons.php 1 year ago jetpack-admin.js 3 years ago jetpack-deactivate-dialog.js 1 year ago jetpack-modules.js 1 year ago jetpack-modules.models.js 7 months ago jetpack-modules.views.js 7 months ago polldaddy-shortcode.js 3 months ago site-switcher-endpoint.php 5 months ago site-switcher.js 5 months ago site-switcher.php 5 months ago social-logos.php 3 months ago twitter-timeline.js 1 month ago
content-guidelines-ai.php
103 lines
1 <?php
2 /**
3 * Content Guidelines AI — Jetpack AI integration.
4 *
5 * Enqueues a standalone JS bundle on the Content Guidelines admin page
6 * that adds AI-powered guideline generation via Jetpack.
7 *
8 * @package automattic/jetpack
9 */
10
11 use Automattic\Jetpack\Assets;
12 use Automattic\Jetpack\Status\Visitor;
13 use Automattic\Jetpack\Tracking;
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit( 0 );
17 }
18
19 /**
20 * Check if the current user is an Automattician.
21 *
22 * - Simple sites: wpcom_is_proxied_request() + is_automattician()
23 * - Atomic sites: Visitor::is_automattician_feature_flags_only()
24 *
25 * @return bool
26 */
27 function jetpack_content_guidelines_ai_is_automattician() {
28 // Simple sites.
29 if ( function_exists( 'wpcom_is_proxied_request' )
30 && wpcom_is_proxied_request()
31 && function_exists( 'is_automattician' )
32 && is_automattician()
33 ) {
34 return true;
35 }
36
37 // Atomic sites.
38 return ( new Visitor() )->is_automattician_feature_flags_only();
39 }
40
41 /**
42 * Enqueue content-guidelines-ai script on the Content Guidelines admin page.
43 *
44 * @since 16.0
45 *
46 * @param string $hook_suffix The current admin page hook suffix.
47 */
48 function jetpack_content_guidelines_ai_enqueue_scripts( $hook_suffix ) {
49 if ( 'settings_page_guidelines-wp-admin' !== $hook_suffix ) {
50 return;
51 }
52
53 // Temporarily gate to Automatticians only during internal rollout.
54 if ( ! jetpack_content_guidelines_ai_is_automattician() ) {
55 return;
56 }
57
58 // Bail when build artifacts are missing rather than enqueueing a script
59 // with guessed (and likely wrong) dependencies.
60 if ( ! file_exists( JETPACK__PLUGIN_DIR . '_inc/build/content-guidelines-ai.min.asset.php' ) ) {
61 return;
62 }
63
64 // The bundle records Tracks events via @automattic/jetpack-analytics,
65 // which only queues into window._tkq. Enqueue the Tracks client (w.js)
66 // so events send without relying on whichever platform widgets happen
67 // to load it.
68 Tracking::register_tracks_functions_scripts( true );
69
70 // Handles dependencies/version from the asset file, JS translations for
71 // the text domain, the CSS (including the .rtl.css variant), and style
72 // dependencies derived from the script's.
73 Assets::register_script(
74 'jetpack-content-guidelines-ai',
75 '_inc/build/content-guidelines-ai.min.js',
76 JETPACK__PLUGIN_FILE,
77 array(
78 'in_footer' => true,
79 'textdomain' => 'jetpack',
80 'css_path' => '_inc/build/content-guidelines-ai.css',
81 'enqueue' => true,
82 )
83 );
84
85 // Preload the per-user "banner dismissed" flag so the empty-state banner
86 // doesn't flash before an async read. Persisted via the
87 // guidelines-banner-dismissed REST endpoint. Defaults to dismissed so a
88 // load error hides the banner rather than showing it on every visit.
89 $banner_dismissed = class_exists( 'WPCOM_REST_API_V2_Endpoint_Guidelines_Banner_Dismissed' )
90 ? WPCOM_REST_API_V2_Endpoint_Guidelines_Banner_Dismissed::is_dismissed()
91 : true;
92 wp_add_inline_script(
93 'jetpack-content-guidelines-ai',
94 'window.jetpackContentGuidelinesAi = ' . wp_json_encode(
95 array( 'bannerDismissed' => $banner_dismissed ),
96 JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT
97 ) . ';',
98 'before'
99 );
100 }
101
102 add_action( 'admin_enqueue_scripts', 'jetpack_content_guidelines_ai_enqueue_scripts' );
103