PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.2-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.2-a.1
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-newsletter / src / class-reader-link.php
jetpack / jetpack_vendor / automattic / jetpack-newsletter / src Last commit date
class-reader-link.php 4 months ago class-settings.php 1 week ago class-subscribers-announcement.php 3 weeks ago class-urls.php 4 months ago class-writing-prompt-widget.php 2 months ago
class-reader-link.php
131 lines
1 <?php
2 /**
3 * A class that adds a link to the WordPress.com Reader to the admin bar.
4 *
5 * @package automattic/jetpack-newsletter
6 */
7
8 namespace Automattic\Jetpack\Newsletter;
9
10 use Automattic\Jetpack\Connection\Urls;
11 use Automattic\Jetpack\Modules;
12 use Automattic\Jetpack\Status\Host;
13 use WP_Admin_Bar;
14
15 /**
16 * Add a link to the WordPress.com Reader to the admin bar.
17 */
18 class Reader_Link {
19 /**
20 * Whether the class has been initialized.
21 *
22 * @var bool
23 */
24 private static $initialized = false;
25
26 /**
27 * Initialize the Reader Link functionality.
28 *
29 * This method sets up all necessary hooks for the Reader menu item
30 * and its associated styles. It can be called multiple times safely
31 * as it will only initialize once.
32 *
33 * @since 0.4.0
34 *
35 * @return void
36 */
37 public static function init() {
38 if ( self::$initialized ) {
39 return;
40 }
41
42 if ( ! is_user_logged_in() || ! is_admin_bar_showing() ) {
43 return;
44 }
45
46 self::$initialized = true;
47
48 $instance = new self();
49 add_action( 'admin_bar_menu', array( $instance, 'add_reader_menu' ), 11 );
50 add_action( 'wp_enqueue_scripts', array( $instance, 'enqueue_stylesheet' ) );
51 add_action( 'admin_enqueue_scripts', array( $instance, 'enqueue_stylesheet' ) );
52 }
53
54 /**
55 * Enqueue the stylesheet used to display the Reader icon.
56 *
57 * @since 0.4.0
58 *
59 * @return void
60 */
61 public function enqueue_stylesheet() {
62 $build_path = dirname( __DIR__ ) . '/build/reader-link.css';
63 if ( ! file_exists( $build_path ) ) {
64 return;
65 }
66
67 $asset_file = dirname( __DIR__ ) . '/build/reader-link.asset.php';
68 $version = file_exists( $asset_file )
69 ? include $asset_file
70 : array( 'version' => filemtime( $build_path ) );
71
72 wp_enqueue_style(
73 'jetpack-newsletter-reader-link',
74 plugins_url( '../build/reader-link.css', __FILE__ ),
75 array(),
76 $version['version'] ?? filemtime( $build_path )
77 );
78 }
79
80 /**
81 * Add the Reader menu.
82 *
83 * Hook into 'admin_bar_menu' to add to the wp-admin bar.
84 *
85 * @since 0.4.0
86 *
87 * @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar core object.
88 */
89 public function add_reader_menu( $wp_admin_bar ) {
90 $reader_menu_settings = array(
91 'id' => 'reader',
92 'title' => '<span class="ab-icon" title="' . __( 'Read the blogs and topics you follow', 'jetpack-newsletter' ) . '" aria-hidden="true"></span>' .
93 '<span class="ab-label">' . __( 'Reader', 'jetpack-newsletter' ) . '</span>',
94 'href' => method_exists( Urls::class, 'maybe_add_origin_site_id' )
95 ? Urls::maybe_add_origin_site_id( 'https://wordpress.com/reader' )
96 : 'https://wordpress.com/reader',
97 'meta' => array(
98 'class' => 'wp-admin-bar-reader',
99 ),
100 'parent' => 'top-secondary',
101 );
102
103 /*
104 * On self-hosted sites, open the Reader link in a new tab
105 * since they're not necessarily logged in to WordPress.com
106 * and may not want to navigate away from their site.
107 */
108 if ( ! ( new Host() )->is_wpcom_platform() ) {
109 $reader_menu_settings['meta']['target'] = '_blank';
110 }
111
112 $wp_admin_bar->add_menu( $reader_menu_settings );
113 }
114
115 /**
116 * Activate the wpcom-reader module when a site is first connected to WordPress.com.
117 *
118 * Only activates on truly fresh connections. If modules were previously initialized
119 * (e.g., the user disconnected and reconnected), we respect their prior module choices.
120 *
121 * @since 0.4.0
122 */
123 public static function activate_on_connection() {
124 if ( \Jetpack_Options::get_option( 'active_modules_initialized' ) ) {
125 return;
126 }
127
128 ( new Modules() )->activate( 'wpcom-reader', false, false );
129 }
130 }
131