PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.1-beta.3
Jetpack – WP Security, Backup, Speed, & Growth v16.1-beta.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-podcast / src / class-podcast.php
jetpack / jetpack_vendor / automattic / jetpack-podcast / src Last commit date
admin-pages 2 months ago blocks 1 month ago endpoints 1 month ago feed 1 month ago class-admin-page.php 1 month ago class-create-ai-podcast-page.php 2 months ago class-new-episode-prefill.php 1 month ago class-podcast-gate.php 1 month ago class-podcast.php 3 weeks ago class-settings.php 1 month ago class-tracks.php 1 month ago
class-podcast.php
114 lines
1 <?php
2 /**
3 * Main loader for the Jetpack Podcast package.
4 *
5 * @package automattic/jetpack-podcast
6 */
7
8 namespace Automattic\Jetpack\Podcast;
9
10 use Automattic\Jetpack\Connection\Manager as Connection_Manager;
11 use Automattic\Jetpack\Podcast\Feed\Customize_Feed;
12 use Automattic\Jetpack\Status\Host;
13
14 /**
15 * Loads the Jetpack Podcast package.
16 */
17 class Podcast {
18
19 const PACKAGE_VERSION = '1.4.3';
20
21 /**
22 * Whether the class has been initialized.
23 *
24 * @var bool
25 */
26 private static $initialized = false;
27
28 /**
29 * Initialize the package. Loads unconditionally; callers decide whether to.
30 */
31 public static function init() {
32 if ( self::$initialized ) {
33 return;
34 }
35 self::$initialized = true;
36
37 Podcast_Episode_Block::register_hooks();
38
39 Podcast_Stats_Endpoint::init();
40 Podcast_Distribution_Endpoint::init();
41 Podcast_Settings_Endpoint::init();
42
43 Settings::register();
44
45 // Wire the RSS feed customizations (`<itunes:*>` + `<podcast:*>` tags,
46 // stats-tracked enclosure URLs) for the configured podcast category.
47 Customize_Feed::init();
48
49 Tracks::init();
50
51 Admin_Page::init();
52
53 if ( is_admin() ) {
54 New_Episode_Prefill::init();
55 }
56
57 $host = new Host();
58 if ( $host->is_wpcom_simple() || $host->is_woa_site() ) {
59 // Register the local REST routes before request-local rollout gates.
60 // Requests from public-api.wordpress.com may not satisfy those gates,
61 // but the wpcom/v2 routes still need to exist so permission and
62 // callback checks can handle the request.
63 Posts_To_Podcast_Endpoint::init();
64
65 // Posts to Podcast lives behind its own filter so the Create AI
66 // Podcast page can ship independently of the rest of the package.
67 //
68 // Note: no `is_admin()` guard here. The submenu must also register when
69 // Calypso builds its nav via the `wpcom/v2/admin-menu` REST endpoint,
70 // which fires `admin_menu` by loading `wp-admin/menu.php` but runs as a
71 // REST request where `is_admin()` is false. The hooks `init()` wires
72 // (`admin_menu`, `enqueue_block_editor_assets`) self-gate, so this is a
73 // no-op on non-admin/non-editor requests.
74 if ( self::is_posts_to_podcast_enabled() ) {
75 Create_AI_Podcast_Page::init();
76 }
77 }
78 }
79
80 /**
81 * Whether the Posts to Podcast feature (Create AI Podcast page + REST
82 * proxy) is enabled for the current request.
83 *
84 * Defaults to true for connected WordPress.com users, and can be flipped
85 * globally via the `jetpack_posts_to_podcast` filter.
86 */
87 public static function is_posts_to_podcast_enabled() {
88 /**
89 * Master switch for the Posts to Podcast (Create AI Podcast) feature.
90 *
91 * @since 0.1.0
92 *
93 * @param bool $enabled Whether to enable Posts to Podcast.
94 */
95 $enabled = self::is_user_connected( get_current_user_id() );
96
97 return (bool) apply_filters( 'jetpack_posts_to_podcast', $enabled );
98 }
99
100 /**
101 * Whether a user is connected to WordPress.com.
102 *
103 * @param int $user_id User ID.
104 * @return bool
105 */
106 private static function is_user_connected( $user_id ) {
107 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
108 return true;
109 }
110
111 return ( new Connection_Manager( 'jetpack' ) )->is_user_connected( $user_id );
112 }
113 }
114