File: /var/www/html/wp-content/plugins/wp-fail2ban/feature/spam.php
<?php declare(strict_types=1);
/**
* Spam comments
*
* @package wp-fail2ban
* @since 4.4.0 Require PHP 7.4
* @since 4.0.0
*/
namespace org\lecklider\charles\wordpress\wp_fail2ban\feature;
use org\lecklider\charles\wordpress\wp_fail2ban\Syslog;
defined('ABSPATH') or exit;
/**
* Catch comments marked as spam
*
* @since 4.4.0 Add type hints, return type
* @since 4.3.4.0 Refactor to use Syslog::single
* @since 3.5.0
*
* @param int $comment_id
* @param mixed $comment_status
*
* @return void
*
* @wp-f2b-hard Spam comment \d+
*/
function log_spam_comment(int $comment_id, $comment_status): void
{
if ('spam' === $comment_status) {
if (is_null($comment = get_comment($comment_id, ARRAY_A))) {
/**
* @todo: decide what to do about this
*/
} else {
$remote_addr = (empty($comment['comment_author_IP']))
? 'unknown' // @codeCoverageIgnore
: $comment['comment_author_IP'];
Syslog::single(LOG_NOTICE, "Spam comment {$comment_id}", 'WP_FAIL2BAN_SPAM_LOG', $remote_addr);
do_action(__FUNCTION__, $comment_id, $comment_status);
}
}
}