public function renderMessage() {
		$dismissListener = new Whip_WPMessageDismissListener( $this->dismisser );
		$dismissListener->listen();

		if ( $this->dismisser->isDismissed() ) {
			return;
		}

		$dismissButton = sprintf(
			'<a href="%2$s">%1$s</a>',
			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(
			'<div class="error"><p>%1$s</p><p>%2$s</p></div>',
			$this->kses( $this->message->body() ),
			$dismissButton
		);
		// phpcs:enable
	}