File: /var/www/html/wpmuhibbah_err/wp-content/plugins/give/src/DonationSpam/ServiceProvider.php
<?php
namespace Give\DonationSpam;
use Give\DonationSpam\Akismet\Actions\ValidateDonation;
use Give\DonationSpam\Exceptions\SpamDonationException;
use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
/**
* @since 3.15.0
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* @since 3.15.0
* @inheritDoc
*/
public function register(): void
{
/**
* @since 3.15.1 Case filtered value as an array to enforce type.
* @since 3.15.0
*/
give()->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')
);
}
}