PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.16.9
GiveWP – Donation Plugin and Fundraising Platform v4.16.9
4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 All 255 releases
give / src / DonationSpam / EmailAddressWhiteList.php

EmailAddressWhiteList.php in GiveWP – Donation Plugin and Fundraising Platform 4.16.9, at src/DonationSpam/EmailAddressWhiteList.php

47 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\DonationSpam;
4
5 /**
6 * @since 3.15.0
7 */
8 class EmailAddressWhiteList
9 {
10 /**
11 * @var string[]
12 */
13 protected array $whitelistEmails;
14
15 /**
16 * @since 4.16.0 Normalize whitelisted emails so comparisons are case- and whitespace-insensitive.
17 * @since 3.15.1 Add array type to enforce type.
18 * @since 3.15.0
19 */
20 public function __construct(array $whitelistEmails = [])
21 {
22 $this->whitelistEmails = array_map([$this, 'normalize'], $whitelistEmails);
23 }
24
25 /**
26 * @since 4.16.0 Compare against the normalized whitelist so casing/whitespace don't cause a miss.
27 * @since 3.15.0
28 */
29 public function validate(string $email): bool
30 {
31 return in_array($this->normalize($email), $this->whitelistEmails, true);
32 }
33
34 /**
35 * Whitelist entries originate from the give_akismet_whitelist_emails filter, so they aren't
36 * guaranteed to be strings — cast defensively before normalizing.
37 *
38 * @since 4.16.0
39 *
40 * @param mixed $email
41 */
42 private function normalize($email): string
43 {
44 return strtolower(trim((string)$email));
45 }
46 }
47