• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Yoast / wordpress-seo / 56db0408fe2a0dbffe1c2c6cfad9b5c2f6941e34

14 Apr 2025 12:24PM UTC coverage: 52.454% (-2.1%) from 54.594%
56db0408fe2a0dbffe1c2c6cfad9b5c2f6941e34

Pull #22077

github

enricobattocchi
Adjust carryforward in Coveralls action
Pull Request #22077: Drop compatibility with PHP 7.2 and 7.3

7827 of 13877 branches covered (56.4%)

Branch coverage included in aggregate %.

29025 of 56379 relevant lines covered (51.48%)

42277.18 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

23.33
/admin/class-admin-gutenberg-compatibility-notification.php
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() {
6✔
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 );
6✔
64

65
                if (
66
                        ! $this->compatibility_checker->is_installed()
6✔
67
                        || $this->compatibility_checker->is_fully_compatible()
4✔
68
                        || ! $display_notification
6✔
69
                ) {
70
                        $this->notification_center->remove_notification_by_id( $this->notification_id );
6✔
71

72
                        return;
6✔
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
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc