PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.7
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.7
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 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 All 506 releases
← All changes | modules/scan/class-admin-sidebar-link.php +13 -79 16.2-beta → 16.3-a.7 View file →
@@ -1,7 +1,7 @@
1 1 <?php
2 2 /**
3 - * A class that adds a scan and backup link to the admin sidebar.
3 + * A class that adds a scan link to the admin sidebar.
4 4 *
5 5 * @package automattic/jetpack
6 6 */
7 7
@@ -7,9 +7,8 @@
7 7
8 8 namespace Automattic\Jetpack\Scan;
9 9
10 10 use Automattic\Jetpack\Admin_UI\Admin_Menu;
11 -use Automattic\Jetpack\My_Jetpack\Products\Backup;
12 11 use Automattic\Jetpack\Redirect;
13 12 use Automattic\Jetpack\Status\Host;
14 13 use Jetpack_Core_Json_Api_Endpoints;
15 14
@@ -60,9 +59,9 @@
60 59 add_action( self::SCHEDULE_ACTION_HOOK, array( $this, 'refresh_state_cache' ) );
61 60 }
62 61
63 62 /**
64 - * Adds a link to the Scan and Backup page.
63 + * Adds a link to the Scan page.
65 64 */
66 65 public function maybe_add_admin_link() {
67 66 if ( ! $this->should_show_link() ) {
68 67 return;
@@ -67,8 +66,10 @@
67 66 if ( ! $this->should_show_link() ) {
68 67 return;
69 68 }
70 69
70 + $position = defined( Admin_Menu::class . '::POSITION_EXTERNAL' ) ? Admin_Menu::POSITION_EXTERNAL : 100;
71 +
71 72 if ( $this->should_show_scan() ) {
72 73 Admin_Menu::add_menu(
73 74 /** "Scan" is a product name, do not translate. */
74 75 'Scan',
@@ -75,9 +76,10 @@
75 76 'Scan <span aria-hidden="true">↗</span>',
76 77 'manage_options',
77 78 esc_url( Redirect::get_url( 'cloud-scan-history-wp-menu' ) ),
78 79 null,
79 - $this->get_link_offset()
80 + $position,
81 + array( 'key' => 'jetpack-scan-cloud' )
80 82 );
81 83 }
82 84
83 85 // Add scan item which shows history page only. This is mutally exclusive from the scan item above and is only shown for Atomic sitse.
@@ -88,53 +90,20 @@
88 90 'Scan <span aria-hidden="true">↗</span>',
89 91 'manage_options',
90 92 esc_url( Redirect::get_url( 'cloud-scan-history-wp-menu' ) ),
91 93 null,
92 - $this->get_link_offset()
94 + $position,
95 + array( 'key' => 'jetpack-scan-cloud' )
93 96 );
94 97 }
95 -
96 - if ( $this->should_show_backup() ) {
97 - Admin_Menu::add_menu(
98 - /** "VaultPress Backup" is a product name, do not translate. */
99 - 'VaultPress Backup',
100 - 'VaultPress Backup <span aria-hidden="true">↗</span>',
101 - 'manage_options',
102 - esc_url( Redirect::get_url( 'calypso-backups' ) ),
103 - null,
104 - $this->get_link_offset()
105 - );
106 - }
107 98 }
108 99
109 100 /**
110 - * We create a menu offset by counting all the pages that have a jetpack_admin_page set as the capability.
101 + * Refreshes the state cache via API call. Called via cron.
111 102 *
112 - * This makes it so that the highlight of the pages works as expected. When you click on the Setting or Dashboard.
113 - *
114 - * @return int Menu offset.
103 + * Still warms the rewind state, which this class no longer reads itself:
104 + * Jetpack_Core_Json_Api_Endpoints::rewind_data() serves it from that cache.
115 105 */
116 - private function get_link_offset() {
117 - global $submenu;
118 - $offset = 17;
119 -
120 - if ( ! array_key_exists( 'jetpack', $submenu ) ) {
121 - return $offset;
122 - }
123 -
124 - foreach ( $submenu['jetpack'] as $link ) {
125 - if ( 'jetpack_admin_page' !== $link[1] ) {
126 - break;
127 - }
128 - ++$offset;
129 - }
130 -
131 - return $offset;
132 - }
133 -
134 - /**
135 - * Refreshes the state cache via API call. Called via cron.
136 - */
137 106 public function refresh_state_cache() {
138 107 Jetpack_Core_Json_Api_Endpoints::get_scan_state();
139 108 Jetpack_Core_Json_Api_Endpoints::get_rewind_data();
140 109 }
@@ -144,9 +113,9 @@
144 113 *
145 114 * @return boolean
146 115 */
147 116 private function should_show_link() {
148 - // Jetpack Scan/Backup is currently not supported on multisite.
117 + // Jetpack Scan is currently not supported on multisite.
149 118 if ( is_multisite() ) {
150 119 return false;
151 120 }
152 121
@@ -155,9 +124,9 @@
155 124 if ( class_exists( 'VaultPress' ) ) {
156 125 return false;
157 126 }
158 127
159 - return $this->should_show_scan() || $this->should_show_backup() || $this->should_show_scan_history_only();
128 + return $this->should_show_scan() || $this->should_show_scan_history_only();
160 129 }
161 130
162 131 /**
163 132 * Check if we should display the Scan menu item.
@@ -181,19 +150,8 @@
181 150 return $this->has_scan() && ( new Host() )->is_woa_site() && get_option( 'wpcom_admin_interface' ) === 'wp-admin';
182 151 }
183 152
184 153 /**
185 - * Check if we should display the Backup menu item.
186 - *
187 - * It will only be displayed if site has Backup enabled and the stand-alone Backup plugin is not active, because it will have a menu item of its own.
188 - *
189 - * @return boolean
190 - */
191 - private function should_show_backup() {
192 - return $this->has_backup() && ! $this->has_backup_plugin();
193 - }
194 -
195 - /**
196 154 * Detects if Scan is enabled.
197 155 *
198 156 * @return boolean
199 157 */
@@ -213,32 +171,8 @@
213 171 * @return boolean
214 172 */
215 173 private function has_protect_plugin() {
216 174 return class_exists( 'Jetpack_Protect' );
217 - }
218 -
219 - /**
220 - * Detects if Backup is enabled.
221 - *
222 - * @return boolean
223 - */
224 - private function has_backup() {
225 - $this->maybe_refresh_transient_cache();
226 - $rewind_state = get_transient( 'jetpack_rewind_state' );
227 - if ( ! $rewind_state ) {
228 - return false;
229 - }
230 -
231 - return isset( $rewind_state->state ) && 'unavailable' !== $rewind_state->state;
232 - }
233 -
234 - /**
235 - * Detects if Backup plugin is active.
236 - *
237 - * @return boolean
238 - */
239 - private function has_backup_plugin() {
240 - return Backup::is_standalone_plugin_active();
241 175 }
242 176
243 177 /**
244 178 * Triggers a cron job to refresh the Scan and Rewind state cache.