HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux acmehomecare 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: www-data (33)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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);
        }
    }
}