Нема описа

Notice.php 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace MailPoet\WP;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\WP\Functions as WPFunctions;
  5. class Notice {
  6. const TYPE_ERROR = 'error';
  7. const TYPE_WARNING = 'warning';
  8. const TYPE_SUCCESS = 'success';
  9. const TYPE_INFO = 'info';
  10. private $type;
  11. private $message;
  12. private $classes;
  13. private $dataNoticeName;
  14. private $renderInParagraph;
  15. public function __construct(
  16. $type,
  17. $message,
  18. $classes = '',
  19. $dataNoticeName = '',
  20. $renderInParagraph = true
  21. ) {
  22. $this->type = $type;
  23. $this->message = $message;
  24. $this->classes = $classes;
  25. $this->dataNoticeName = $dataNoticeName;
  26. $this->renderInParagraph = $renderInParagraph;
  27. }
  28. public function getMessage() {
  29. return $this->message;
  30. }
  31. public static function displayError($message, $classes = '', $dataNoticeName = '', $renderInParagraph = true, $showErrorTitle = true) {
  32. if ($showErrorTitle) {
  33. $message = sprintf(
  34. "<b>%s </b> %s",
  35. WPFunctions::get()->__('MailPoet Error:', 'mailpoet'),
  36. $message
  37. );
  38. }
  39. return self::createNotice(self::TYPE_ERROR, $message, $classes, $dataNoticeName, $renderInParagraph);
  40. }
  41. public static function displayWarning($message, $classes = '', $dataNoticeName = '', $renderInParagraph = true) {
  42. return self::createNotice(self::TYPE_WARNING, $message, $classes, $dataNoticeName, $renderInParagraph);
  43. }
  44. public static function displaySuccess($message, $classes = '', $dataNoticeName = '', $renderInParagraph = true) {
  45. return self::createNotice(self::TYPE_SUCCESS, $message, $classes, $dataNoticeName, $renderInParagraph);
  46. }
  47. public static function displayInfo($message, $classes = '', $dataNoticeName = '', $renderInParagraph = true) {
  48. return self::createNotice(self::TYPE_INFO, $message, $classes, $dataNoticeName, $renderInParagraph);
  49. }
  50. protected static function createNotice($type, $message, $classes, $dataNoticeName, $renderInParagraph) {
  51. $notice = new Notice($type, $message, $classes, $dataNoticeName, $renderInParagraph);
  52. WPFunctions::get()->addAction('admin_notices', [$notice, 'displayWPNotice']);
  53. return $notice;
  54. }
  55. public function displayWPNotice() {
  56. $class = sprintf('notice notice-%s mailpoet_notice_server %s', $this->type, $this->classes);
  57. $message = nl2br($this->message);
  58. $dataNoticeName = !empty($this->dataNoticeName) ? sprintf('data-notice="%s"', $this->dataNoticeName) : '';
  59. if ($this->renderInParagraph) {
  60. printf('<div class="%1$s" %3$s><p>%2$s</p></div>', $class, $message, $dataNoticeName);
  61. } else {
  62. printf('<div class="%1$s" %3$s>%2$s</div>', $class, $message, $dataNoticeName);
  63. }
  64. }
  65. }