PluginProbe ʕ •ᴥ•ʔ
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 24.5
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v24.5
27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 19.1 19.10 19.11 19.12 19.13 19.14 19.2 19.3 19.4 19.5 19.5.1 19.6 19.6.1 19.7 19.7.1 19.7.2 19.8 19.9 20.0 20.1 20.10 20.11 20.12 20.13 20.2 20.2.1 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21.0 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.8.1 21.9 21.9.1 22.0 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23.0 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24.0 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.8.1 24.9 25.0 25.1 25.2 25.3 25.3.1 25.4 25.5 25.6 25.7 25.8 25.9 26.0 26.1 26.1.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 26.9 27.0 27.1 27.1.1 27.2 27.3 27.4
wordpress-seo / admin / class-admin-gutenberg-compatibility-notification.php
wordpress-seo / admin Last commit date
ajax 2 years ago capabilities 1 year ago endpoints 2 years ago exceptions 7 years ago filters 1 year ago formatter 1 year ago google_search_console 2 years ago import 2 years ago listeners 8 years ago menu 1 year ago metabox 1 year ago notifiers 3 years ago pages 1 year ago roles 2 years ago services 5 years ago statistics 2 years ago taxonomy 1 year ago tracking 1 year ago views 1 year ago watchers 2 years ago admin-settings-changed-listener.php 2 years ago ajax.php 2 years ago class-admin-asset-analysis-worker-location.php 5 years ago class-admin-asset-dev-server-location.php 2 years ago class-admin-asset-location.php 8 years ago class-admin-asset-manager.php 1 year ago class-admin-asset-seo-location.php 4 years ago class-admin-editor-specific-replace-vars.php 2 years ago class-admin-gutenberg-compatibility-notification.php 2 years ago class-admin-help-panel.php 5 years ago class-admin-init.php 1 year ago class-admin-recommended-replace-vars.php 2 years ago class-admin-user-profile.php 1 year ago class-admin-utils.php 2 years ago class-admin.php 1 year ago class-asset.php 1 year ago class-bulk-description-editor-list-table.php 5 years ago class-bulk-editor-list-table.php 2 years ago class-bulk-title-editor-list-table.php 6 years ago class-collector.php 2 years ago class-config.php 1 year ago class-database-proxy.php 2 years ago class-export.php 2 years ago class-expose-shortlinks.php 1 year ago class-gutenberg-compatibility.php 1 year ago class-meta-columns.php 1 year ago class-my-yoast-proxy.php 2 years ago class-option-tab.php 4 years ago class-option-tabs-formatter.php 2 years ago class-option-tabs.php 2 years ago class-paper-presenter.php 5 years ago class-plugin-availability.php 1 year ago class-plugin-conflict.php 2 years ago class-premium-popup.php 2 years ago class-premium-upsell-admin-block.php 1 year ago class-primary-term-admin.php 2 years ago class-product-upsell-notice.php 2 years ago class-remote-request.php 2 years ago class-schema-person-upgrade-notification.php 2 years ago class-suggested-plugins.php 2 years ago class-wincher-dashboard-widget.php 2 years ago class-yoast-columns.php 2 years ago class-yoast-dashboard-widget.php 2 years ago class-yoast-form.php 1 year ago class-yoast-input-validation.php 1 year ago class-yoast-network-admin.php 2 years ago class-yoast-network-settings-api.php 4 years ago class-yoast-notification-center.php 1 year ago class-yoast-notification.php 1 year ago class-yoast-notifications.php 2 years ago class-yoast-plugin-conflict.php 2 years ago index.php 10 years ago interface-collection.php 7 years ago interface-installable.php 8 years ago
class-admin-gutenberg-compatibility-notification.php
106 lines
1 <?php
2 /**
3 * WPSEO plugin file.
4 *
5 * @package WPSEO\Admin
6 */
7
8 /**
9 * Handles the Gutenberg Compatibility notification showing and hiding.
10 */
11 class WPSEO_Admin_Gutenberg_Compatibility_Notification implements WPSEO_WordPress_Integration {
12
13 /**
14 * Notification ID to use.
15 *
16 * @var string
17 */
18 private $notification_id = 'wpseo-outdated-gutenberg-plugin';
19
20 /**
21 * Instance of gutenberg compatibility checker.
22 *
23 * @var WPSEO_Gutenberg_Compatibility
24 */
25 protected $compatibility_checker;
26
27 /**
28 * Instance of Yoast Notification Center.
29 *
30 * @var Yoast_Notification_Center
31 */
32 protected $notification_center;
33
34 /**
35 * WPSEO_Admin_Gutenberg_Compatibility_Notification constructor.
36 */
37 public function __construct() {
38 $this->compatibility_checker = new WPSEO_Gutenberg_Compatibility();
39 $this->notification_center = Yoast_Notification_Center::get();
40 }
41
42 /**
43 * Registers all hooks to WordPress.
44 *
45 * @return void
46 */
47 public function register_hooks() {
48 add_action( 'admin_init', [ $this, 'manage_notification' ] );
49 }
50
51 /**
52 * Manages if the notification should be shown or removed.
53 *
54 * @return void
55 */
56 public function manage_notification() {
57 /**
58 * Filter: 'yoast_display_gutenberg_compat_notification' - Allows developer to disable the Gutenberg compatibility
59 * notification.
60 *
61 * @param bool $display_notification
62 */
63 $display_notification = apply_filters( 'yoast_display_gutenberg_compat_notification', true );
64
65 if (
66 ! $this->compatibility_checker->is_installed()
67 || $this->compatibility_checker->is_fully_compatible()
68 || ! $display_notification
69 ) {
70 $this->notification_center->remove_notification_by_id( $this->notification_id );
71
72 return;
73 }
74
75 $this->add_notification();
76 }
77
78 /**
79 * Adds the notification to the notificaton center.
80 *
81 * @return void
82 */
83 protected function add_notification() {
84 $level = $this->compatibility_checker->is_below_minimum() ? Yoast_Notification::ERROR : Yoast_Notification::WARNING;
85
86 $message = sprintf(
87 /* translators: %1$s expands to Yoast SEO, %2$s expands to the installed version, %3$s expands to Gutenberg */
88 __( '%1$s detected you are using version %2$s of %3$s, please update to the latest version to prevent compatibility issues.', 'wordpress-seo' ),
89 'Yoast SEO',
90 $this->compatibility_checker->get_installed_version(),
91 'Gutenberg'
92 );
93
94 $notification = new Yoast_Notification(
95 $message,
96 [
97 'id' => $this->notification_id,
98 'type' => $level,
99 'priority' => 1,
100 ]
101 );
102
103 $this->notification_center->add_notification( $notification );
104 }
105 }
106