PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.2
GiveWP – Donation Plugin and Fundraising Platform v4.16.2
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 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 / ValidateDonationOnFinalSubmission.php
give / src / DonationSpam / Akismet / Actions Last commit date
ValidateDonation.php 1 year ago ValidateDonationOnFinalSubmission.php 3 weeks ago
ValidateDonationOnFinalSubmission.php
62 lines
1 <?php
2
3 namespace Give\DonationSpam\Akismet\Actions;
4
5 use Give\DonationSpam\Exceptions\SpamDonationException;
6
7 /**
8 * Handles the givewp_donation_form_fields_validated action by running the Akismet spam check, but
9 * only for the final submission so Akismet isn't called on every step (which looks like a spam flood).
10 *
11 * @since 4.16.0
12 */
13 class ValidateDonationOnFinalSubmission
14 {
15 /**
16 * @var ValidateDonation
17 */
18 protected $validateDonation;
19
20 /**
21 * @since 4.16.0
22 */
23 public function __construct(ValidateDonation $validateDonation)
24 {
25 $this->validateDonation = $validateDonation;
26 }
27
28 /**
29 * The Akismet enabled/configured check lives here rather than on boot so it only runs when a
30 * donation is actually validated, not on every request.
31 *
32 * @since 4.16.0
33 *
34 * @throws SpamDonationException
35 */
36 public function __invoke(array $data, bool $isFinalSubmission = true): void
37 {
38 if (!$isFinalSubmission || !$this->isAkismetEnabledAndConfigured()) {
39 return;
40 }
41
42 ($this->validateDonation)(
43 $data['email'] ?? '',
44 $data['comment'] ?? '',
45 $data['firstName'] ?? '',
46 $data['lastName'] ?? ''
47 );
48 }
49
50 /**
51 * @since 4.16.0
52 */
53 protected function isAkismetEnabledAndConfigured(): bool
54 {
55 return
56 give_check_akismet_key()
57 && give_is_setting_enabled(
58 give_get_option('akismet_spam_protection', 'enabled')
59 );
60 }
61 }
62