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. * */ public function register_hooks() { global $whip_admin_notices_added; if ( null === $whip_admin_notices_added || ! $whip_admin_notices_added ) { add_action( 'admin_notices', array( $this, 'renderMessage' ) ); $whip_admin_notices_added = true; } } /** * Renders the messages present in the global to notices. */ public function renderMessage() { $dismissListener = new Whip_WPMessageDismissListener( $this->dismisser ); $dismissListener->listen(); if ( $this->dismisser->isDismissed() ) { return; } $dismissButton = sprintf( '%1$s', $this->dismissMessage, $dismissListener->getDismissURL() ); printf( '

%1$s

%2$s

', $this->kses( $this->message->body() ), $dismissButton ); } /** * Removes content from the message that we don't want to show. * * @param string $message The message to clean. * * @return string The cleaned message. */ public function kses( $message ) { return wp_kses( $message, array( 'a' => array( 'href' => true, 'target' => true, ), 'strong' => true, 'p' => true, 'ul' => true, 'li' => true, ) ); } }