Aucune description

MetaInfo.php 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace MailPoet\Mailer;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Entities\SubscriberEntity;
  5. use MailPoet\Models\Newsletter;
  6. use MailPoet\Models\Subscriber;
  7. class MetaInfo {
  8. public function getSendingTestMetaInfo() {
  9. return $this->makeMetaInfo('sending_test', 'unknown', 'administrator');
  10. }
  11. public function getPreviewMetaInfo() {
  12. return $this->makeMetaInfo('preview', 'unknown', 'administrator');
  13. }
  14. public function getStatsNotificationMetaInfo() {
  15. return $this->makeMetaInfo('email_stats_notification', 'unknown', 'administrator');
  16. }
  17. public function getWordPressTransactionalMetaInfo(SubscriberEntity $subscriber = null) {
  18. return $this->makeMetaInfo(
  19. 'transactional',
  20. $subscriber ? $subscriber->getStatus() : 'unknown',
  21. $subscriber ? $subscriber->getSource() : 'unknown'
  22. );
  23. }
  24. public function getConfirmationMetaInfo(Subscriber $subscriber) {
  25. return $this->makeMetaInfo('confirmation', $subscriber->status, $subscriber->source);
  26. }
  27. public function getNewSubscriberNotificationMetaInfo() {
  28. return $this->makeMetaInfo('new_subscriber_notification', 'unknown', 'administrator');
  29. }
  30. public function getNewsletterMetaInfo($newsletter, Subscriber $subscriber) {
  31. $type = 'unknown';
  32. switch ($newsletter->type) {
  33. case Newsletter::TYPE_AUTOMATIC:
  34. $group = isset($newsletter->options['group']) ? $newsletter->options['group'] : 'unknown';
  35. $event = isset($newsletter->options['event']) ? $newsletter->options['event'] : 'unknown';
  36. $type = sprintf('automatic_%s_%s', $group, $event);
  37. break;
  38. case Newsletter::TYPE_STANDARD:
  39. $type = 'newsletter';
  40. break;
  41. case Newsletter::TYPE_WELCOME:
  42. $type = 'welcome';
  43. break;
  44. case Newsletter::TYPE_NOTIFICATION:
  45. case Newsletter::TYPE_NOTIFICATION_HISTORY:
  46. $type = 'post_notification';
  47. break;
  48. }
  49. return $this->makeMetaInfo($type, $subscriber->status, $subscriber->source);
  50. }
  51. private function makeMetaInfo($emailType, $subscriberStatus, $subscriberSource) {
  52. return [
  53. 'email_type' => $emailType,
  54. 'subscriber_status' => $subscriberStatus,
  55. 'subscriber_source' => $subscriberSource ?: 'unknown',
  56. ];
  57. }
  58. }