BlacklistCheck.php
36 lines
| 1 | <?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing |
| 2 | |
| 3 | namespace MailPoet\Mailer\Methods\Common; |
| 4 | |
| 5 | if (!defined('ABSPATH')) exit; |
| 6 | |
| 7 | |
| 8 | use MailPoet\Subscription\Blacklist; |
| 9 | |
| 10 | class BlacklistCheck { |
| 11 | /** @var Blacklist */ |
| 12 | private $blacklist; |
| 13 | |
| 14 | public function __construct( |
| 15 | ?Blacklist $blacklist = null |
| 16 | ) { |
| 17 | if (is_null($blacklist)) { |
| 18 | $blacklist = new Blacklist(); |
| 19 | } |
| 20 | $this->blacklist = $blacklist; |
| 21 | } |
| 22 | |
| 23 | public function isBlacklisted($subscriber) { |
| 24 | $email = $this->getSubscriberEmailForBlacklistCheck($subscriber); |
| 25 | return $this->blacklist->isBlacklisted($email); |
| 26 | } |
| 27 | |
| 28 | private function getSubscriberEmailForBlacklistCheck($subscriberString) { |
| 29 | preg_match('!(?P<name>.*?)\s<(?P<email>.*?)>!', $subscriberString, $subscriberData); |
| 30 | if (!isset($subscriberData['email'])) { |
| 31 | return $subscriberString; |
| 32 | } |
| 33 | return $subscriberData['email']; |
| 34 | } |
| 35 | } |
| 36 |