PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.4
GiveWP – Donation Plugin and Fundraising Platform v3.19.4
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 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / DonationSpam / Akismet / Actions / ValidateDonation.php
give / src / DonationSpam / Akismet / Actions Last commit date
ValidateDonation.php 1 year ago
ValidateDonation.php
63 lines
1 <?php
2
3 namespace Give\DonationSpam\Akismet\Actions;
4
5 use Akismet;
6 use Give\DonationForms\DataTransferObjects\DonateControllerData;
7 use Give\DonationSpam\Akismet\API;
8 use Give\DonationSpam\Akismet\DataTransferObjects\CommentCheckArgs;
9 use Give\DonationSpam\Akismet\DataTransferObjects\SpamContext;
10 use Give\DonationSpam\EmailAddressWhiteList;
11 use Give\DonationSpam\Exceptions\SpamDonationException;
12 use Give\Log\Log;
13
14 /**
15 * @since 3.15.0
16 */
17 class ValidateDonation
18 {
19 /**
20 * @var API
21 */
22 protected $akismet;
23
24 /**
25 * @var EmailAddressWhiteList
26 */
27 protected $whitelist;
28
29 /**
30 * @since 3.15.0
31 */
32 public function __construct(API $akismet, EmailAddressWhiteList $whitelist)
33 {
34 $this->akismet = $akismet;
35 $this->whitelist = $whitelist;
36 }
37
38 /**
39 * @since 3.15.0
40 *
41 * @param DonateControllerData $data
42 *
43 * @throws SpamDonationException
44 */
45 public function __invoke(DonateControllerData $data): void
46 {
47 if(!$this->whitelist->validate($data->email)) {
48
49 $args = CommentCheckArgs::make($data);
50 $response = $this->akismet->commentCheck($args);
51 $spam = 'true' === $response[1];
52
53 if($spam) {
54 $message = "This donor's email ($data->firstName $data->lastName - $data->email) has been flagged as SPAM";
55 if(!give_akismet_is_email_logged($data->email)) {
56 Log::spam($message, (array) new SpamContext($args, $response));
57 }
58 throw new SpamDonationException($message);
59 }
60 }
61 }
62 }
63