singleton(EmailAddressWhiteList::class, function () { return new EmailAddressWhiteList( (array)apply_filters('give_akismet_whitelist_emails', give_akismet_get_whitelisted_emails()) ); }); } /** * @since 3.22.0 updated Akismet validation to use new givewp_donation_form_fields_validated action * @since 3.15.0 * * @inheritDoc * * @throws SpamDonationException */ public function boot(): void { if ($this->isAkismetEnabledAndConfigured()) { add_action('givewp_donation_form_fields_validated', static function (array $data) { give(ValidateDonation::class)( $data['email'] ?? '', $data['comment'] ?? '', $data['firstName'] ?? '', $data['lastName'] ?? '' ); }); } } /** * @since 3.15.0 * @return bool */ public function isAkismetEnabledAndConfigured(): bool { return give_check_akismet_key() && give_is_setting_enabled( give_get_option('akismet_spam_protection', 'enabled') ); } }