message = $message; $this->dismisser = $dismisser; $this->dismissMessage = $dismissMessage; } /** * Registers hooks to WordPress. * * This is a separate function so you can control when the hooks are registered. * * @return void */ public function registerHooks() { \add_action( 'admin_notices', array( $this, 'renderMessage' ) ); } /** * Renders the messages present in the global to notices. * * @return void */ public function renderMessage() { $dismissListener = new WPMessageDismissListener( $this->dismisser ); $dismissListener->listen(); if ( $this->dismisser->isDismissed() ) { return; } $dismissButton = \sprintf( '%1$s', \esc_html( $this->dismissMessage ), \esc_url( $dismissListener->getDismissURL() ) ); // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped -- output correctly escaped directly above and in the `kses()` method. \printf( '
%1$s
%2$s