File "disallowed-list.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/contact-form-7/modules/disallowed-list.php
File size: 1.83 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

add_filter('wpcf7_spam', 'wpcf7_disallowed_list', 10, 2);
function wpcf7_disallowed_list($spam, $submission)
{
    if ($spam) {
        return $spam;
    }
    $target = wpcf7_array_flatten($submission->get_posted_data());
    $target[] = $submission->get_meta('remote_ip');
    $target[] = $submission->get_meta('user_agent');
    $target = implode("\n", $target);
    $word = wpcf7_check_disallowed_list($target);
    $word = wpcf7_apply_filters_deprecated('wpcf7_submission_is_blacklisted', array($word, $submission), '5.3', 'wpcf7_submission_has_disallowed_words');
    $word = apply_filters('wpcf7_submission_has_disallowed_words', $word, $submission);
    if ($word) {
        if (is_bool($word)) {
            $reason = __("Disallowed words are used.", 'contact-form-7');
        } else {
            $reason = sprintf(__("Disallowed words (%s) are used.", 'contact-form-7'), implode(', ', (array) $word));
        }
        $submission->add_spam_log(array('agent' => 'disallowed_list', 'reason' => $reason));
    }
    $spam = (bool) $word;
    return $spam;
}
function wpcf7_check_disallowed_list($target)
{
    $mod_keys = get_option('disallowed_keys');
    if (is_scalar($mod_keys)) {
        $mod_keys = trim($mod_keys);
    } else {
        $mod_keys = '';
    }
    if ('' === $mod_keys) {
        return false;
    }
    foreach (explode("\n", $mod_keys) as $word) {
        $word = trim($word);
        $length = strlen($word);
        if ($length < 2 or 256 < $length) {
            continue;
        }
        $pattern = sprintf('#%s#i', preg_quote($word, '#'));
        if (preg_match($pattern, $target)) {
            return $word;
        }
    }
    return false;
}
function wpcf7_blacklist_check($target)
{
    wpcf7_deprecated_function(__FUNCTION__, '5.3', 'wpcf7_check_disallowed_list');
    return wpcf7_check_disallowed_list($target);
}