: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* Handles the Gutenberg Compatibility notification showing and hiding.
class WPSEO_Admin_Gutenberg_Compatibility_Notification implements WPSEO_WordPress_Integration {
* Notification ID to use.
private $notification_id = 'wpseo-outdated-gutenberg-plugin';
* Instance of gutenberg compatibility checker.
* @var WPSEO_Gutenberg_Compatibility
protected $compatibility_checker;
* Instance of Yoast Notification Center.
* @var Yoast_Notification_Center
protected $notification_center;
* WPSEO_Admin_Gutenberg_Compatibility_Notification constructor.
public function __construct() {
$this->compatibility_checker = new WPSEO_Gutenberg_Compatibility();
$this->notification_center = Yoast_Notification_Center::get();
* Registers all hooks to WordPress.
public function register_hooks() {
add_action( 'admin_init', [ $this, 'manage_notification' ] );
* Manages if the notification should be shown or removed.
public function manage_notification() {
* Filter: 'yoast_display_gutenberg_compat_notification' - Allows developer to disable the Gutenberg compatibility
* @param bool $display_notification
$display_notification = apply_filters( 'yoast_display_gutenberg_compat_notification', true );
! $this->compatibility_checker->is_installed()
|| $this->compatibility_checker->is_fully_compatible()
|| ! $display_notification
$this->notification_center->remove_notification_by_id( $this->notification_id );
$this->add_notification();
* Adds the notification to the notificaton center.
protected function add_notification() {
$level = $this->compatibility_checker->is_below_minimum() ? Yoast_Notification::ERROR : Yoast_Notification::WARNING;
/* translators: %1$s expands to Yoast SEO, %2$s expands to the installed version, %3$s expands to Gutenberg */
__( '%1$s detected you are using version %2$s of %3$s, please update to the latest version to prevent compatibility issues.', 'wordpress-seo' ),
$this->compatibility_checker->get_installed_version(),
$notification = new Yoast_Notification(
'id' => $this->notification_id,
$this->notification_center->add_notification( $notification );