PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 13.8.3
Jetpack – WP Security, Backup, Speed, & Growth v13.8.3
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 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 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 / src / class-deprecate.php
jetpack / src Last commit date
class-deprecate.php 2 years ago class-jetpack-crm-data.php 2 years ago class-jetpack-modules-overrides.php 3 years ago class-tracking.php 2 years ago
class-deprecate.php
186 lines
1 <?php
2 /**
3 * Place to properly deprecate Jetpack features.
4 *
5 * @package automattic/jetpack
6 */
7
8 namespace Automattic\Jetpack\Plugin;
9
10 use Automattic\Jetpack\Assets;
11 use Automattic\Jetpack\Modules;
12 use Automattic\Jetpack\Redirect;
13 use Automattic\Jetpack\Status\Host;
14
15 /**
16 * Place to properly deprecate Jetpack features.
17 */
18 class Deprecate {
19
20 /**
21 * The singleton instance.
22 *
23 * @var Deprecate
24 */
25 private static $instance;
26
27 /**
28 * Initialize the class.
29 */
30 private function __construct() {
31 if ( $this->has_notices() ) {
32 add_action( 'admin_notices', array( $this, 'render_admin_notices' ) );
33 add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
34 add_filter( 'my_jetpack_red_bubble_notification_slugs', array( $this, 'add_my_jetpack_red_bubbles' ) );
35 add_filter( 'jetpack_modules_list_table_items', array( $this, 'remove_masterbar_module_list' ) );
36 }
37 }
38
39 /**
40 * Create/get the singleton instance.
41 *
42 * @return static
43 */
44 public static function instance() {
45 if ( null === static::$instance ) {
46 static::$instance = new static();
47 }
48
49 return static::$instance;
50 }
51
52 /**
53 * Enqueue the scripts.
54 *
55 * @return void
56 */
57 public function enqueue_admin_scripts() {
58 if ( ! $this->has_notices() ) {
59 return;
60 }
61
62 if ( ! wp_script_is( 'jetpack-deprecate', 'registered' ) ) {
63 wp_register_script(
64 'jetpack-deprecate',
65 Assets::get_file_url_for_environment( '_inc/build/deprecate.min.js', '_inc/deprecate.js' ),
66 array(),
67 JETPACK__VERSION,
68 true
69 );
70 }
71
72 wp_enqueue_script( 'jetpack-deprecate' );
73 }
74
75 /**
76 * Render deprecation notices for relevant features.
77 *
78 * @return void
79 */
80 public function render_admin_notices() {
81 if ( $this->show_masterbar_notice() ) {
82 $support_url = Redirect::get_url( 'jetpack-support-masterbar' );
83
84 $this->render_notice(
85 'jetpack-masterbar-admin-removal-notice',
86 esc_html__( "Jetpack's WordPress.com Toolbar feature has been removed.", 'jetpack' )
87 . ' <a href="' . $support_url . '" target="_blank">' . esc_html__( 'To find out more about what this means for you, please refer to this document', 'jetpack' ) . '</a>.'
88 );
89 }
90 }
91
92 /**
93 * Add the deprecation notices to My Jetpack.
94 *
95 * @param array $slugs Already added bubbles.
96 *
97 * @return array
98 */
99 public function add_my_jetpack_red_bubbles( $slugs ) {
100 if ( $this->show_masterbar_notice() ) {
101 $slugs['jetpack-masterbar-deprecate-feature'] = array(
102 'data' => array(
103 'text' => __( "Jetpack's WordPress.com Toolbar feature has been removed.", 'jetpack' ),
104 'link' => array(
105 'label' => esc_html__( 'See documentation', 'jetpack' ),
106 'url' => Redirect::get_url( 'jetpack-support-masterbar' ),
107 ),
108 'id' => 'jetpack-masterbar-admin-removal-notice',
109 ),
110 );
111 }
112
113 return $slugs;
114 }
115
116 /**
117 * Render the notice.
118 *
119 * @param string $id The notice ID.
120 * @param string $text The notice text.
121 * @param array $params Additional notice params.
122 *
123 * @return void
124 */
125 private function render_notice( $id, $text, $params = array() ) {
126 if ( ! empty( $_COOKIE['jetpack_deprecate_dismissed'][ $id ] ) ) {
127 return;
128 }
129
130 $params['id'] = $id;
131
132 if ( empty( $params['type'] ) ) {
133 $params['type'] = 'warning';
134 }
135
136 if ( empty( $params['dismissible'] ) ) {
137 $params['dismissible'] = true;
138 }
139
140 if ( $params['dismissible'] ) {
141 if ( empty( $params['additional_classes'] ) ) {
142 $params['additional_classes'] = array();
143 }
144
145 $params['additional_classes'][] = 'jetpack-deprecate-dismissible';
146 }
147
148 wp_admin_notice( $text, $params );
149 }
150
151 /**
152 * Check if there are any notices to be displayed, so we wouldn't load unnecessary JS and run excessive hooks.
153 *
154 * @return bool
155 */
156 private function has_notices() {
157 return $this->show_masterbar_notice();
158 }
159
160 /**
161 * Check if Masterbar notice should show up.
162 *
163 * @return bool
164 */
165 private function show_masterbar_notice() {
166 return ( new Modules() )->is_active( 'masterbar', false )
167 && ! ( new Host() )->is_woa_site()
168 && empty( $_COOKIE['jetpack_deprecate_dismissed']['jetpack-masterbar-admin-removal-notice'] );
169 }
170
171 /**
172 * Remove Masterbar from the old Module list.
173 * Available at wp-admin/admin.php?page=jetpack_modules
174 * We only need this function until the Masterbar is fully removed from Jetpack (including notices).
175 *
176 * @param array $items Array of Jetpack modules.
177 * @return array
178 */
179 public function remove_masterbar_module_list( $items ) {
180 if ( isset( $items['masterbar'] ) && get_option( 'wpcom_admin_interface' ) !== 'wp-admin' ) {
181 unset( $items['masterbar'] );
182 }
183 return $items;
184 }
185 }
186